Image Bookmarks:

Home Forums Babel Image Archives Image Bookmarks:

This topic contains 27 replies, has 3 voices, and was last updated by  TheSkeptic 1 month ago.

Viewing 15 posts - 1 through 15 (of 28 total)
  • Author
    Posts
  • #887 Reply

    Topher Rodrigues

    So i know you can upload an image and “find it” in the library, but I wonder if any curators have found anything interesting in the art gallery of babel that they could share.

    Since a library is only as good as its curators, i was hoping we could create a bookmark file of some of the neat images that were found (if any are in our lifetime). I haven’t yet, but if i do, i will post.

    Good Hunting.

    Topher

    #897 Reply

    Jonathan Basile
    Keymaster

    Hey Topher,

    This is a great idea – I’m Hoping people will share all their bookmarks from searching the image archives – are you particularly interested in images found without using the search function, though? It would be a rare find indeed – but we’ll see.

    In the meantime, here are a few images that I’m guessing were found the easy way:

    https://babelia.libraryofbabel.info/imagebookmark.cgi?Miro_First_Painting:1
    https://babelia.libraryofbabel.info/imagebookmark.cgi?babelia_2598358…91318955
    https://babelia.libraryofbabel.info/imagebookmark.cgi?allegory_of_christianity

    #1013 Reply

    Topher Rodrigues

    yeah, i know if i upload a picture, i can get its location in the library, but i am more curious in seeing if – just by browsing – someone can actually find interesting pictures that have some human meaning or recognizable patterns other than “my CRT can’t get a signal.” Even if it is just a smiley face or a square (The image gallery’s equivalent of the MCV Book “Oh time thy pyramids”). I know its very very unlikely that anyone will find anything, but it would be neat if they could.

    haven’t found anything yet, but im still looking.

    #1506 Reply

    ?

    it would be easier if one could browse at a faster rate. i’d sit and click through for hours if only i would see more than 2 images in that time.

    #1511 Reply

    Jonathan Basile
    Keymaster

    The website’s slow right now because of the influx from VSauce’s video – try again in a couple of days.

    #1533 Reply

    Ethan Dickson

    Imagine if that AI that google was developing that could identify what was in an image was complete and sorted through the library, labeling anything of significance that it found…

    #1585 Reply

    Person

    babelia 1862320…33219993
    Found this after leaving my computer on in the slideshow for a few days.
    It’s a black hole.
    Striking similarities to a image of a black hole in the internet.

    #1694 Reply

    excessivejay

    I’m one of those pesky V-saucers…. It’ll be nice when the pictures load faster. I’ll be spending too much time clicking through them…fascinating web site.

    #1719 Reply

    Jonathan Basile
    Keymaster

    Thank you, jay! I’m really glad you’re enjoying the site – and especially happy to know that you’re exploring the image archives – not everyone does. VSauce fans are not a pest at all! I’m one myself.

    I welcome everyone who wants to enjoy the website, and I appreciate that everyone is bearing with me as I try to keep up with the traffic.

    -Jonathan

    #1875 Reply

    The_Master

    I don’t think a Google super AI would be necessary! The baby step would be to run the algorithm through a face recognition software, which we already have, and have it save the location and/or the image whenever it finds a face. That would be AMAZING.

    #1908 Reply

    gshsnc

    whenever it finds a face

    99.999999…999% it’ll never find one

    #1993 Reply

    Jacob

    How ’bout an algorithm that searches for large blocks of similar color? That seems like a start at least

    #2409 Reply

    jaaplallie

    you would still need to iterate through images or need to generate an image and search for it.
    that would be the same as drawing a face and searching for that image.
    You need to understand that this website is just another ‘language’ to describe everything that can be described, but first you need to describe it exactly.
    Languages ALWAYS have the potential to describe anything and everything.
    The most awesome language always will be binary.

    #2426 Reply

    Jon

    8667037984574853506688703322679927717798469588674679095105957039164568433528329832803423814420088694735700674870700132654713024365178902490061102525292430641204949853684202962415814168607031808685102820711726993080685775580681469239173616005744846538724074247585391329896719067653026932172379289212530491968099146893220138430535424273720879235677853545276552072098989952283343251179104079317302664800649475419053430633379678955183685754504712132048407741157079007654457380762846913326974742685899203839123862842095403037657844583273130204775775572029405810021673607868348142538900515193212012597177767735842587032947473985005211671694552314396972578453408681351880769813473520299807379755505141621269350775956419369726792186006047514867507137571253415586687785189962233623184267217270629363556512808337758586408341304015790069327760086587791651923555947726579847963214843815510987577006453077945444483815750221367407062223916293077286198075045818638867273277848577514387173828875116018652630109120239564264015201528602981517942249258441863901201204840704146974436500633599735621169038926632541610532244319383636762164421166005576623241315468924045279275956280063891651037249006832430296052389911452315247816826166800388975239101871762818513184498301453315805246352190174346836943341242251080225863812345397416407602523776108027579915987699473587352605404073942316693710470114128028986747015338669217353519666495909144282775903066816758283817691817989274670152268779483252955916929656594803880503310145201690306704600942061519885814048407515246902776914369316770774745030147659027703775862795936393671093096005941772317417639817433867971477325087629270603292561367710544696940450733401005984539255635630725171100342251315406211444776405866747133061552535889193370825568564328607922944172038228230219804058159072335413208444038001943185098204095528227434137743377095965333493191324358316588969741567566411190363561653154074073639006497998620758541900867133011208512441086932914639552854443960776325662931850308904203795920593936567382684920033211409931884794115133783370323209598484131837736212773818028155799327199937114250973584479536628390325315995159655809595330246602374477039660415906941465385669220825956115684938054941621521855248637297294335767340952750005219569292523359348988271129933503873684327812868040947261977283672409643282946087417386403698216837611271144407248745537502675975099166811797244228444191486745114362321848684276039300115089669076772216815349963131949457233627036390529288878696008018063392462261213866218102529488845490170509117957079771477694534876609144898760799941293284798183120767550456677887006727890039311203862463274231897207242664086657267458529812366375500297852294180536475962491717147902940046662740538545455849484917103369540614775199529500173618517471146079477669136828020506452704551246794637753342918091792749451948290093152931964401972614184868302460545878571838105994621293552563366881281712607564909786655317732366553556331950986234017770550250478162441068793925109927952575112614165541391453614078626415606134855487534936385092336437059037021161682295489672305230133412974640353280290315410729312631033133436788552336930886698161913500482800160910283845772550773867394242715070329621588584477420734929440697967164239965029208184390388591154126321601573265526796859055509538065572262189528370910193338394191541013863992470906540430628448063969653193448452042891619734765789397973031386643018061529507122620267121820005714028308593436153057623435527589669622559074529015151118098136191135579149862781035698910883324564183107792471530325315064883023308972486249383345792243656930281908454489298123467349287593131537352871748255370750031278305959330184679678511946625685362553855646478381600438179712658379175877312614204142313113526758823929534008115639092484920979580692621524975749249627750270232009203936590842748595327551936426419766657180798742268866507686128424130617503693635864035673194060643588787847980431696581628344576883836627103038588962386416428980592597385150258060863292015190003592649688506504263728532995602957366436499806490427061060827634393629137708451721866233688323442455361689315917532087486206370249914170360927818499387872535778684866335008862057140020278667372764602648770153300348683119237045655429700098949106734865394626644091702428375165982354205696679272426315533818213366443076462266228309456918004144212978259483046423597985140378022520489794437701274747741993378581390779579262623634570038079353329240675722097863861364658868378178297431797643548451690705925380462436443228156796896737264887188572715233901425772549095341259963927640635532212172721850262406552272650641822207979580562794247466412812262494186327655759324203952944796059572774959608404386816573634956510332350140979019664071988627718436484528246555810509568755733589056763361043577074580345761809151339354617501573194567381991274672627711881321895954398957852241412163668016044251284330990752985953778122141699138957020649421786318912396492166794531897230527316462937096525967265549318928878847361882313469325286984624732739180199925811092463278031799195169907105232475225695918539002632778903236110151076816232713716432533874178710438527609303164516045094738703474189944920762511957702840147855887638969652962272567419418765781591942838538152025946792646296171386309888978592176412699127585187978237448691865302949575467810936761250753829546844366860328476657936300163892933718648421845884310437906275881952739115624314512589457117562737123399621467184389884690118199219881184198009307405449998868370762756424929127038805201787436547474321004464133075112786363919784538786226779012890774017363692233516260928460940819907812104670351975947950438617740016870399997578444818337338061916863215570598441337697024253080669587174769879383372087349211392397349081123755166507457624410797424559250464438616762358195514913077187214013510854248686292386127425952032860205191735538961620596980800512288550960647639702142783734362313007632755467206263372211957977657179435358838596780589001102269930527864274379340348443460289347806802945607285570325787589069893345679105956327101240956463038601899958062237575693152710700836611267153484348910980024791334520203875507824826796047982781770259413394157457186376110157104732188717472020896053716753689078927062319907944015981864429748550826864165339705308731482707860999628715544804638434571069932120408165646015301656050139867257184970207254970876020880316179273827809115731687131787368451602750420651222293520620636058387829786477343645016519942864316279756520337884685662609370704922940045942636890023655835191951804732117520125151658858016291756021162717610613615803762848692468313705166120553727877379392682987911889698404414990400959355893345622750462546195309446028596125629684864211333192558098273200140033304472717657294293383012445597974634637431021380993314249274012057567752183392841976887545992280960462853413094747148424897062848614876860465060208252096826546297675353842842709071517361747166495765036541700619628680164830656534412271958351063852881582443772453307153413484657178957031320928199260263464150667682246050999971531412011470691045368165892640956546764576965339431463667166451924107232444218933045799091745400584395744275514207589025481309720855908471947472605559549975833756923197271926633894983974885130519428060430948662925553215636386937057489638586314499904332721893186475754676966881272484616607647846803370704471735364999438629323785857152921590099184336495902658759697877602737267033956095557071004604129530473261956996341580281712036841852467181441627176813691999225718723147221954493366543629502375320004302575623907062524285550782807207828446729722818142977982141742791877671530930815297396577190585435273546348895093477484107254868911992997367919528864966222365342176393029879639253339344770948316792901312138664285745626029073387618599234088201468542684032129329564122868630211350088919234823629626801971157951551138132647715142502934982305787595201604256117689632170734851570782431267433631067370194672086392048612503793211664788314254536885092062644742550494773637109493096300635517650089219216949853699989106254222989169759961823639059393598393792367957593654494540847244180946623945757880938241200964690693922051590391284339899456589482952094444291814826857441109752047816980546895004138086594044526161882354603448716934642010117563304959792096410684345908053204990118567503595234506705627744290175396530375233085591195791640718318386691226274385566977038679253538711261260776279246307738928376955449677650335399602623831145793776376968067642355982453237110334101736851974024560105828557855395833481074481822000039192796619556695913240280864861351809337283283659368398278180929200803279824430382432577649362826449967454511982117553075957380277109424570931735931854529563167229455912590448250803282330519323597592389603695537311308235293214957329999237205468413910198125967024101223268866318072983589097094486356456943333514244136108585303842485826386170956262360876024619818951790439572942469012548436474322047146079374772971139028237660315938478182090966942803254413060371255216678182245971986281824207122031441261780305958434592600012652111359289111383515419542992606320294319024054451532531234089287213313444756557470338476697740930937844292436612021887265165027633008587958861384311302242390867559897855143996568353309138977411096935594849863836078082683871136161912450455418847696815236787090381229648880650263900304721338598883119566847972785317840868678074233043093581329165724857961419171729785920681916848128573686054292919365738788241661514853358755139869507002112625022897308449609383269675870788363531600776670665124666423146282520045324083217369216555377137717650880261914454253087559534198559744781473462038072410883296084439862413435651419057149240855193848076013943546825855917660621915901879540497408490274370532263930407062825809441410563996097997753813217987440813877930976782229675370280618384375522645777772182281590837783374023504917139248137223907278648762194504453482204085684547301740958823691702804626884888756948236988609385909957301692249831087960541274896259772500410648028548188634794727906442631394307367417627237868827540342407223289680354678388946649093812796138091646260149802614994235341829880870775807677248702409655644945414696823275188182110880145262982803823723004676142540003656448476247196797766416445692567966262495623687927843041557155079584447123486542002086345427774217451633636616280502864795837119906329818620848943494433133647258760367337490232862131856705928193392752687086567458588572229370180193655834456085322737887037915836063102159436177627586902232937555117718226638485240970559037529472687849510039763900821454165897939068592359730632793941797289243560964223069363982140732003423333352887807573329248567550724339732363325924216730546092886514557585023217363530592154509545030030406766912249645666618885607650558380497907480548390499719488166997834424161082634310223283090481358323726001637141743666769279925250577235396986243639592889137075019692434181534402150432187969765032645244496615687098509948253271787193180439760380924182294329821058145777652950980150631614236384285824777234062251931162924012614186189623695965785599920888881347335284972641574664450409271294748194171974208941547933032178585324895484621046075981186938145855658163143015079284127141778130641094065356556385155693233511130390901844997852280103486000849365916359792316377776560202129921435608480437372749684984185523331389717377528235577577394389651142863900148366252056842730579098165243963953147100860296787971826358736918589855297475371558057871219829054450308182938110760002215516670411697637458628898818105778433877676929654207109106647722449942262394330568609556952434653214410333149248988455233367413798414804992609078057210659720316481033747839800801840762759368014783731080200372142544092894526745327510924590129359765084467567235185175887720629317534603290330946914977058329552904177419151062473063426466450947172525445176674717111792626775361957308432573273452328483969054807249878183133875877393417226838758867563421632073120910572602917509263334651750616611645675667821225827299842046893317917378381304955593138850165629256993725342458053337534758778729873858553076383817285162220415395211896379288906636371243671461817059290027457651131250357700154126370065843154488075479246229959502100363145708328937820112790377040850200142407459718502533956724871714665851296484695471081551299688965217566462733311053657954299348463785547543523742234223847745843734392915651133280168901205460377591031129417243118232941582293644534318207608344011624692096278331128331239611920072340712234716356346802770475807369653782137455815664180780292025494015024552767805953939696752917407392025570504192127650204670186997236198254432084271358278312809872770961518137974896045773996198497303414526192292925706591774125690863157715117770405311629907536562483366446341723689480290043779074585526191451598709044396034271318814173051082289935469856934188551804088450491481619619090637899934680918724759541983234671667427356999447566705417503509171878043924286276773908408823832886295605104173657024202997131746961200612441897555152917684977912650141521964945857057369571518893724832999410459859019499253590810531624516732383646938558539786606960686900779914039974396626045666086101053544817857664099288252453365766621413609682950623563720730431436247079923849744138233728776820992334570716963940997724100808103635202948777680135835064957574429513539709375556079071636069048029528670051343571330083995452412028574250397835479325058813337996284809950367979408237514746323138521103587734196517750869596006021894513397362044520900120433941420369644545984021864974706958909471251764820343476926053772376037771273070737174420652167833827467618046968962621406563670390582368213719595219639665155228287729756160558192571423616876198250958892323121873729312641549286431975490838072306369104556393946227218292647325602061711420790818840338958931526987346085199323733995063149839323589416119614087693370888278918344227783146496448306174919215534790516795815628176566981593869128502675189458811266978832366186122927889279081871146022477231026265712594794077463474543076113505141135183546196501031345703603403116883714391685065078107717544789540960863081277497124342385345745072129551832839903700450042851113161825090793689293124944138679732385970630077106863889785547310468354134069053867167556105161489148992758563471592954645916118033184058657724056782673833722878231596738504272498072309705065408881107060882919781388584437517460195293932504236983315299815144962952568320453869904962608626387644642447170253118754894176700386683569019248631820959499314465091418032006033725177942980045526235494513465540090199579294542129455746774467226874028296910223937744893826043958972006732169365042501971358475988670943093661221493542066897995772536006966576103090692389442689416355597770609766385842655422186665393079145841252463149334608905995987658841842765008687933825893333452264361661873854005176411950072311945111423701007825121638025856654939744171823567918643143296611651140031882943941151526862185840871876563189292222886603135767704520651378978635906116196919334065242440634796701494276099746789883604579657673567325360627857651803276357294292503996192363384576990550128412040036826609296910547563759464770231112833517431634459793953687568103463038490676444756011246654466428491816245531751839173141457142288691117190376851365476146319207402359924739118815238704921509022593942850132091670811569875878315880582227379348024867032513637440019991713696428943742354013827927420927093210538397238579766412165962285700207738541995714807871214160043449458665636481975030632019560064397070113187082050645162062124229386011420862717213863295261262360253287854334072896474105764712023474347906143372302416975167857191325197245413168046068626380889631397949975524569917874865670717874272480042652483612838614672316629113948122292316616264913784001488018731601585123364477120237290763927980335867950334685666557355190672166133309804326401923808936972848672758908752153702454882672545177681318848846208483960492945436560581392017605548338949925144468917824338036513079765497822288406139564005899590522373519311091124151670202494477451133457588591119065134920696602185295115895915499484466260274711036674083202138521618481467173603612533202224833996388799471096410545700111252599380096885836702305543557576155630792673436212584760073929550835602593894300295623747451866932304870882836549928731953329708767885726275249120459088616662084444108451692779190742517448656475940810045096702771917194620256034297572138178759018872626908679956465786004652063884547107798162724486274640814634996628661147794464783464645499549899590747218947238879921897903706566699408458113310625659098351208305360668619172558319679729360164648217425375076849054525198090554547311387803933226744950675644945178535847796220294541168378740858478075521287152296336087483993597821061208067672808165343792387100721737936998698267637318746667714104199821052439507668064266085500792355423793809662405986380267788000117533689945163718815074416019273651888439275586657698324898300618740327823742109346198507776117840509536087854989916986516657001753480670282087457486718446502813190079491984835957318320972020329624894970501096527096896947031246185737024068601411888865986678050822675862300773898640292184951925209720432896328556804928326322461552902193145757342205870087519842661173834712588065670490752307566255535911248366227933198313323593983564249932287157428452636539618515993014234409572995245395657894935439269665827256761676608471564182213101649103303728091235353333297490562886296274607030850112880720077435507794666880837732934740853910923125396864349972816655992285276585321159240207051188607832231491315333095440704517824283618337721605056250095551008852478810640210891982854554291291238841330823928193501437876739125919989250396554771028021295936543856750895383779375026284619354730603250858638110949683267763669467785749453901336772255866441611960687871973580678520134980312001996111406746549690376481677704358796087391798533473513946451174927173673108545836176051727907715948964090497518138307990004781166436824304678052227855985848198680278592978943753141999009973043496582852914171158540464272826389670866391805555660119485749302235050163358860407462260837216301333432702374555798454470246339110335688991840981110463068861313980698041053802163594584807834689437687538293996148601384954010923105972290781888096166405018630354090680503173021998431020741793253679187882929316231983760233325000666860950210963033346543448040879868109295835155607006237182701979689470870413159788404943342364071478059477040651531359143397319166058545785737341127643760529290505944365012896583806222164256400844822742027754688762473565958549831974961926465852900418896403531836008771008774683901197821667865298954662627069312735534216418710944202881334592500719759599840882831459250807458400796911269598756600790553537027789671213883283186650611602013076008139139118498287313631493079158702419592249059581169917281851861385212545002084910205653736542411438151090202716768636757488544475159345738104783797736720074719489226279234722505680800514302759424202413973436460614696910641648684025604826540622951391693101849835279099361210340764195974576372297704798711999984793348966699698882397871185766700607985791448263980807834389654793045119339731344583318792097461641646662371257786352783032881707956895901167176831633954029244755560735502753201639024465595552701334807630045044234951075302349541467964398048454412655513274751585413912035639682811756226611322897772976335085874250326996687623654009755226568328461951791999560106231587203870797297040762131213292960622815861461477231139147494619659704310453094755691248192329342301893568533910188725894581357527346495543223343459300365594026783320011747204405295313802221599537628077682419232381936428343269877323349499358776726512113246340556439665425834202080323095306283464110899950384870246038953318356558286556218975325810273586145746493853131179161190851977437381802330528577028169787920621384528963421405702416542932496470110898445822686879501885898625026722446166477500333771175967235735029392720803608652611455668216302776080133284951049903793709336439694723181683437118848018915206765696765272645962900604311353816243815509754277023429180355490028874071545451811067538568557766051168650903158249994421246668382890828687591208131459854763817732408412135785606097469459018513051388950278795721309304200862991952494693245473163387408994729653453965723867315602808400240447741813243126816392139957037193663298775340580213917916336014279645125686632751721314092338409991810117701715700819292412533014643798686252590855840512983194204197430376572836227044833124444883065167335247219955819989619594870017268015643436515014811108081097648940124307930576050408341553350202541714481663562613896267239637059732680571027318504008770062954985694357142295593500595017915177623193162390575589482365083582525647197955364134933750871737436136724790063136385507041984839479838751679333055592844941740850703644541078676077356141257243892450263928538932351243936355159035307552867072142859387624982725668833652529746482251219392740407472688419405177742438648585845136025363442153955274158248546617858440917117263348143158163982928513429252401140029650669410878603097944532945474052865904428269121024876867624986342942298761733405592731975799307505887592066700375908551310827275655721451971722529117750384881668150449853184556448148948966294890384519837603373221723751694528583827173478372312585059695879843779199008688694235416375255386584593638362500464826795642428682766039054008333638337319089714672329192210447110459873159299126913861337863347444353727756856176686864509536722080734083511673530454829681789762594959216384730601047902422922725021673574147170986264572014973989719786512271756232946704833685948501843120484126594364514301428787626379899130138696918880702767604805891547447767896087408099109634701707000344495022614826098587610002632462659347525954148471353325928454311344585908474773371000303595911121079470001011216338547035405603588580847187629052689678827698233219693850127718396285983731629382382608826428862182371800330498577871856158329089995449142397143664359904229454646191637571664715833882894192527211908199529493501149254028920796101382850430916936206785843927870056594780375682401093152158812344188569543394024035357217826974982431849052962389786815563752004291590787747670143452335832267628352269520600136561889127082561851088532737503523132099429545691321853515282469570807951798164311876373957842942047702545074585147272535719983440665096726422780560994743509085186824987458880536933544877711915617665759156071365343349408088650540501088449473324510269236542090745625803515611418750406744447442589553936915098861146388679545522228568420898505585559825246593735787968416280383356419989746179516572589289758897836169964469047561882015566601028952392601524270067409227712501635896648216429888084969896626719635677619675756173487773246445981525840137758117564402526380534924976775561046653607791270710835420822461368283234825109954887694049849933952116073678439538132772519047382053502886425837001568673054339161839044922601482442345673783730150636644243615307296274490778296704919249679463760453553353776969212903533567704187597289389096165011955545439805686173196371016820715796697215523054682924617382482241199147562182094324975922864443915405002552349956165407752140499159110072948631281212317418692605536732723736676779838792500753044307149197739153330224855669308725107543260528494777998966723601434251200876318985476240511616334487310958414300080062052423292726639652712486759103193810403322876827578284906031704631496069475908148120152510454984598353046338499015376471859070279668521798762188962326478623476303301052850766537303952201327657965593490554471402135486203838124845263522712059684027435082338642657163367142750252924149807579851170808307407136725424026891695794873720033882324391226109644277547070512932567745094842947857272137910648405062711913168976523922383561494469055470624068161958883156167118431150137549740623267551262621904491318220376042395694458699090828823437532080192456341422632602097344834698148943271637777713685472974386827685828929767088890570855866727547311201823495413636525862451862663336728407114130337615891237275040447161919807436633016758960764372021306761087495156927666025408778888619343407536092343594697942210129062398337396811469748045610860627301188165802697093347492745142528758635963476380600866411177318048196167050767383777392283991012185063695807179834139702586274868960868927157005956260549833872755479845133249380017292403086832462042435169292834299090297010699229802729671799637835427004627689399422361360388975266553624081012353323279624735334580475392675051099985764181993351657577103709288072843829985730370296525810308676059764147648538856814421691285638576356525772134348262709070045063894309060528055417869967649224150862820807179558747212521136002116121480488861139940475375797764058791106678202576157503977762650942156832297539319342447574962565206799783934799323496605498063117934330892104651268605449377359318786486625643163078418144126716194818841989525407331263833233494855293846265180606505969604087786768199749877528211782232044143245336014629304621204681048411710405945308000701725450834092487661280497473649661228705628675389889502645160980201668598765129568845023009109463937437436462937567114241867435614266879900039508056099713690253895117545889870275724696245117949437585586965257413713922143673810383412609585134967084385886140586951334505696811629391583163351813337551951935364406419671748908410565221662045008608599470033390583201228268346262867231800046231605185623927656678633797876521052122746145091214648043565741217304529360939993588486111615748973228658373146565568262729291699805625282746708759661996900365703307871249256224226197990823007755787558960171402004967392140040681044018682949087120756592269653747732185464688667389218550369597199609686490720244384964929210438982324745171552782403402808916233857038824932258592854859857170171157837471254355779368608910238024033216768831622020175542692781454109093061873150873528921675439076706628723830616257516997198751066472164928749310127042031978333428424898154723447234477837658462300136462734201669546744621612239792023621134895912071686140418370499716047446379987450951331384675034984867758257908695265182315745243935368155148210040780436703098157082323298877047200326102937300890641814380578531060374448883138114695234281153618025989577304353458117180013787122016867849001721718818788091450783768932665297418841341024893062820577842247798381776709110368323933534106519796788641671713143839804825537102484878999795290657887071747714814693535039859393073891454744617356037708924668719655929166575375050354670907928055796687816943334709793512724166166050279204503138137768087314837527975170830151321560886179827862598107341101182350529454288762373132066278843856482937339911388095284478714619615782544587705133517251127484941743038255975439687593744116910479951833593097941713402903902594812949944336302669679311395448802399750046570908755422883226429529395820363135799212484105708575172023578075227705713263463801121407159025639616949820753537870987826752508269240809693285675544512723917465446367752227354740153865143638707165432626135353000566395655834020280702355733244776913847962449542036058253289311396202613392614766455775735970786418676450729914044386483924917336390600603790788754692374040632818169199463024115681967653185093874018449954836126277514063824808979672898733904838940423744367888888306980314291999767660763968257295445296970253940798687729213769503381758556600144373726518202688031073059576292591716897157383885252122818480871069411323930067109294369500978121457414186074114969756928009932580214553262150010607136375275930605955535930447550812047536431710903261793164884125491476848164190477616371168033224562699072264651930697146221898430980295971103593075977556790870566256048133733076363354603464252412225054301604154996091483073854017535122932121665044428599666266700263536674978635131006360792106501089052459699077656564659695496688824596827880760089168099233406074425262974441730162018030432281848017449287310837037395418852470592665653636473006555958295204927684425213216209101949571298942761362944115437640230353397703981591104181739975261430157292519588766716698144032374106963403410092261845701905397123223004863387588768931509236785797502837138282854447481163901341195066863692295289719885351871148131186469931672845835828664510409403443481188353215585116272969969265720189684509552180548082319308507833663135233082613672717151008114577957811506516194623136808893254175661751389371522970624636398619634538277032272868748523464600928181782317388974955049370804041581242727102178801945765129146168091858229409843588730504548679587323250097377097453203991231202046587383384141321915827708034906569324224239441656045946308500362469510690239121247792394595711272027072315045348833375535136620635869503940932905231881065851710416670156726601592956803995265163409939780989306880646215609077530678426837694696737753825347006327016028590117225437040389287004355537693493534029836343581980239223804286536006649310560306841005345289993308847755942097329575575502871140417237258265905751433867648164427502227560804075109412399736353113167089604100765853500272230611216415213554886271415555958908008493898065296790597558421096555258607759622616745171435461531288559481505417198292218689583333767177611577337126212306932122234225786102818510740553206006116886730617498040025475009033175343497925657664097818659134247422118345130973705285259590993129339982941137726623771579178562818894974265605225475871409534715729465022969023483307554187631287582617969622747625857405015493352184605642936802152676325911439511448936289012347833731901467154630184537488373661383584740355841812847252015304403897922384463229586941565198452487251278679156260446035597056094076730163978441099538965232076551391089504931034049671975319189263484967596219683758100878228656873222711546869222488013378474153229932730936361256382614108941461693915792617495669423056867947517287738532867667767950405349883811453037795734509807219119401651459943002593411290953015822194383771823348273469138804990105875838542697185701887226290350469078367567914798141005281449822708285405562394611958031187731086898816588622297146398754354442287572243834539080508250673703205740805254213555381067940377675085287064991718242450834667070922782527694324548528669286604164562260798554965172747706564628309984946280686703086164914518496812240130267737610213819354107409829647501594454740476798764473963774359364049564290850814885291149428632137280336493348522369513853628905789569047568541253591282473275860985763618857415905370599714922850130527694553973341658062881696823028764668640078454177494787780153351991491255959166307609454915341354840893054696765309665669769363051127229112735672345977124938127024217837561367856941237760749596305584524240999963658202931752440424248828001945929097972846590469574425634620518201292025278631929420906601708133077643591723877392146308790482913333374817993916532900411621747960730676885090634075559272331275890079053179168280211230751106905563088045726843962848884056504787444015590351143341885390062738896609132774231585993213483180220455436638956407159895585253692060727729948375601220604030202815599952019996648389883961764821206735993655770579170736404332780806440247989367979140048415276142767608243531233882434769827290403745131786746395815512915747554998414395343838220733246720953561845913169363900869828137206378772758306075065646986592233556397920999742592960456297263855248751118616749941415081613644115222463713908194611396960559783664228118147292793731332063062420189872806703927398977790182600764913794022096117487112764925969047554159664322435550148598287687660758031239588873781790741909343522721767022453068761572118938793029329805335478074873805887909675313497419151970950314060257784060803047062298553796462160017285827463293247799856294348186250660358630942979762613527880885345367181099984242967501348581773945914857410420111595820346928683134823815813249868275396914198010373772060559793915447927392212825042286476705993459699010850576663871470897883858683218217583021551305729382275144991825089653861091290136717132634643889938864392801078896703291950486955981207469206247965396615463178632976176116971428354308309516802736389820316084343050753417742680991875845952788854513259478545518038043232462586676207767871603666200768641526311768080139770911055924684748461914924260223305676430882639744277882340238639042761181887188477114405878850100623139425425280660555513339606113403531381880812084420905034717631811132613079278322484211046120690576397986419225455515344423462749320421332791090599165287939587935299124464407243524647055126310893463564545216041823023037224659254469746808818768048832342306708972451535721820225021695948104740421284197402984431270224410448039192622878249144952297919221214478796521592377744060615588604343149656218360363039326210917491717025711700814744521264798974908190268639041379579488694237153380003629531934253422880016807524505287728746737349875776727948458538574567916153749664697330226324704215015504083194414049475375662583092728802713060760676259067017495947974904767980943552494350554057565059730720833470991668026129645702633223121753453381750517125925462580269648449657788933624659246670769098458490730773596378228752042177983969943198938780077174822278156913557251705630139701001332528461593563847519786726517034616923695622399157760653952700644426044224028926387352327114657031425176736798008160385824271653393750209402647795003266742354133707179487673501153833769704879837725359317168073203175419442994268023320244747866630382692475980168689248632593517520118721235701536005918845473134516171603928943900846030059987453068743600410918456906686721843318102102987617151540619748170615473345629527481923131409787861448319059229381453772604125739408658797288568093779575191107590815706129374074115775326720790561855145845282190841355995031651457778013865995074418989715292058087388731810909373653767460382511517506184034739447733915248617306746603069334708252431019750443067428681345602163334072493330308145445234411621949637113326431825882625356014123717104638775566235611549890644253903858004214007069903218159063014943870527776628777616108721815102664234027923382551778959177981896700475294695171186570034898667022185558665775590115037418936117778551223567274608055186872612246771384042227394740930334390681146710108011797899154693967515715151147356886198109504357174034066820731490442976428994380934129354421158858549841079000582748605279945927553933939355941847867944769508571893716011797497585662965986797371557130629545785620115674135379189284663504468250462428189310438537933163235054840827647809001487736057654536987505090338524222586772844617329650788355710315378751727270467566132860919234059457745448419740098847887883146413542793413316797608380968420006459268769258331574718125293460040979562102792973957572696466014739958308722971787160876179275703786727363381110654399410269746193748911041900885559085125396494751230721793058313807019991670437969080856105629719120650861741297550275723196298435325230327631786071352913161286864731463403520595404984909161393823373646699811905233648065570054830928336679932426578685892867204617308055722435123888662624243333991572833995690184540688880864918528749257447164388012736909122060097011794815278017842954126211133020910374114268438214875040419847398489714558039622981218029977180730394346236246741071636448348353265257017987220078784535615797671437187180623096483331418068968348488110097725162092210539496604403791950149436121273498818089991801855340746867308209513969028792259854397422104245446958798264513914478257631059933445747864956923871623398438609182280199571510069498835720986752145854379713846891293689438535405032284538794960052122319326839525645467011571900700982312046327275010441464374683200455813770374181109855762000992998307571573829008948896517672336948893975034161251989059383607656447189033129638275341379706480755213548226586807752780293538771528887047897897377208639658127015457925716017673443786344617553374426100198213616610805835909112736149179404585073774414032592129335814954267475167185522520210856354668691147062874926870832017004454019907224426064694170795677557135148454232725325639699570393192057292485168011410418538864655069772272767345464596559344766687861909804887007140386515961491123264670373356044024204375228766776459006233803115822625067380853274333636389100186422008404304294517766571323920003410071113131023807789905752627220918712720099171249763045694185594597981354885503360401223769886963004023643058871340585604598924607926736116889568523325211451157783234351468919156609234041688596758492174893151076881196246560352835994248396386394742116243965222761485340295682806548858765532965969214346581156850780044586521765889579787037468450826823706690091307312186916727520747585157177859020531245566582699548414914541299522504106415653770527832003184251209148473682332677963742126059186811808173222910687912321829504751699208502754360339707578726214318694982299530543063192468665888488314401027614142767179156760361381470453491806751259352516491447978022548511312674480085343541497563360536848287862036415439616654083775320911123728201066723437101034218725486217702399073272518110683562263273769691657300212758083636792721053672530457585728041398170586700267455391323787737317938615944592025515931244258420716568547648931341835663650337130159016102282476027944734256282870093416604803669588652551501627682287545274214059063408780133722536913763353040082597258968792687926715526126540791308001074752146384782448426587821172160009007642242880916498590548726297955177901435502265291810756599791033978281569368215215286887330332163265331406863817217662436959514330919026406560445266864200438175661641169543452197471088862954273145248926850641415870818220021017086609456190675403905403038521698433201589952761847423128644261309844107577959192371189332991745924900741910415501590361159953904268069864867065435906370601143992497144449235480531215019905500728114857054540512404709782248193907744030217530708501305033281137031588579864354545372978764718369056052675494428378523919323667435145644011576183112441256555427074719051179304647354236280601275251085242804685059998596187873981913091960422697115756482697754626801614241798914842151755009509579746161009552140279449345363250152315120188763523889435863603126579039541747329696151014753748364229122104081864196245487979003604917510752280322019288866998095387257191147385354441635080786502603987709943270058405274554018698152463148006462765168181500147225575997137687907430642051409353010046610006499419693230019525734762449229846214564022375186141966552888647151198243549023630240215932851647568373782116992990600075895443102372278526097608457319460480725073501901108477427926056699363267566709181929289955213821895821796358818399354934251996695143001929492201156076300540793261606902904979373905244046645147412353214448348438280344573214494910373886128436786248133118700516676687681979073349096134320163533205343848261646921347878275744964319369354178456898357157691617811832673845963105867276219174234440507917288048418038834852677846463236073712400459817715470146874428843765115714317294273866907614075211224094364233500358832137756391846958142754393272770186230113239501282577662445318613221839164572301537112485883303306262134174497908754635913892351269117379801678911169608436751496813109892505954007540436351691572787285533656256194942526813145664045716151979132601698016942628192867690585030504322006360426259184688207359034897992820688134779862763237190155327983617619077983449153553922389990458656212240459260043901456066833925358100146981394905512294493355479644127026123586863282008171982722312023312338625185410854604336821400418819272062732838467041517257266359063226570288095395820651463976474445977058384759279421522012911619562137929599054533001628809032573843486407565401316383355606473538948071122440808142519274373643445972204978757024045302266482804734884807300793098234457248095409506954688239383231952090805965316138932538933808305386596992469223293382351087289027756014632682251913641917285168619452582261655613416423749886901051699040440483365277329249177156605360109248433502252959521269010328715009414649609564409003669414078978198382316158124264792533639621759317965800693668765588071954557341379800890911753969353919577007947720290413638265689072164357520986907440653912486503840984431645817672457050937223058964462802648528848372866618141205454303426261417899335617499966079382470431749237127122511867436555133437342184047047336794474136606062014162320495908867968684554270618116246897198650063507991797159192226946182294386525435200642876883364626748163424771617658423959889458772833393880590186381493260247425310427149828792033270519845772407533329458511374513039048484052290289009919575295784456216810173598316319577382978252657652480717732365150919795146771839748921532394634040721793921182124479963458286662078067612491969096860309948488691706764838416461706398847956338398974797920955087208227941361131301574892894693214497919273486212390561055169841487657822453455001974409294910567663688628246934192987564570417465886309513132179014425193336143555643745838559392907815487713040974193431848526123139224219809644816932831272868563495791430517276189817160010540308516592386059077908359993832946685287493039169824760686170382403915534422807387987992318893909029531981267036070568288855041832097808598828274651467437470687181748003562113757728281158131057622278244063244749278850857078225178073257518027514633846113804180702209545785895941402818179670341070740546408574271236004148960730947263735514120145159935871461589916829379134345865383394626670923551622783128102987731650530625457748948323766833098882520269189655347559057321008232394069279144656091431931069421857958032040989663267202701287225793760130234793607638699758752494183962697763214806614756706755317524028442315723977580776570495564014428543808658117395394191812857022300087170241930442777934384699821291969084224006314671343332682516821918037061506357604710909215964776769482238563096181689519206951848934622260622566422403992616057252954540107534792492183662203365293212537472230275393686269684382971774894222389024956954643081840532186303414562033979880070691995207372109135088191674639209749021035440671871274425695612241063776653648835843984584409452703420712650930825528518093333412145184733601567095645892289351285429240875173373342331822512382865226316636742420304621480336695410555433704381030598156465934114392145443968776453169979432489506747591003342649328638409389667260250765835714365028513030652543373355126232530868011890595183500048601066395663202388816807142075635039978447453966391942857153143277113357409030152613880276568762509633155960119854453690979665475776080005650146934523151658243708683634526437914233059489940778079981190042980011304790437748423963340750200345056347692197545973800777774770401809454485794018512646128739285259575055899560711877061271003064870688455867330873140693674151202223132291525478596920142262839007619300275751572038884285620593998737087415626299430851724907868827610131152618931556270448025892694446130894734420760256008879732435165659511060240940419065933972842013229789489765932927881267796285642028744954692039348949412128334517243400224654559875200351909233727216308215119494825420414758911276653116617304120913885023929394234074103564345055956537157221270889740699746476079993567599727747493214589886789710075683884344765193108531262674839823302351743279196302409693850618545957302606306965791241347017542173890996728951030293155106190049762771266077171057860749338713084332144393709311330881051875100601204735495762450960703622642609734329420498147650712467440027383999068567339973905939139222734140735346887776478646777527148415219186975218367506288805907907633358752474585502207043001228843987420655058471575305390240350965692332405510480399202027514815443221114363908562863917288693694456617748603180849540536287802973542432114022744987700302082610538530164687426743208061643536873542395657118136688404539562933009502378419994129635137891683986330562530207275948658998408855426653212559232581230583858520645190689293370961093145749192702810519253444644575034197804474120376996213391795185663296617550231251361175937564008764802323043520462026111187826002602311615368940086943623886725697082739920049691939762362707091479785191346458824439435679912624921238613222753274483368789428150056077727597667423184423537313380201417714213615054366786894516309773722314706458736631941036641715848400670639958051993493451232611842693581224849800432949027538994109095362916265162442596162652054400950609725355212767694223942417311976174045077463160418013466796426410785476719313552376164428297999186791495165760897712677008736679259462531030199803133918620957847331765117362768076955725519681873187297163840561424546836653998014058282802845671571340523132605660197054906349104024775281274234155597754812467938546844259352505549649261375772537741772031511523439136601563752196929845645310560378051572898743290393909006922250556461081187580785952251119532498506068704201321440857974311181459003184029463838617009648972282087404745090777889065978783047056475819471655389141639435098113149650259047930438899095585010503019644920532842777246561957251182076038581908862628259330474690438589290905881335970993296566461454903526467353566610549362992923907898584892488097904826214208913412155596463461456929139699884651527440876687260454855994890091212759723107265954680144930530330967592200992807549923026461581676952765721973162727475336351484288659840747366025242738103296172292752965852616019868127488028842413774988663969185252561297494975200314363435968822448896795100288731899962848103261734962316661248154868810577582175198302805470496321600179844354590530750351533715684919410946581268135431289664417849364220132883036263985300047846512169539590573735196867009644925378599540461215660779370340327676825709569844330996332321129956362248611860447036578460140474406760778334979118538754555652499058254307727698908182185741962377613530857378033472034938018713835244500431975061299325155929170967785139635331353304973219739301440205991161429906020428013959059689838462889048914697489977269428857116361106972994981096583630232696142535319531248634788877361169579573371941167454766907926461353462778098796434175572177446869116685787163188714283115642572971970385068207835366434724954881959206664838660556594937634626139491153003487481333214571337981292355621401034357650917353109139864432637990366881478247384387692708341976617499945777914634787562051424710479251887935384438395227513289617959547345530164178662703329887779723133421862421401527570901510025099485904319131153219323192053832632129763428773074329714347430736684410315659275186599505738348016672139342733779203323941926925668444767312876527842343582830562999289550232332377194157300047112657270377099530706459533103020629053238951752800521810849023582380863860982922361662493444304840277781086195050152743365858491923507928034793216390847616178585134596857581052663083286478912539015151766087753862063700958687656083619438053274046807354907524558891733366014612618811398662932596769522231513957975428378235041512357485029306806439787966368607314530942537812022733837919204542864304277950630832665962425698434616532791549410347257549783450533677063858268186622676555469203082041980183184998478449818713688134367054610450517822571685912664611197391745546682273580032829382899074930015396894885647444399918360897063351046814108618096050020441823937177182746281553838539812783602396306865907965296895903747534563125426023202199079654391881785261306472505159498989928095362819539134086266715876754985855457431629725848268434390129441542634483977867501672279172544116569606118696803489593917303216378842628380028506573003193729433816499558798995573962517410978300885042307024191232231867027524524018036443392168474921928247505712706110116011891341095846161461199501038485923757263490205296874582023805375665095780605984477101411587650247467202659419068498005662166778316550161565297189006994672350959800014505122298952149361392669070990001567928262045481147914110668685203830123819015829364575088332764678327403125670776677325475499977589939428465687879061963952419972140635625753840234629556155132526255274218531712555984558351576806765914169785591414220840858229476526038770166212413061698355929263063073884366018222131637443371274935433726092608279601420434941155447243510205148123091019127762218107881603749723642574667542872878657508283094344465101703850722927521304684086387041048136420609266162947811069705574880646217233012530048126654568490943148538531393527983032517755502453193491731266039487695355814250822554570431104677510637096079019706554002052275665794840414768286168572811103350489657457366254959901531881609982728375026070083211386194554850143797251138525888606358026065299816176252160752329783475208146941176806171229775427195508626259030473131135140149717220278567616242590015016455015946229315650189175576103696231350216296444284975133715455134306615409491864329252553705437421327990565245800389295708486880952722853124893940324521723545001198401165613009458067555247091567654492952597351101559936750799863054339951993326744089437288461519146797446817958682594957511335945233747231795280178529697420158926590741243574187912042396873908409906307126210874847405865487386840692581889124290654947288166765097011472770812117079350779060058553949178830581903746799288010686752983652751366198072483831959958327613813882078956390859451711844151118575435672410559888257002612488489362815919235879532011459387728897801449295372883651957948316627406537558497654735277013746314067943781332393957704416079822424584443944328831608466868529172250389748366127649907576801771915456308493090340655071320895848308690471278704740780433605105293017039275129750687908266363545236684810029091649724718699777004345977950969017089881623925452417451814675611259434511530455779275012429904742533889828121080641299736810260852056168711352468198775940739072509087431982349252998955735650642207004956715497616693218820517406160164692226690441188324688731714854415513731467969357290578919782209441409679798964567101021103998056334400598301862632257806013434726184707965368948865531515624655074973008883854918502662654412143594413235140627931279317725633064702133830800334241854102116861430098610592491963735564879033600098200993668198419575749964816980360952100219372530348155772776760275893530179112387687617739541082340999849372996961009593677496567833068439214650490383313519802906370960047111055042938245336325272827932438617655933387213417294684644907073360847270475178282304764760432002017670199606830103872043301379196010623454108537042459679015280817854873398830773171701151847024952036279902670844481190338861898440472827279954637878621441184153330889251536057173668889160959062122099041013861790765142996526242183554886323917421033755813232287881715891876796788636995473865618831944131215146949173043778621824156146342702819940868029732552673019536570542895067518157819418748998502007626213663268622792731592390655418372413479632764946135041954490247750302738085411845276553948087690577890673413361423846616334402096480760534422187918696752185358718647128468732349291617019737721359544354366650908894956093908346644633569147266069358529622878563013716180018432554576277180372720522639268153160900473551749147603624938898234776043592178826412290797453965882747963379655064365651286669529588954378121098504167744434792915132842917395455977347104590922335188757646600071151639637951571837064159451736547171137294033395252901905103301969196260504864746919173653956731907541925462943417109011187826340792990079774049385051403272064892954370603292157081532746292230524505904007841161182894114971484639754746335581966971883324288604544901270346707129296946759915675418358244421100937071524937386169592290311413819072739816471907534025850817320642134755225870624237703903645580908353875165768389349767637865038344760013571367921904994587080665520250805260387404715014315997645091279568542667671606127783331517115138336358061216857949381921694067390918440383721712061889204596450938804786122684909465155734206971537908411954375555772800735811959143138069183147552139592906686313915717699069500897635563486447357616387579349380123474275444830155037077359023859639232888582432144372102031886754301064279058966235130617316322747674637911839829764377204912783967897372384834183798535335546226888134430851400028059106698961540781282715248789428293968432173461222026059267362010313223914229877291848309104047342178497921708672511863826552594166814464666934986572765509885234551374569061810340517366512570227659619301545332302283549433796488630472046367802902311425544590210952062279050238831599964498974545454346565928753538868189947671995730254753493633058277448157186854606197730058057244590507961438943466160330811325776114365380526480184307314024948763094215631137174543114085998348486278623391891833754994530316616193705369388440687486139308958191183391573187108582419489286332222941462470044381756929934591192403285802300301839002608617773803322056892038699534648555074841437475512904612564253522831630381546586771491562546127919026389481116823246295692537854718651109826436068976174618356984243022102017234739700383395957361208574988754140065878671961292254730994275597501567280656269998778085618028373353649452532911153180524201540745331017759147971494718754789533844142145539038112460856611099149868768399111595433492159191850123309349536214254350322442991555152006478585374895865032936271689014321224657022565050517011491261836708946531600517327522129362211977637241084646667713594137334167770939505035815014975216244645462485375110318418232766336082665975840982087165317383494905186726063144220328935558723462240006297137096507330786293829015570877965167317602562941372710025643877923127918462596980353219014568023673704082770398461982880963791468807342588943160723959610408746014267950961480141766308054740818595461584266174474146293188833921377064693070695825634289809000814968878159929749177534769152552073287891986222635913541345461087747335794754464081383330854405824214173242494800038338029437359943110531119065800630131834131288534062564932486852609323961362234219941563295518195402678976734796408895883026524076370986846695929139837521755084509442449488789439039314119087092568983538270587198167131208895045059003807171853410425962626524756779484365781653784968866459829828985719531575643294028394101906855515628064748528981342433555872395225086320867626039650169897999233555266141767455664310216216772924187387117535205137867851914356641796930706621378331134179371466624320180522787544360603440842297713998886606536958662212594204150048986402840260738430737958262433945317367360490744570564315421130106716494962902960398892272009643169189384742744839565497060489848364216956603182767985978500282983073383035702139968898616275987013408429677556847235785292622725119280884648865753141285682108777219085049574081861387967994243142201241790251058870874817540731111115347928358201352114253872324256301600614057571845276867622641677504016566058688741833798100732847035704341457066147955404496635796806927159521140967768228265836022745926681699801189710541872850410698365634354793458500177070998299898427769753140697245870969536409591619187274360659608309252531427709715155570718023710040309391884077849692759407408810414382175859029918539800690767929913102921885064409429651616025153801368282099840952282009621102815446520564727899784394477152176835937502417299356730541066669913906578972625221844249757731761104986882715439027311591856937027220109062638997232523244620570402965956040666898190687519832210824442023928244385405629598357504471991060664668097265488989774270225896761648200791596597304553989350867826486207121161917813540040737054458623513970565654177121018362830818835780335342975634568241634122639499272158228672704511602973214286596787130159206315010317953929899124853797771443093944181318742098106332417323612813897954333569678513915426425848976359424961792639016431060988327399758208885245088921317140951982797857906661981624684933074341053853932371811984511998289954456137674226266355422802493386150984392689195389958322508448909352250376219333116488121379709714678258379686949513502131922473528157922421589632651187172710404484410420868548460191656203135749325384414584531655524525886438680521365099524583612334424939554989150502319623389118815964063422322395509753451113717003998186426448239826306193872850086635566780277237288197453086182444668312141417260809217233315457453130803813446153060293531551294192578267408993437699390352153959906347884581713621563406918095362860204918516818211819511078702246227488229871720572539853168142392085088261618083877798658501665156345990173266361390070780327182176596900917202674639355737537511226896786157602972729616277363932773883574484632638579939129274842676160830831336923012911542476063980535367914710300043703547630250376389598794644852701008065608774335052615032805896228701054886647859404696695815805958037878834108440049982604921032239809245632351118591371221281686835654867902982599478682919026027536151760701253827076537278151436806178878649674983230503236925404514043981971154489523516252255886194853971989394486938491371504659098935662601929230438851816895309354639273029661803499077910133913083054070187621249590587785623864831613069580471052512479997862609730486153215144325837598701682884686368547986143256464906991891589400233603971210657196734193217627436477417842201812556125295661672984292112686842902983216775999804588085924422061075053357962010593614011142237235542174786426691371585577028170301820515056153657584376218305442359426640232275874114549724617168374984878122405385167789111473411231497365727880466243712759913251551214827938570425213432382921082444434042776753619110407499208596228110173627927495780063264349026105168164942029650699963920048913682343533986864185959924590361247768254531509473984488276857535348248941951392501140041442695721682920505869524525206688393233266721775292462969907819715622862374859107369377492723134174513994938821467055814113449098967429076431258903940452857041105358175694225466131208619110362667123904678354901519426120168897686090941897327487593366655085383281132265329075269555031317313113083606543472317265185867405265187627252909318679966924227948007271892142073246479179989939443337958337451592350495497929287190757955469287983412699128466668984542497485452191877564178680283469540444923078285174690576706472522232227014415396700342386998610787162630234098520389578022601309765639499869380865038397708302870868508731104667686676995066941489668658073099225369544058318822486010533135177524290482744079205455847745296743833368790971543744130123539907910571018790413178697236129621819849612494790184390013744446675466068477175028437391671456188023766185759969668943331017039356204302484070666905918335380351339285141603573483185496334140651265379033754241940291537635805896531370121206881547107376889661957495640435036614735830417690161820909649045402969919497554246120889401220169428321293478111988885997800187360171883448741367583548360627598665312693871353714766513188361237259995434381046739514255698028699403800471909960347757285895826883502073630544932058205360774182502490587479161654030716932052233168057158328951874484192680675792378098637642467563076810149665186347542640685244109373262920709446260641440242287446244059596384613855865295710554170172008700343976370616877345071162304611583232642712772154745763809822637105587879000488981075458446831867021638428802113117850389044437855354620747705136407766773479255446937931376464845159345291830029229046524894559625229618491966522274998793982180477989670146736572454857617659169835455785278056377483354744408523978724769139216151464473294845122728591930717395774909640432259259810317847882772857578558284364475528956995753012556542732739721324572237019679541969595435165650204818072708958310148287941684458397313197883065712878875255921020888710049410789319473412549687524572122646624548010373490842574727582320955007469600408521643933090092135433794673947706466608772145311261813226269651782363641198504295813342084063142922044819693964757575179900802841164795671907369184592049491295952033310764122229361845809478062806190359644505732273646641203643204786145945373096708131568501202574786538835481642226273410934230186150473844809900777493919182697507820275297422704982688782647264251792670166954079326012377867849011847973210664458740473778460726431370406077707670274761731025147289258759601614311484415949958863042108930891824166640130349612856682000389869698514671723455963824278386049677761341208991939628765567399841082326963965015552394082747269242742437972310998037427802149588280684480338733410407012015793006967781792740486635238806569516344429697172045245942807110250755285217084091404817846819846846198156876913546609776586130841521826892697945915672250831974973189965580554089659008789902893776508029299089316734726226465424070326697717339346963290106844749331888095809303193528330561174850578472630148813880285459623114527914086884059122345841972363773347715896164680833070898734221977223857167398435761254856987467806274320841587966982497936870771699374225340310167012694165295913087352117774242012087404875688073307665991477434549039562839012257546257172828186146379239584721804264230375181386208240712496347858542094827700514254118838997943226024751802495392404941999691551464895520205446130475365273913937889666740297734120568737280103818709710401072769105194227381906492855882123976076238524454641803138657825070021738735332771934089353384876702009506602877588391294406354713597824893498727839290490702070975123999961726082407933084130504169283678726724732219463160159013300196561719359149898139447681092134337044529963158163248964810279194006149243378599600431194734395216161690625584809375217055644379137247624879371717813345038717086705968952125680254630381446540132947714269193914750071430344708091782097302421375489736749452523602433043441900517662046776484142522701605751871772603221866489809566207191359653642765669987361516809961800249054147782323714517158803796919383817938474924776545150184207659247723805047828099835666505985250185856288326899678420826303839257447649796594321817088602397869454370664534543968271281470753574662473778706290763499934904025849246139562259562415624536858064419104719458475553226864021411143983843573919401304985067720876449078239087793903989986480375825951263564529750759261999102060713223503714869067837289249485821721479898614779256885078528919322105659924242074825848856914651507853506849182058919308998132679558524865549185982072253545408086025468926771567889613733772693387403030468938402360620205953571078643625704064428449282834676522763204624802800871447010847213461879371788685685310348793568726700889918466847037557993470742513950686837624286810076595362846754551666231787771351658107547813230697453052498266070817511584974341169914348469129350996542408353378643964751591650798217372289128533757856414988917041943582709890242529673652135481858017879998838656011879518767812393604243647379116803498915921678664757097528100227259285773122950917150761277691890327314723114645567628582511699662564270907997376398335806635314801385866393084527042466647522930502916190380798647478363798240627423647093882782390025374269159337638866240619406134803687032354561242223611789921189183644157328590297759038261751335017160140245662407342430666714788130089225482243966985398794185249697025153213913112034846632640470047023555666231273149230796249603279419991127620826672826597053273312832942135142321978599630509673334719718547334624993227530417686704935528116509251618729025225286328087210512364790548879944965290256101377935318082244478863284560344727832997404267229789953274770028236450965454157641142105281915902841341806490577683002072748737583548229142174603515002954750174565204659180521933341209646406728290739509646431473428681721620935252479236480550284371543525109854738108937979714118212281486974590619129205568226498065044654890540468526538589206350341737167779125854104994666781980233680423055993078854523070144801610544062502325116538582654036164481220244918046825044800034766761713602504538916292917110548412582887877293473124770784517573341257036279727479514553658112789065941479731216895556545093136137469692853119194507956900087388793293824183401707999840096391785950507699898466944744599515580664826754488449266418466212334201212101106161331197487157570871807826759430251757037453223777366197568282411207834799360957714897500745860996970354093402610075904929846538797935173807552676225285482594831312491464223999284635374478962901513573237532443118283963026968966281875864095920247796566511131213949262787027446013868727482194517044044189379012098560470302768072067670006067708766154779019867277949178268207923015772647035459716193603132486189288893274843041390592576024456398079957503258056372422347952074963636379072070098253487525907957032779569892334314783399859678018370277461629829250990781618900276536919845395855875712138530198565409731786706081637996068980377207234182840464337688667336770649914585689704632802501848969498815990479735301746783839922029546520169758684522117876402832062817148323594100535780850639187340985356745824603383568754744542752170685945442066285320984058631625325062570590188682174334675384790302194452989238667532120867025870562665312148487044834066284808258585455140789715188617010640919519773085381330737958718710934792185211215711696661619525476737949735664572441002584198250841743247254608407913666358440691348280933194516514450745488479515847970062906528017348425027570752204452140619562605950123442110698503215936423563310679384227150942508376132809491111896808692933509382550582538254687945680594066179054698958818740503311734360806935747794313714181284180999679428183289502951546439949029343709688547921199520874337487852080492170111071217494315479494503532427015152465059370533119639538413819188924652677541616470751548173605588133679251158640967888615289044741889657226474731606322670564206040431468547555116893844497864906932278117367645105048481901321872004903048276703745529842859618184884286633697768110427880095036473676919202202155666885549494164394484503872145101851284240114550735958352922828901283360117375528490862467577628761249060798145209985154848251382653796045735402903382649412283450830825193167665782962832723445342240288177571920541301657763671510542556297641103853853167406301171246739649850720491086681562844132403400866444595788586617195059442222354085451872503920547981830481805721005157374704665182287043497127583346430129536750555391072890172094193385910809702358056576332334890718999759909429500253612492387604776684189618546010036356510220074223317123695897809035170322770189105200727101466220939725072221823682989240467385772110364543300709462560281234817396827687273716873422434105218164138626797786891252293927666293374689577174081704634543338368710634803617837092711744268265156981288005466496615615656402981611906513142245251704879604739254869894661320986484116084537889258699307889696616498476743092108777350621106839998597057111431659359136503112000739941163952192560449356564003725162312799638628612817824602629010319030353940382195361326816390100672367547872713108839662555871504900533353793070676864148805913133545555007922511815152406721385993882157217674770817529442462601862383213283382063858521785068997392394424988967775023453134026499944706862013975900499392663380319652076688018899444823379351971603961986776840565194465627815343571291416963638410489365902841084957666626727160856651820859375373037654065688242629126118826356114791049799567936240588457100120195260763961115907617671388821360695533509000640992579117759126653961494745347582063988547516291997580310513214930672593796006755286333399495536573128639773055831508209288150739935353838786870818165486378633126247573298076374166904940070704491300275549815382713337027104738729010317980853662158069958491734375221694427248377879811490290121355048101241804887084029776151680498147620107896177377821642421182146081642747924154750553362760139853994765607734752886343388764438864348175844919707253851928313507051860910426350996558489677242470864359818381559112816054380226180294371739430306837436306979187992907702676715978428912742324922675514541844065851227143412729022343830538294099019937031815417386521395121715214599584760687437328637159297393399876835987982623129608439917749264433206242300366585765511413056399705603213314358481428436792143066955005326683807715883273944648557602377740430965181336676538470121895478159085851923578346156509567033558380402039583569131131421938163102624358600360031545849527731773266112798122268966012845307427228866097026038873670465267269156509164721323272515863403847090209751532114356655591454964511308336326801333961503031437762224623549659473582246185984254406814339855790653242417576458352032273775404469575612004484302440279028412264909357925159343230030933038139738819989614982524498612628633769521171025780185869478195580807622880831508924586198557498567025631421120897103305505358491105130857211422532099148931584459325960871229998728791634029186811347605967613589427875774555563413394183526967905247732441359069108478805765226998446061723902802828206792686286171218218893818114362623385381349230687455668322661638270787829877382865315969393351545312799968487852166293607164229817610694259636794289767469666744694137306026350456603964100203819239849677019221098521313643667586032861814857102747526503645468310423076182745322474673014580772686986932667943749087721761115284572459287367949408168565060272879936215415450356930004635598572849851393202421396870523404934969794294261939701774067702292616608677055158375004272389201538043449119406465088537204161259404273993575636546397290203843639179050204361667795272451688260644791830280854197654726955845719121825211482685515286202533745793729805771558820897887024718401091679870882267042735777956446493502199097864185470309093450776539065114815830754697411961088194544879838822777265728514600287695753324777794697326187774294476533346527825924185885684471358542684312111800768657609706281713090058301295345905353720922590188843527220699131011098184216233133868298267672954556068787212122304420835905803069908702017092749705232575505832768875439676917330343139311057432520917509120823582768977477552200409592100519742641268833182141819327333676613217384839296959194427223158321088772057355118769237331501528044172605581389675692283222231508585821267676723673595947150647052126395324031678619723374074520013926184895287423422774861095654560158782474421242150541042525016396814800790351830348267271636451548475656251907244727834604687049025786120203398501773972294217854049498297952220651128628026931376044025985356184114511875898797623424492494427879769196415253088725122836992722411517553087679982893482664425963989551901724577862320308173737450148990377912216194307987471285066766373032462220053314500158173497864272542768247894854814270900158595549433970860908622007589863187118914058758413483273893409320161000977731235122302413117619580203600224315119773932744025063735234366987328857468480062307301395399220939409227152861686503269712754954521627764032853060992607305466789987407312442816607644908937798600834705655532685028005880111791802450624048881492135277256401503249812524324884951279705713224193854724427913421086718838486117510687910585928934116163047316773402818956207016425940328140711788847982377972536170468963301882127251653249673421397216646834383390261249664206917846753020915409920664880764344830822913035748288752942634730342253597106543190799599524450998143554251695291863260866092202250133956827725550471972190800284287645951244101811874250066277696355011781887292780825355141595189250037339880692921546836580691730879276558115968025768048370622058003391730148969768491241678781003236349404604398630067052952797465961987657722527356739991257958027129261331738751037624922546550641225015269512016191674736205069064553451192084652146513010214453611042232188781093668337199639860449048538323255715889257017596186752901828868905542505852889476273473491207486416831938972166731657745633842417698573159066261179733598087886180353688999469635865343301681600993772612547589637245865138513907930364840212815015181775641588413659167493741477324851221759175143106249772203346235214437208556429964357071130625817739321053616078692851093321452435340301276336379545831867182920737171014885170361480344806401905461304481700650344047901240371405266703926511955982905744931319024975943509440072119180364063759612483241538858173244982086459144162306729014134190363216424536375265890995546721655683534175711376270747430595096230245651023860153642408433364193518247640571012149840314069922960575888447250637861941821502474696744454303939056299257619086094988870453124930420943997649456445675946886788131006876454160243600690552059812802622713186263564100613222741242566395454798217893915920405628496941775587568359856910602460920359707915516443896459393092417039707020461882810152330726515330375804187547796365605305304277700516618507112892319210446014553062488906663924210769394261748395779287783044191312544315919772660554089082306997530911331353484644969344384022319109650705468296844245831596161514107358706784593738202359094191587491795326710868648336807103288300683476092167149826455024871225537056744720100255557058135174567387103985967567956981783741572221554019266241841786831465641103930085463155226143451788780791130350764116850728439805023699676203776802732477647044908517277908524614302002503909586658900149805925051169747572044003717587708801680186463147163149313248965178697033922956197043505688487895414037921420013668813658084655209203181619609897993921263069369529839960167749385467608405248584566343312515679603343944917860332469994406528512607920661465463889152257359702050504220734162622140768662152735410348973795969360113274075475977306698933559555371243765937547306531907370887403405242034901794089488684513140865746617377006020089982898790660571321731649972714972113715487779263220840626040489812603035720710235041871167591583699271555925407406038256039027477073948655270769262979911107917240907074878177671590815745420015692331367523917100541570072433904952903411162204255075251757974387994672681525654342274136663019544734347502521064541650418465984844208094412924701094263519734913818898394026805266740459171516655294367967737169633103845846303036553624841947643654088434231345666042871073659562191329506792105499302728920857847520421445447280790530764311826554369082465380676942276814358748655221186546497392343254010826071475758292658218507335224080335341381271754339587419089490413637683666258095847759366343146828479776218694102818421312034156779693063843271052057000636670502478853641320527717616611908487522676264611255108223749236295626750625725030678619365888863584985980030484248329204996727079378837295154910723479726101699405735735390764722021901803165623885388513788290321131862049101299054473866828669090405599550643408721961748303929752033266768989107521242636343028776383553691194642066871463682939883770552125522704798110346577173417935827977155269087271539251226136614878416109236351525860153166883535531445341762613317708146570843080391634568726158990456553263357768333365977828493912360971795572612875809430444340729023302180324092735391341067674196495852496999389856258065162239077893945904816475761369733219801670271729378267240488650270044968289727129348824214810988284107304980401451388272498897388777898237486774909876061168322712370841556636701340254285425255371118904569327203073590505001173048269076736736076676428207837064130746428537016878309024137918229669501287050884782864003385278331987234001481788963165604262513933885361330374727342044720382998533412524395547836826514976315520470841204641564874667606273988682866326959096682064708814114777619515629884994869849017072405548410005039378943568904778596554087781528022294445477867081404012153466827775937351328223132988322924779508494025232181361893437661894177863237372351000254875320519904351138197789524882427310330631370176607484227287390690521448827470692215170620156843693782009556226825280395412476031523947592211487060996562271816585292328932814050134263315614921129831034989907044288220128662504969957305587973034199953725311355829505376485604507472184827158497043829376298389461411049641811232135838532608849259793281495373866415650894094753103374654707573178105918769074838229314782780773035380416279343230842179582185843187465289314620256707019460933271559944536721083657082567308221678394147956106039588641223832551760609194585497640953700771980669518534527710766098974341076001397596409748465872123590014066056933369701522968137455290133732452437142291274243385989932761953499147551984388988120521803839949232100212617805298490015478334994001219103638261406942474194452527461055545759790801138715467577110151070288186187744994831764199462589642091257305172258057718458570150464874721514588553552395028899908259493469980780172342550271358192784836005588707208351781212496012841131080919225675240781170046549339868021223592205135838602153054515271877954816270247260690089357901883372151696535875242379022556706471956992268897252715955862664311034911322430957732246653409133024040304597555816686355537297724398665979490109519455873533556278005140215821668241957134788761012914615691077629868880151007987872736604902685668068433736667568187365254552906373775013085875475553526565789505583352807425750874827941615153926088282926382714379025310256855110468222976002826598383268680284838571981631899566060670328328574610580876719121130550656992065563046256051978912073856617373225991315003970112875674631773926081437101190302975888858934462900225932103015462990580724729875548963863118485400331446762059127283374581941500812413666630068473514263705297067484513580124805341696288376916252357546641331823482660387297663111086037847597524157263847089906225093229727582346484852582149851830983514942304236553676810809867678905920463021733289960369732767056032562936841346138279622319596728278044143598829362895961565156662898547948493871976738069588632050273891294432705105131384524437969918683700345742981301184743374299959087097338671158629863999105931102879836817270076460125870897442184914867814085278564969651590910589659775543636707983880874566064746074951775766133268448739860363676662887661970469811223540113458665726447310024806544230795796536349252275407936075574707214245051350608002911757910061520708149464134961257995833055601673046271158863515289433977712049992628009195671681258814566140415597588303544373477382521823476011510531035409251422686862128379279410037632363127956627668059340183759698848904798030947425332124260377107843774073870783013364452142189260287756457949180625481055438057472203029784419442077926807069212745097853089575251127524598630315821062552264019551089485571191990553809567506000567635384347247549885073746299910639865600591875894161948369253921597799711276656115277744256770396349713750888474060209559852553377206885859355871780141328401388159015917039942709320408270695017984325809396727268662685142588870232175861498556456913034204742048180104389994131730142984881182416098822867937883323521172200568804605531665807003626105261677347726447340251966378821061768949083945077501852120509101641993438986707062202819575387910689870488161939852608684256609019131374881286614362496844807538949595506870911651851924035715386593941535809641235534938830969162995119446466530381331946037196268373936505357007395717002738800245177177906064749582350628638788586228682174018885910630940473952942360990625440828203485087541596537136694925352163099865411748469643072548460844541882647392503181938279088218219546352323615841721086485559074499765755507319141565849291591008635017160584254557423705335878229312763505242770763920469946331373742574166366184225862404921465728012065259129835973149840313807014479027559605193760538137555414253187293307695723953443628801478621375597046266290934497315590125490233061513676825755064114044505774396322175422692619537616707376456048640028371062286202670181047176415724049690601594462748360319190127664265268286357409771851793686871701628860826794400142961123846460192990977499689457983594155082627520333281502826814096074297158142504453211104059167683807608832169791986031822735338234031645792983711971035095220356622836872839947540064465282621422630818427084666984573127177931230320493249819144637207402964732575991268166819101378162696617478923856048011079802124183969256604442476444885835186916426311099337557531018937283996520447159417807744749428809967557066446844930296800445742225392056852797178129004922933767985343075202814527988122799537766602410517920086478879210364342211369394060122620978229468822947148137855321328307371250004725578623500891812088267973667367917770523930930699652599940121477173088328933642602976037828026512303868980033279348912695136905241486991699383384427718682261377177022479609438569174378484562524626267393498002053363319486733161335415550013232822373272497865751219119316416206450141409043514022822726793058805258572843793467449883517463107853315124449096303135912210067243757973853616816372991919411472785307543667524454901424596267512032950632888218758947741518151693985706496707896902123059719516887472690205936307183907004599454551040047222815590862557174167747238253084805991795192695067370753092220276857462893898021738554285675166709027852094007701694845726583003651419822105805571615466826455037861708487105044904535398247975028014823421494990944423755348461041673696466863648094003220345127829490148981980683515101869917598397402412631114708110313703033288806886447730707781687266357285253313554539303306145807118270635232897591090854592160050053408983149917594251447626936174628464279658490822566103771824501432456604518609137125378221518487028593353185812842262547652436258188785098007915604750242377150614297289038602891221378869118431793549297882632422578263818649624955878210104382994049882789243478368365779772844310272403633458644715834854376854022837391490904639517281561046556119332017585151939243187094316165124065294630851040641469441775586029793458892725100665407691158795013725039850394372847208293200433931538849686330681352893110346687220069677176430659207229950702688234981472777216509799877549952322540605513268660963394870627392768236752369666807136436748007596505965228009846444506517488033749447149138266147697621765964539595822805082962725453918559825509767814373773610483320399327595927197880021405913263436498073115766597029606674140722765255321431012287060243350795709643340320530756430207553394724596389869481839349777852015315722969668791059229484835414370619976569325995056656897849821803474654617956550366462398210157476090990175512983510389651328845525436909602187845813987012924717989675578111187147613099779391829243379382268641769094076275835513872848598979841757144761030073411755276278874449498141745447431422380393044169555995445371723589885281655245932568167568252792852257351068248761164249485815521308487822091593338998713321091841684057243916666063492825126876493904662154633904144609452373695611046738897197574445178543095258768203271148735565498160929291213444010676659797052378040852212241605823564063075983612261414902408282509707917452718744400904968034848280808712498249756827287494312510986812772683998309412652788901596645607702152756902733506228698404678814609022543007560868704603748710136621215321260757308461095579260062357578386266169079223926399849270939597925025449621588510527104199166915594018430485260230356891706058025540027667219395919772428221862877236461334404980185335445046000119575865599531022957686809603638126310183304792678402148518691265502856713533665617610334047586148228315072739403481169039809843563098691393222873246027762505268150400559379600853182768223128184141537984171702440825620551498251409612735699420375028364087944173090835040483300937572360331421310144145336332813446524370027028116038389521487176160717761780822670108318328978173915736535453892208946173926349728314813292926023303682945856821039089889915551295265236827677806384855319892428210576593039750178133881126832814580132294802512206018637316173719012684303078216983487451307941636650512613372994354316144200166811373909144425576155514275205065477155706745064446574862488698219737441526330352368681835943274925707045221739321383935657575763201575048732730888326426219342700217552705866338380908362402488099651171995340266002215352320416276859175930798307756494097832899820156291737686775972011303875117719076376495751061814524501999754862455735681151094015015711111326545552916893542335613129638668484201513865734539752795128244571939713725696782189407933244325710090304770606245006947336094590195561474808388935997057555392488883388795922959710608785209194752433417369898120809461229042359218803208014743460466304315234471435197564687990660894567464845018251959842782320959134343250575961295559963680051305328201777592644026918915590742782585860683012292619852613145287852021003916961284834178057982123038318942197884367904266775674816724046234662639150248852790527254501766706426311560033037061157842721540570731664549147118356894032482724191094875057030592536070358341213132943018338993834873490083205218823460881526408687649254360534887782889205889856510640533739971268370053284052700408570560378532227481339938153434449666956909525093277824065181080755589205500004875453017681243624793011038421343121771844868720563106804197832203407989628585054770852009749585171414598429554879740717659200886723564512096586306198158708667431990572693053477988050889244451166296471283764158209690910263335619493141772091031063918446298220722231418604516107757249193436852550138169479298991928108624300751221602551510704755201119513321791957424181175812964812367858237170983917211602389504986953865844109199039646586882193229285434111796296902146176920409084108819323698465752639542123584726911333127474337543585462289659272484603993416763525328140810604165192040913605502309972756733908540529158151572190988408712484168157717949221402675271621264421152457239127788024520765962211644309166481129530733351312394968212059345887403758356984848116294110242078946052378213978255236498071412006636768181747003091510844958725154501460733535133007080686787005155439107815878459715704555437124318350883051355184710591335838057827873205411328127175194205123047492213169854782040104337955137461549250741628548996202000919607727597492311591377503377530885343008209122153292527535766731240903688672438580296813351066729474307219655979984343965402755389387646078135326472141665494535260624033097225442512317351190412234732878928462471305214837402365756649502789045989355915475132259688048968627357329346143283479979506112214069182988254122383736007380397160372576546200209317385596234958556372369427826032611674282082984859654798541134264243129304317507940162217151404753798112839625666020249164727158361008600262363156559186610907551005948929351338441400723821699754930465591533272246877177493826569874597693178113204076401064723736978002595790831670429879623953406696466246130083755241505432021634700210692242911754604677784378513658000219551304213187141513389873793796554001940842534177734796407802281434880865246227420011333894321526547715828903786784613484713899331208389195612365769900087054145057107735690293661336426898387961559242208371092094346840177760714339226816492153453214772014977945294234713494343056218610464867392608188649731059721013386170795020496391045375729768564478394042942156852513470044901748413913414477715827534404752107305253722792186810483415810059895515231054123188785666770572609663304267025732504905395238033528399792952346364156084088259891428137073082871862431105525441315872132896953808086284748803079794147658945095857720847942275400712037113227597683471221678904055550266188431003820121079412501894356730739198033887177192696403056505097476726521237925733854667299374099090819955853987385787768504153042256276882404454987565444728667889759410518711656367473804591107711852624370191594131325380191206799260767710927799987720326685124314687956152734533358941420350391126973176237001433375628735470151096535042761919576942579851854767329186874245456012001013111605924587076570566049271831411016947605541429484714604546455004531670062867492152961030905596881658889139259759364564693663976492259804002145703134203724880372863123226919179663020991574828748754093852266460269062507540260300355902414107866867332494146283716719084761929682054927763804332067608437472654420812088392888739533071156579757306019698828320834441023475913644196502580548078672106358635238739996284970097929491105266968525307665961479606656370464718163711116020981628943829965144935202619851168619785910519215382877404690205256240883801881832606935355061810688900842054633454879492342288946988586287509562764841998879409740434600081266517530637166246229512596983978052936882513735784826128542187038450168287258316294428529167608751170370643037711678260808721846519333579804852482832451540839571080629548630857183251213426303662267629404259304829584301712063559412554628280256078658648864482080410208978608281609818768610165738457413987872673767107333091390748372008201719522000671772315662627121765531467804161735657188140704209059561319201584180311677639778808921165543451298548162575297690905324625476341846707900008783644478848288773371377703015175862242931300543574106796562705179716809546899059203535780860257208120304297645017796872228501757959077471096585248301371462574415308741860527065591287821620716443414840958088681584568065184539587364786849660732239509523118026931983211398746653242550969443127235311179545579508212006033148630122704402284651130419257165361028331523220850511837998770472262649524576585410080068767824543213154298958091526912296379317558633835330766273770685873811235030837153069429295833755003971367129227577443922423210911025022160140512963632701522416831684996192209010853919891463103220706070067244588433052901070283734144001093362971205604551329621229489648776595965818764598012778233564765938531358627216061831806947056381912753172512275925808216738561341343446713531686216978193891731324003891822950736324279143180284762934906602127409034275741976198391271169017249489881623198447554051040867904559937211519078801447022827870947794743070204780247946645417580969240363182236324288156188412660498355246033322511720708086957265790492773468536490116920629751867219144215815027142197259159090647136356152275046828859640864253580732451462826818792510528886562984281565082306195032630439277190320571903115035124128266171526523223540944585427218549790195454550218690463995735370369069958586476738771990313353665226309394583582216069001022249138616751586265441092693411065366438929023228740054870697280896137870734130910401363240062498250930740385335218070503756927407983073784561357401711347843248256626629495953011896694752396013223618538142713477317683527167786501320934710773185095117897625844245907993155139562329319838302530946123595629083096108311357973712479265237764486954438947803676331167280391879491743417737242133453992133999220465460108242462535895502580247008498894578358932914387239274397429600987451332733124523421391731020032892572262845673801805951204234425850836515519459587480469550183047541380983924438138634425052562152697697960942521633510549517303728914242002860909450606215376907170532637667062780931801517377502456287642342122563666802546994657403612506490613733888239680133842176119389928867448538129795994070761209451889056594453361465373409815824345265105799909731766936042799978542105244074091803609229158358409906686985021265743544577079798679427193476318248004599157582294548393548975753777393046240503134016830129315621209085836397712583576978354606918777781360139533220906948999372754715292850823940570647482190026029786461447612067696466343845791889331471506439855669054265235679764511216341747103021049834395354177408169735962914727125487326713313102276177322620818267618091663875098113406682959849464018136530373482642049029977066584118026692146353867726072024498127288757362259096763717907679130441095215745432696307763647862137397919393662232380764003721209285077176929295049021899112005027286774805778455667898883746969830488919939607041010077180951720935498637850488860058888434596462553549448558431177212967548873396441783150228290289695208724273684153694598033333664993737872943214404875159681010220204721601383356981046322497979084812078644120298768175128765035607082010382101672447309226148463333765512608050028798408087392479569538812465222077543928624032900493239362946404315517741193088534134271814158889088978742487448633873210634135168585524059776363936151059739664490574422985107645722790969216928549584722972233210010923334861227742582563191269731983574509645004424959013884553444514364858329424510384334705452879084444745736174681747096684302861062367635988181901724098403032554538170943999972609843697965283763383689861035069743385429534605496576844556514543581119341793783748871940930296326894894497097558139139452290569988839462866299734141355975776790103432130567436997464561888678550289178541797201694043893950503910075888455522819529088258057931627626374231405667277319226980741194671020346961471352771585972081559296470555674759064849624264750514340821840500052954158713728443640024599122702213765976664081020906468750459890509154995150060239447407300324701491971833061851815190769577851125612252191208374904264491862060107284989372300696717336818004177988813536866947686773951445000873432289334028918328863974076880204328995655891997692689264581001521271717306320885706128041125843343812522068435776202407940426477332522778977691406853833349310545294505273527260790797034328105094755779261817308059080373214179772034968729132629256882708493556298785967407675154878989620994416972903511530257155685925370833827860032201730431680687456736443850859299517584571923052779681889101350572512602712457247534201233736917059718654766563935542715801319958276750100355681206890230512781374607271295320128416407724786710385080183073227562972591130564799798909407342606265885006759653587709512037304484277521490358764461697033024923337813501959046010842420777184203450322429512765402886929750263024925550839472189630294048442149279087991476781831738959008309262836535510091042229401570844056579825535197641451953368817969303902669334156108556518086792673528471903986460109289796262090778231940249101823782153770071557157679604651454946061835422067374610171892541252718468788902041367048139582848742755296565965103102042293582208936211685922041539657416495254951215575043532425769418079114114317306770462094578317148976383560276989802571345134160981248174947557652783969162035779605347213209222730039449225179213650007922561625997382561919211774750439999551153340657171109616659524624750819319150902192805931228903329807673509600445088654906944327261702892897498060154695575720980673375331278911112996301988437063444175516560358959767273526443170723649814910566668015624412206208009766502969006988501834008030929596090074375308892257513814194147916883903805853991948786526185755091550623341611703997829195679935012063067365093511761617113943893752815938375557046380198086249921572905840861607530102940597222314594284705366233075684550604158444380767630312703091431003311749647491465012426489545332509337985609492430383936985563588960319029218325963449979683184724216885929470452347648613514266571777447832258611687006340192706252386144777524139044044034779466033515224987378793100718851257211668895031789163982084542618760903443456176334294879281791085724414809455878773656615304145919392916722336250423821049308698409022862351920996044203010074219665119621417665707176445422667731821941765624361772636765260959777988655087376343753547845399863983598572217006729652855567341745452957012742034849770445428148583753222502232986255829823578144331200190308104173217273726876055472680622491242170751424619383383719818684750870601635069384192970247019491028445258548993315258011828917757427002307810941179889758239368860666872476598155218281242983621040449814069088496970217809546171929318069674229765091954202150635795087129533644008273107509180518883129720208686414285867079248554417150117726433800540447311400507499276238886060120546977184576103079390508475225406119536700532129599978672838318850128064600992705638484100729914265650860850226814539996505312245837167334536378475868414566183428835872584051640111399047193379721414727708546933004465487282606176244354034749672157024519243793945502122937747042398169224335387062585591639762762391637477865256401246097444039025460769163278633829153621470179089141246093941905702957951657659629641282306188161069446794279412770884791805575721266703617588808135201035843899685129583368205183827166940251736142743056975653116285088074777221215174771104587470801967751746111245154568165985548455238162050109981497572213740355838753200209200868570413639754193119282242928708998629042652962424269512524040207956886214499477169410824892712692322518747447710158326005594576766527994590500677712890627127250930712549340766823159914919167159951986978528825212020462739804442754685338855076905733603011907833069306532894634043127801326845641218749682200424848429229648962030496610844711812895185678460972534934248638445403231189301979178190060086460536143193667501108280395756306175840618530551670216813819002416373802096684654219855910863376650055375866169282045456202416146503101891110245762015284288544047084992854662174724996161293630213321254740453149687005749744779711372527169309479204058434171634634474769442004726853603288304255210862458201466681179522288849093323933604637900518418506955351318118937767601902913892049610915671612558153320721255832436553527087536144295137772674173633845579303433724414924350917786151309047552536701232722954494154787634327505893777765927892603357952790592271348890491663666621530506360092727652932942709114703489204703189818192772107382553655232120471618034244382534084668122754408746896402360381452857009453307994547220941885184051385679709045446722292796981240097506182604460833101477574526882431835194335124069215206685382304108758417347643391560351740134324681987238868520763989221419439742738372666195029755046735836402636986811827973370161697304478633442861315102512404376222113519624932818195059054481276209142526868716740807030917431737152660833229748616349036459134805765278701082807051432880315275459509446015908081574643278834177082442071293238500092099573674857345117917661484236149627640386666843655395010080699365871979693047087054923990634154248576042551194504012331680171357931527653116534080134932791062123019658459135305952184212937194474123392335801406429707375117649140528497844561200907859653204605293079116158603856052770337157833576740946636674278759287778112693413881497170444654355776744180231956866539315779885848713947190798396775673672310016297568030492969623728147112679109484342279073888200181613311549201267301108666188360722526127329522746022240269676586640111191923985894101261849777150598132973781404830518013151476831261245275104703833953695836640309737013816751515832864177162040167907233625891837889745009923995123727205806477493826225600833106362380890214121691950258077385261195135302774114508770272878908974371596030653654297672961716800371899830691995675604689252757396432357638800178322241154552615011171595939466842339427929079539397590441146623319142377594811646812344417377162078452022144251726048506722242133086610979752954537014911080191029939025967550364860357344007832124543871418456335515059449696258435281113654138651605390405088158161421733899078329929889591988372204558282109828790282517385160985507168565726241222001498029913953684328520552308157093847556323454309790199490771138985880443373763848736803626849954091778024328538530825699285626657311609954163218990429543149799447901551426265059916519334415877738219223265132687083170076013839369173386773597937936896905265038598206208076660824422657381937206703996208811631295856217006355174758705996181597306087890659344182594711809235090360759692546643257665379846491386708424654434834967692141618919049934594471525562264439633248748941023392350345718940031380251941729676360727931071667965370056293354362124863139961714790346359520266654599432211192663191891867801182215211517548448559351146014194915838895192346561347207560518974880961231580184275052609228997376652464546747651160966015984118567969199049083754863308993380197918644702945416512591091783334907670748453237801652093636671658584734422283177056611163244307313122712952721354768899621579151087427803461110764156848524639316282570094903407304211421530117581461132916138488124791811009521759435360578436598795917455375387361058767699632335468148649738423696071993753722425643687173175092413201025041045432452054063497979341368538573911476223531612532350758355968321366918659251332975460496226465165269779994537742571510275891645719230818458611436598232735126202456505215361986192514777845818429021559580639794613052654982365615549389505040676240289466401047757178067445833857843088995104065498135023484809900836126261262899316432734883060319461293542695796466882068796220496383191988657786728437036413460746263856470090466911808943963869303364177616734939862792254745029366206607201992227724757527401545730774872286163210989195169898374299278565568056655167289848456534850256332810192111909601735157724679734694191935922415422498244920503479524507756475284846251238690436208014438759016974885258461723049507690238425954435983927075214352721460995508310279580368394628789928448841477831127245743392526388766215621652994376300660780242346545967099648021915920974882589326395232064036302194798687468958214658909436359510209546524906118004404920183641437408738877027285645315089874268554738283290540097039582095578172493592898789194829226604564873577421310862300555995567333447361450589063810556662413562460786811657908835275255014086964815247770908061243493216918138791430740986937638107943798165534382300049421084749776238428601672815809840162606101622217796528858188476072367810482290348391626971683680983981752824789910141303584374303711703287941289173433652192951199715797355001862257889510132427182208059501838553140634479684841289205277966513975085495119492717074088708076120287484968851996983487504949136330133589039446155773687273252765923230673615723863988284175813985934831758721636414524050384227603154354060275955516416250877803948170354568114156660508516513660583884809008560646896854745999414024017316039568356112597207775503809150188817751171315065743975685875333892174341340070990718603768117143750858529803117496192997923007029950863456790074155564818478760204753115936874414705755483939798827456260233903391506872196801077964881388649635054926425830604159251028047694167706104606124883095498406954416590201700425886205116063944348257165772685169994893002879547928813224253667795482989389791277075296863897432998145967467575819439726237316815380815476473922074974322866273439387536009965204555918896676138525490614260169850957798302984484544507491859542464581431681964911010590244691936269660871375672744209131886226133309452653759971556054970650853331426898577632623744317207449197000417976317381567853937974965981985943606156322044163240764334998471217029719068403988217326867626588453074409878239917963063929228872178866827279278886400470156996303809567948063694396988225693488230649194351910735634103018572891604934990984418020496499664047777491891811294609395448319727256956264497938630444041497166558329353895223110439365582166460669777903077854036017156863196569867042140745478723179464152536697783146242440347520763437839972999726618221899440420286668038547548053860264566803307320070462099581252244591735179154045438867285735664048692480121024806179314471968228587170950568522704595562427213183430900488437277986856411119332038088233695541592698933814336975514655840928498716823504262112490044466188581430562182037200565004023691777213234484681350678942502119891614452139057278667496582356730703031877136037314134271209219701392192130261842110691475412468185043039625132996770768144191536007351875720672288221640148826793266756192959900605854601209753570945104176481765233951300221964169609910668389366681464557334491182964429524275233744406505977089381430740554987658829350022039489857530718302731172855129900778440962871860794518891422878190682493041937829985396026929092951203359114530008493079902563053116508397496801044419821382493417628502071340412601365128284879947648843276291570957504914288334616616937038659042407953938447060497006419242503187547743828396605960038568291894373162843792083501438560339864948737816908538811286660254011128673676798236290295887970032909291313959431743220409612946089272358540022572075863754913032305184542792405289997531333520773275266596213804454927046741265679760517041743990530067278200319139677890007006096048755837076974162980896930572899347398908830935125090991781179576261397606600175474518507160129714038314695150123053563490854378989216390419828519723565471974275899535815015065635117072794077532563260241705235954150291303026801569877236639697962389039808893795991081602616766658881548118215279619966423652906649802662580339826649384763189379482139604158960593322259973298387736209025471454960496845589371997789080436773437608317282722829354015766516831327272407990253226218811303718813380390399366467852938743847180077896539142289511156174664860015362140164370180568124320777317956790095171379085644586886166027084582295163786883300651337111284968861033169957759568296628389044318142441784203562714342425781977585957550980369808047556514440397210163861809789649569319676068733403058518579372803046928188624624367679390469380168701669374922866881427955204245574331176062360717574063943855392263326345525367160473414746484381568927180664362350751482076266429679126955907993246600587138255711626651664958073989688075754647893449630160759934709670050444401270987182916502355782633972484163753400358177114493793958824986586803726394021069325468131658235052614176046294187228985023723368601206592840522949265323348332177414551321929207077695029225730621094394292269509177425855005638750257223817751444366509081536728055295862885437103350579177344503971954178179801531853230846276875451259546479014362260611127359800656972648395356673397203759290756944528458797243654678260113385155454958910371224644945231907838435130717784699393979121435752423570914672629609505178790330622544406598526614865061040715923338037855124395710681389349735353570239613367893170504091417605066547674441702829716825131452747232595999819584515314772451696540972970426371363407977130889897848123273038713316942510398324948653247099136154755115499935053448914331745160492461474810399354032461626364480095908128998674059961795739009072068271577441077938837031586035516779626199928490941389873266720324541874309528278158315788127837216750341197218927615210007525774234317397452213210928304848916383732342099249178736005779690475343306835200146850681928361623820861592853552062288951011356811136807320532802070366544016008261134381451273793085018893129932274963064259970434853332818089380708582345885531755346193818385175700320742601385894985735473152525946980424542105386752361090516024802073406235343557401075502541758815087802817413488855877801892296607237390990413710244801482326062503861292783607163255789695462141712346723787813786559307813710876295315022716977647301785737332579318662391508878520670527124860566069456235522961743114525471236166612201034789922304124732541280449739305325157054010253868502625414855547587857944439392910099397081212619613049098538506370113951184120525273409320896971802655003292350312221737442594645479367233143020103335292826023800582293697839468330056064043178464034979525118708955659995413242205299350263874159830880814009953796943863036643716446843281309032827925326553215159509737891451765157872104280240461761198480747270305738369658606869005551122785749536738023202441348020344955456856240909102546304198912169158699347854776423638091141351129484766107768124896404404055114083349303107032133399196776227744863352555481765363805695871632497389626817118816950990246540293598867389439713130824443860347528350504444557625753076124676556753518348565868557041659140193396822929927311902578532167781860475512975486211746141200852137442394599866123603117237332329148561315482283957147065051559848574493409453620108682368626841217328150845718517542900093123362828783003782504459777051340116161994140676154014350310098601896760116543968082026567108083605115030865979142528290523343664726147361238100428577850263834524518991817373612101406324623675402342092854154830030814265349475228810391068885803402747561261709269474567096662552884284935820726568757825436919845776703688978113755063852508866836662931458003545142939392847614978532773260269162323527238667312246108062260167441921360895261362648419479864074108320741921101726482382350589160248687354945697081660845971654492464307581297510430210866170115817713316452314090135508195129272691519625127391513136732148161152498326006741607255577484711456508801465114116987042355492045257508518956049220647708054513981380910473114303492659238276822220097457698653344408010061061992402449143538855924131155299356192711531666362405058714077528717664628582459070856840176207754651324834238235592334675924884620613333678880723950796429987392108352270045085337338757457306070438454448091838293943401126119579208039791235710096193045903200275383267247274546012430229478100691577234726882781628914076758624843214748094732308980616430945863443139378171374871542552645561302732888356436047229598519456048480605900034918083785655007556663808577253190002439940566335991641101271496780452359738014041701929057581360733879781965885333956464985895717596745051198877797647289039374527515930420556411053960194948540097620091824054505983258761548558394756580742659580765991822143453179953383811917200971198316434517519863939127522706620221128433779205381632265809439472074399144504475076145342291204807790550241079535687310531353370822884530478513051810445330971740092426055972670400394512433385183772269785827412338297447282722312895856304936776184696817035842664607874928387233746422984672902999037782511615164219398948008751419326258479291097061296561694969724795409105824122594971263373038631982614613884970313603914404875097956934914585868302799057707783412190621643932854887083758242390169960067080102007069445677431933415758410140620789615826957576690155742404991448514754165320173870416742208237626867309308411936121539672442836931478052244015557856706532049386993641181796200623656089924962251592889651095520688888588990359802887256340263279213347666132227108296750134142747904592834444156049611144865604217745004094065214995878829874032688940172305982290637076402133438737807600584512509760900889274730357351855913883469314181878347787485176128860873425571645769612474449559466149853230494426972420402728840808030165923653391860221217810632696039947870654292923843770117464716740977390229518886357876769433122252276538297852986851161467767664994239703788641973849355160604889079126430970410370530945326146259704243376792237440156808392080004969414097414102089256963519435017301739100170946949174041961020511008369514247316383590179248699650023597235597168201380477494278558588300116773009933900489019088487062289809842455819201591388848677830316487300835352316322107976882842901953141946676362105347727019258294794074262157207738000985215681375014211478500868232666675180482673552660580940139520963999368085070308009934161911919533410545117991988280789269718905819780190271735561626240520938516997607946546761649486643385458246717452572209253461237997269455787766874085832267761670921302583647122015268281134565998472747158892613160813913221524137448379762136625872488816695614355386545876736279754338213833606443758144730701984579548175830553566043950149900119844608469266517186782548905689698729370313714824412341191936329349552577231621314678069360518052802054293745247701792620815626744915083119879214813672239502578069592901255019160161412564529889897648692238954336243847576309508976463130358386638671721000131238939840329408147187005147930087571104902770203169359561073313167757437117385105268799668246301916945940746361748555919016549245855577836063267257407423803606277163108163065133703647551224230197493443378232678133226251575048190166379409069276768074246106562588342309232409511336864626549640902622618524145868472785500973773944889404291230257629774765028356055733569748254743328922838372352619661252253175026226328036951707903731681245373106965848984287475206545269599592611106742129041447845757699893502214376420318733525317767774179786701613614256159924562784355413915442479122987257461135056689173395424261411106374907423202286500538969859549868430598471285744551157947174411826472093438359814980650658958116752900115318198944754309269176474696132289535940356813149747056704978675568790930063460162561694386873260088065120802182713698824895337017869132468829032565744948363034686146263035698176153433501152989202477859894565506723290122932275787299383308935003103400996054317730660893766594642498805069329899863999232556306387923852279485738634672643331444665075893635220692961898076035020178466048469565981625068421381226648787715134457887337510655870259555369683645711372294199448078416323546983202745174395775590003378529137448548676777628976331803669376054756373578814507158297106712515288176484847708355146460061891083471993711502082901889192679106065545811817238066416461986281512424731531005279512249498984414090067057507081243894174590000488062714792889013356613867805985297938497589773431634052506577475005573758261978510854314325551968794212626932756782368678464944220416548481259945798614787035768700598233863207397014779301892970699355900168358270104962871481571299906828174899841265309140963585446459419095636749898924797257860695472917364840799037985182527638526781323070197831808147305393503362985365984083824255409377304391373727734518397622688793397798546643506375972304867943860316223002956200874759174139364992956667993359713843925489101117450472416511073330295951901148643888131575252840416317487191628652567731648267109925959987402872334166359884194503312258881298275904499757156491643994954944935665998612346613360820797769031082594111230626547123304677691901551369516886743477069533186923660195397701345386151427631235958490520147846786125581460474065380886175229925169909292930884537500609969312907611203905178440458382336473009877388365086570151033869416093427040855909904218387157960166503807945864704682219945004992476399581950862591835796355568379362931101558050508526789507363864348052139096096903987514354056564174453144727444422109814388358357877499993467557663110094763319158628676973819007449379398543676418938905450347171526350379802821409314994056405388183881894087138591935859184219823703409933327921203986262159154796477333773214083765359805105120479896072238858612500074880848710522542043597616758156145428522500361716214057962277771694028476584567579961749518945163375375860278018859034404643965304230478079852401316354623668011227704502528820619784234354137697169449040486711626902752142235689246435534366066664939269894130389721107763032501438523988317188862526147279521559205251476244435772967617379192374808317189667509159615990417643769070843528870353427916964481424725416780201143680547058506202071236449225558281370731274695857710995319969253326541953586471397056398772102877058222755461218897312532501906895461379974760542905284883019739119222866378014284378011895541918454176961081109371445768916461832629021183663832031979603304326928400139188660046714539429192023103566543030696468157905059775582283915327303135944116568384750085330269451236628341321432026466025350001364949559763561741566696818773875822484505927113833400146132233079857790026372794905618967346989594162613257913811366725505367774634662813954211570334697283789826554706325156697588984554073835891935441700892009761765612847648989085662243506102575659758672836752166255741838946859668199634432868741563980737671317379417821593149372133359296130564294085809011963826084610897277960114830579189990188433436071667029352676676670697823322268985015845124238360210247737608929709299783199929905718165962642336757936449549646361240538204644793885780807082375951983900973775190858057910644930776685743277570914744114559032221030978704650476540750259427548232549203825639491464349263288093730971278442574651372514492185665355251934834279474931443588094584744977171138826745661896064392786736193154363038834857024854817021629660735626182284441059752173269112615001780419807090424889497228964955280188827276161152970430147897417947533191029215183824486343415067110879500605510928507500891380684947436718619337789558749186092398646010965418221962970551250805159540487220181102378938762651177568997212843411326296631449286663032743515848107736512539871845220193226728045045877878097258088038697435388850158320101601817446594543362638827845210951303686516376145754695313495961645723037370274143719703111274170657057940227543055570896963538755304104565506806323886142010624004265487301649660068977855301895264185425348475949606990961000037248563187951646187596135733792583058936729949958166608445949646663933166273884746244302346056323227151730283657972268323846664958424571597197782533454041877960421130691672767270340976646554331912869141431544268991150859466081257363226316848015724192739526342066181837440954432714987762166602873635437306997665497884026283379451302590884202102354658220637504260045942671796312722175358907707408483361563939975586162940266694658590931740585216931218512987830569309579731610739948911462051923733359165070491396033375120314868204916632477120164669282739827577708173510387354350909728973784625687425656861333542559012087293449805016688807686052889313528663277503903927932776611104390957878498317845630559747453541080143315564307176774531204919907049898542230698741275302253022723060475685728213867207601459210097540553689472730235975002885860142421909053314800483227550373566101437166880599949347997248470162790125243093364936255688785803691991884412936992834554161150640068460105533603499078439857393652286700393169144184926293857256685925301188858442784936845213671572844999801466345045767468180585720742320215956751833255574495882601363952878401230933733250386513339048934210833287138817989191881908353255796561066146469901335513113813881894866496833174729680541513759161009134462527198969344153363110181649215738024645071463155499494584545448440906750972775001180169920892608555983988077150199638478549267924239000989432861425648537941597053672346671431711789518950182534715661811760209370515941020290817212175018252564673123349997107322719272481432419848152117993823398790842334084888739419652354437977617832646575340046113477538895538282904815871866037714348436960783228025611645610451697429364626406894821734829397624949167965071919073384199010947960285526459292405530720112527758626137838864324969672487713577553431197766970408891111259133561828171535406269948425369044256885662107073750348631573944547729248009268362045827963243678792612856889731976119772420356187237278916802743055862911339342793533232144635923818187482900035095635143865807437653736907947456480789520096800654910973500202746360176941508446485542519578545631065424835093365265520239320996065260272631203701675898598433574768507038703305284486900732022318014987217934075186329797729160973591675422941034922582721493763605168330864733441892660604498299713031727128575937006813931629348148987417117390320043630983321914866671388977998684501651738431821225225019928744170541883158413072555945897804699305451184261451423367728669819431175474490556674255112987772689161818121839740091283662735361386505535092292625295229058837216810581928463361635091311696828792008727141442360667666683990908851353319564180671694478307656586149422509537928173966478259302467128706942034372440150386598306094476737429466008781320850758170147673323328686273018283312309331923109545134508661106669818052312745826156828139718729502762040490773077817169354234641535707932860503542388208737969760530789488059469920720888471341758091497222550933215540575928290448296882902054538418800516627570379902425691265217950722285994483214536275613071536923584727451257755369840028509362292381964529147349982748643555382363142228413761304180767618224780203297816583994933169372239239298843232864322285682016910305078302533565115455806646606080409641470290007201614461141406093214567370217215783797121019789942573375880132022981977672989577958968056655170015661224232765075207964163616571452584261327920088436544633194693055471657822381123810287365942498780552197700056689874877262465844744565964589688437977955683804461535300188973945311994243949858120406739939571324560160960035050633618160195399813952508848945809968833522280290391760440178419603587321156645351090854953093322911005312701393743269970796418193490298259594299865234320576555419199253826557386357799974068603635275446479273207719933084749062900962353238295573682259450882497654317539078688448622777616426053607504843787225624934806151419077847553507489899424410100524488943655827802014003732724413692074123221661118529048752877665840761127378610146185305446780907458950658514683627765125437643462806575859139647323826974319612219788154114409822914465533960757648211639925999200490940037547148734942103977271477100606874817379688548662751720468240155696286999454353354418482813016182763418850336048102405500334997124099323609301051367801158266142486790265186624321877344736905048809998349415474903961836123992715791667342360494689886401446718754435554572716223589723290003827623102203483629527041521921070005822811526396319087660085037859027775468447845212623493180387676176602902815288586222632679845965865605638760290786133881257679758811837189714500280332193834596249349440192291237858020138300628570773832579345180029023385198514723808526406739644992701953996502411236304475229669042629465564420534840443180899133035866319090579326685578169976701235883939390938146369154050191450845298667233927893842325970803165448963825605927208248784291507061386280043609272302364646294349718548430240707102756093531896158938579802457769894504405854602486826339246567413604490302482516167202112563475099993465884809555379603361642978989808113716983313185536161544335545303437110250374912488712945518046615517847444982039251319322531644181304585312309058052779647083601634539038501067283439466093429391271621231263860630513604832866574301899971486405683000275354280011302776603408646546667792779884058343516027488914183817582916337196549981254088997474968241898413754887557298364329152002584786103615229572059115391711215866557315893289836398619234101264182445074526541090389068973201333586760276238683156939026271536024840798512322988770916005467531760302202760685078562876676975741491989724869046636484182065276851178571561152513757420854713670012969078905046645292794140318102607595020456611367474748838293279859023427922969398755636196796870435652441624645572729410968640081753377461414703363049296680723360449805661695860801834541488763413717247282902994195266134475936834614395193157849891164860609753990085206538487598393035650459666504522152541619088945498130995983480943908326922235059930601592731314209016652239794751953312169355176136223706117220639155625736526569030554415763037956951433630702791783496668300035948823066098369230706427296526037829847811947347027541900489198842685046676627535877854240237310578443275582120881331465714834618437673736776084116519065219151748159838483431224671683038299494683089788173714633544663508172475645546817280708219380900401462628470916571337189811054991651067872209353863927155422863429962300492917029605667672635797187865750068907165523734769688363335036422670901057644098176957466237752776361191009480427281134931614427403594152568621966502203335455513193184660839572583991362189828454614580829151497479398901387424930776055940097017009361034628902110172820599531279169445308639720738662820095875939024080278138494103822844229295497046358169060114697458280955677101986418692563588164213578220401991345927688860211483687833076688590949937075729272747526357483642755209951658785913597501388804211196975928940496929413277071552359781701421224372010118180452334366965332994202050183860938603380804816437703888911783161792159047271637361656763293205297388288084337483864524050325302185935245724076764892831948093342966374060356539831200079708427244977103788202828828317634089616770759818968467132121993414391538528975940961875035164275660405105256952850860890708314986859035852394596186300555578456435259372622500005445778283786768500431259117216943498097321296541578502674510708967257349525103083291527902029803174823147712951164397185982518168988934357723366900807553732863973221644406167919390300239672742160590264116280994557367782992646515439301641004567440160831789375948037141443083863492162939145463260715609373393455889848016857972771236058520328676371496628709243196790757620093461729419740470495037153992364028009988156793700147911897151185977428789306941115769815468242538873277646169544688085544179160168370428857237059551791742329496983047507584017451915660332973068414292662275523721561769635811514930684496361572454021850031103314156512847344727720817125038596090767634886351330290939242137111184366599868341717737531350234402948140588579099149678000782265331191708075707758992719281979812772184791126746201584199431278145462464225642849501161176597134355709751275172483472862466550035753240913313190118930972959581884853255804946572855955134410738529542965577342623096382259319981030138945755565145663192383429796151425855978357752813632173961312141735398707040848740677704046045699854349786278013198998454728453555667934895012485048903091169693158637314493575148543795302391354138537903108184649577088811464403765232285342351788948343151772106384850859884746822037484359057571223826051006340086871263395500464320710401720653035342824301559141036582675869633984340119147812726759065915970083170057257341629356025554054213823049396558366804080594273998173935401631098539724379225870126663155340777891798405228541333390963500034700254542408976740718706470585702858684219910065212220909395379275343682210983196256534402751310021502622185932134635382012136656010159611586362012277693300923664307368917854866441305204984167147928865921950480889101138909655318336245330199281326708889638047826533884015835908051761536331044152522496169425936001474560560770032812505463915406578324584924361572410147105675009786842507297179572684840986176218038801103810458551068458763084002100074012928587786010274829598279197529530724663988706616200992186206201023221482841632790762580020265673598110869478508244341311126016601887524983134983192314687312927134624330674151816810372544876655359191804371179178078745796647190584574504623026586636803672594838848677708508017160334597985942806267533053914072870762254791375968313742424596465173862923202690413591525277287474942303885999035407543678578437617876066621373957982664063877872176546181638918692660340702110548940386282290484096207605145748018407594243790461817129450176766940846004770645052481652449037100944779855425664355646721088647634591360046956526439136714076758366387554546063277058921161607901533367857377084879166016708348815576957615560944687073183424791720652762428419632414329466013275104574109169499200441640434538586605738795903643959955069688276397086515101328471742062730377200344518069657543462980561784957027351950755361555128906329604591051570775023479145930035775239996165053727196172770442117910308331773339261180780062353705729316683788237633649324177993555897206874177300406603801916024838838434686109995181506254035335095024604614708436842408650882378657653157275351888028871339787975473745289826387172748898627204392162484315120052698512531823771074618670708252679191496603757935926711638564658983313369509595518815126510835650849795584675692650193453152573138004786915785468144120375444814600879077906104262613137227937993560844902815878523766192519230098987753353052299597035154095507125831531132851174544201576424294680840013783509295171721932633819701778916950336659868028874064647559202833144936355377216318224684943385779241883489676587470107581427313029741373282362549982407455134844259923793389574081692327067425529156610472215961533968668029238437606485265334304014378160963775698241693556908558279072811593073095217484888940774914015689936720785901973868407412138251958220224804458469135616776766967472573421048278849421980584624714583294155289841283880602821808454546014626954586341595784536096612723289010458827095903436447887611097171838409375128223335439122189653042638327256154631282558022438257094281837535011331100996880853923376250619102317531010780314719608437823200473755390024116101557651002372669793828694821005691717250937770524966489041437353773027762073923326255368193519606625039247894503106888509654718677429414355471088052124728991190183890495078496294360069067050757982152970174178067925628461098975924726166871069601992774899809740773059611045393099863532832527453413932367541200732736396997180313401071658956786506188898942307524735986817457653701967616919918460717782409799054928693105692061425081761836376332736596283337248219220124435393927717739053909706083917974830589149944786175375871037614953921628369467123371467285154786086992011783675079825453422764739178006684695216131778242726668647771387442890687066272326320220706785995032902091923441570352005449310851114467868139489374484680663556884107286489594559649901576841805923413086301384551707379954802625558422627537399416544300652358950329195535944501587573128740371147068765049306258212477302554865271100324234896524300053278992670374869105379834532059092716743042847304306609052296983518026576153749663982754538882516932441216234259428645734947970444809703093528864102821240250276741363894958576769917467597284619989389354898065873573641601042314346842849861779286735016182277284830783106416306743866083092225413361129686934980064453522734642580464859550894165807421891627587629335702785513258376208220485009119974800114846456438726827570848783862317819114502729232243710289185832667024382861426047078290710299335879230110216516743924742996188293792964676781787404175827246587109498068141781012871604216581170035470999207729886975436838508676133748407639308787260142240893225365407511286203754717671513413495735049312179975321535821653288782843931099602218560820079114358608810974186717612726889109085653118658460923226505737814539196516323200859444231805707382345999344771369792859076072332173105439791938197033654780781724630647460778104396534091035323145086555643964783484763202899110793228280438948016952072727348390539435444415075758540224827283283928836883796245647793601709113276808779859688837721450258853220929346273537774587865844245518761974641661656915186798128466134722265237818216778253172736770438730779336942474918890755462896742512707826512108964035920113064729919178805684191077110771504929240823493744441308592206039575745837754384559375476058427039976964127342898641355421148992351679336449715186513376588586535557789271284934027756877652298478463043213128786046234504772425206862580604585298335536767743000064894083968167879944472399108692991744257722696403422223386811145896909199565215750049405998075905259369227226547557967222302659221748816790092347910789622738387031169984606924144871149790718874905584654190775706742440549077155196717685598234132998502458780401078806915673073466675745532224994583084555186815600476311856143748366967151129119744280404749557691207791061737516603288470467373961077747205491378000342566514275484331189623755676990259797132975105037206965453467935002747076434196988896044860675570874823797206531125321183934286886913742907093594281990979435298330983577319678302250601116765924003088053483009263933320604654846641783800239832547756163721996259262725654433852577269556290284960750245940855181444831362873307255496484630460485366828617303366561267591879874466191753780001883311271644707559935517026906021533623924160794972127366405383972844549304603194238332585608966620591154532065674989581134765326343577326199654234445840303994091422149129612211262596960139201980323452068351905949414742995790516628937009700915136277855338795763367004632615387225582057242112740714624414265391806497732947763284440636144261347085867634295891454284837603897118978727199231868778890525660820087001782104460989131252601689514200430547276725878607909039781581978002708872959933720141375723144350834342284174640065042731329321732279771405341158727833549708130803241482433772992730261402432916079484421465560904723054976294819679358648722054174242816691704076052967677693323196794241156128545053868097944615189880568887152747335235816843938056364130509000769955097161281527825218699507036640536029409301235787473133760076252270473732797702120609895233579470581912781831722701996651125526153596915533460270202442710918223446321519678721681888369262914837083562869338379179275381034916886975776490189174752222380342562669497390012712884450255797317890141944003219215140895525845398628427269904539897382892065611503778558794512133905773438721530268202595714462679340504939341417289951940687096313762659953267319611479705016777789719434255373986910751054315569735092166155511258441557331450396734109216060029201753393377824257478631455259981586531880976367352331789646556554844050594757080356475505778723503864074495778560279378521740912959954529589180860967965399004642605147907924656611784007109336763365568413995953797075587992795010205189975047089337601754991658094074659199224461419109183077605529602351589754253053838243549301048743789891514471359003386564468880391462083540363107499708166385546041850777938777328755464123982619451498916186127094069678736342083521882368132594964342084557662232663007875110117253567080909147494719992231826360002762166028167912296645871279442534067621255419764304204206168717871824467274473258308467699155194538828055696135798645757540838766480571911273722623001917234434806774223993514124327871210725556115875590512374020704050455785727033739094534011196296755567488494464624552594735979753160174747713031730668137522143798731485865065930102933592865857722703083384345163860676461433774284780304170093387309124010381369690042270864861384135627760399441788110273129385403587165515622264743681792074220087696647187078620188095987351021716894358916244616986200337197436666977027640370512759595089398631646169102593821992824431853825001066469369069502967475976344000027600031674802247505605084164534389314493750399286911050324751637977491151965172307479854776457319678302070079105986589802632297240769818629379088431238100135469776486243659128918917307766207284301890915548624324047261793380188466486784410669800821492170935798043236227816153983370818321624244267151571678469922626002444221105690741981901263317962545980962838957313547044456199681955582184785175620369214124727090897076245490004238263172854466092413917374229415455088816552258110953541751368131413516971197106742019628488603700411421973912231574549298662784399722042060207603170030127217911376621456442459678747660694607209660374693299964302311988586081297016884182988073286368458817316966983905887462505504907751369097333078403088936962457754154008948561870446552570799099207771481751954343989353125518154716633928953137079317304937748526557188891563386052472393014434458697034988684079643351151761520244135714130457372558354834654775461120629450392771995049054808903205719357527960342096350878338884594586686381627463231687895858645701454716295794859938706531481728533995232211595599806080533014106152139773186842105116595422787153731651051211845320900595144714175999668308072475349303963558005438074074998012124225888743271537913870130852809103381676390987856633727162860439067497842291377640965375205138002864573370495562428131100306235137016728145956005352738911378187945529377699805913034729519408330667176317403742414176748096871060098412849062068593577316865235413853522750293254936230223412397688119614728009787016907745645665819512710302339442464850297896307885678395307469782290376028918874543350532586623766805274490143588389629737917808113468122200036707725672220419168316866170879897348727606525977975718723315759639971593055007554352882995840543147356529400767259654678051368027360484069301662055183439558359170303494720962333369610955040179174998282454644466916125566254470872769370091480910076520041407465425041531486903082544935295375349260151114944920060091008428388922749608864787376806328175278336204935851392207137131708492573029808726316324822545268493498233417260247454071893786980721386918775325420219179959173260397865946595408535805668472628125613291956974353197118683114845238783645695659822139889202583654654272955653137923808204475124662392143104673942546508790098646957247246670848632327626618884791103254098844160513634738075535839825906723779349665335047758782896279331728154653933375822508936469532133364130187591985722537038169511075439653994250124172042798555583415752523654053827646603850779418435588410391802513689854340466289304690206857452337327993635833287727816855083589133645602223997801458056284414277394711929113638056094131722992508676012090898206937466564953058199768988740774033558093400145881697459893044300985531580116096252077436030349998262973136096050534644751528852462679507134858842174870562120261968920638801630244905340765072705137114995784377374692631351432172382384365586132831238814178867000994592097238552281218586502679636602526528204610685005280836490428865593006380151824186998747069362618744252511375684226272415889783853452210579290482027564709593492185153813949123018338136863067267323108860064235304377075068075106859086256511181653525147227363013846401554350913448747835907664696754831710673259635844134313267794314342653766170101353334949645392772803682990744403306551641752102613378850523907507341880906313034564554453562148542217777350497884121428293697290521647483259416510317742971049839991760843060135375219607036530157899258946582519290572282348592634631094801367386969628758833375272636163613220117695216322144533303517649329205136613169679265264226656746233937021097826744417573343625863974523264210102575692337730109021066003709741876535099585120547692784353486358881701055515023091499856689465118447012085705012386639097838433780297714098979631450201254953569496000159742532635473598227943158307622165990089063353683437932551354123448235040886375250243930745146154032014464307800667852784531416536496089450161919458100869001150262709773982045567826751961355463216535971221174707398846226461445896288012922203344618316965467599534408663814249444375419710140228776284586364412344925529484556199455606684799924814104089818953784941986085701278405970219483181367625776119605513403105364654529249601248820421562974288902777648357660388913320563318190558028769189144000950504465658766907628034801496737055365708075238558322589230057912734146883662458387705858188817497103879037735336690992933562790565518093009749851236037201744889865489494250055797734375712866056080790753016383490061949815025479721540299364497474303344942156815413376047218069015954456449099639419007227774886248546200288907040722769963911485076156225414959232548630901151447385246908384259831289928938767116545512143951851897569946374136170614696478300163242372287702570195422553984810584691473525488822023429366860272931839440170112516230488519392698605074209101155167458294417785563256538142505257774066758195214956846254886440406234878098644975201861025405472891190032875473327017979743956160143503728250648181890388106140615273047219392824173911084550911204927790147867706492871858357146021474107444552916136712800181935791036866782548849604466796631554980633289427576672530971273888400786208873525215368542256370640849411404394670587791109923894245330149034181320408919138533767368918026111618061971055890222118683857321268174850221657542763944509032748927437154035094872822667197782760911177985483158961488717371531209587853817297574149318188688154734004466381331152413972884381663245195315399769284351775815902694872224227440359474655265323839284560720798321368149344933009867575276307455366145447696643863272478143805212037212914945456000427481349362707912326258076615340806854516858728979798011980592575828264563230240360054481735426042788995703789651304680769936700263159371538140934556256082226902848805587985940456906737957208075602328574489285487730838685258556559206145479707901271707557563177449560258349088464409429675974331747836772413422210196933165035201029758480305459392752048557430943043177632596900423179671933721429644177012139242640518868268803625983699905221256399092901572410722961196081520908526682286247960212018523760782029753810864294381100619140699938423401555818082749497958029805958004127652974063585763645396224957052666951335509347396871227650780068179147359726784015240404455707234906066781420963206521053918262759279960090295176421782248523669166871254609210549900101353198409669375191147115928433435147810009243938278192427009629818673770092019623750353756417354895230692347447992287513216124134043777665173010691950542591972218366667330156689991138049044908412534327246662709774065125300595165380211101960653558654225365804946045259674470052263057335915980694041786697781586698391934268138615946363219533711253993302540031783665733088401050820778410656197028644887694050619312344342984682941359404052646988759814796916778012834044647210497247578489575387015734881866462976627445752755186338706816058263126761271542041192542345039315335534978883293229962447106618672602273168170314310359963505025507986018159335965301572357158476045597556823631643701563255070806407461668374869096107552323617423236446970143392247386043742205260880248732307647312552095606064670083216607741437248022072208918996055524711818983979382904678808907734869114448018619126972771822171614826457526530685673031915050156453792585282699000503245649813806638052343419786301041549677588215215693363873880457113986213881348934570873646076155924869663259540672874092302322517069341038859526799629033593385664376896101464600767077034756466352960426052382875928166079151843755115362671508029023391577203657835078959153469783699129453589492691195829163131303122602994269603287897947011379618664796655642410789402862404984032435019386635095699152760741289220616522117976140046186611203439448766801725157857475710425248633350890736999146908912615433868421031656348804902368514654779270816511331112616761208839841784666855044131641326374841240232389595423294539494868301025632205724297620094865197518608134901928249116013683983689503821196340786747070293090992193789243118675764810818489175885153398167591279026675589306725025097686523022179753480647437845849941975847356639149143629371672269729132482769889364553514684146532666616460063236178922214167846561368361291115176114096903419055497865071055693614323624392446543691092385495905216270848124996051318842328713055892946214101948486764287631890337607669048659194496273955460807292080039706058157212403508369922433208408461074148490066413051658271298032999428656287880811878251879346530256690489491935817403889277342006869911872880219805772138135736468718377734957749320228807579520004645918861223982392982414448373541592115200890264653773535262953373460820092519556218817455093076638530637841883875695761405483024086092225278056115327248139318029007653901973450416910355791556850813344632771722784653737049474378439860556604437272813626397768937318039455829746185667020310437935922526496647629799524952438498437858728453627747142257677703100728653032724473984339580020093655496400476197779301201873527481688818635710462359002191225343061813618491251989250704355354723340805617264285724224539921974451658150009926535589842087705781832157787559310732085893714236906482170831115711000408666334868539018031288602225352473909648908830246710756218770565824043484632840762410164954488145382610935344566764047651413895739241481660024808787140335877755852495095411850367184426428183137343071524537766056374030046407313861692814630649890091898344665443271302011614372904661255895463826802851262101883352762202167443306764771402286151172972615911315646177813583818159181903799370502281941404586065086755206101098485131547154649863035649410486407841901665725892801210410889476827123863171054516759681205790700416079503294948329729674399942059969431558526751194210518032685330723761392928149320860580367796395398218360681832482712357026528546436507113287809793213459243375028157820969825784632283465905888044508200419481736436914738946555191280730812760543389387115814510391100125179822629325583992202468962243843284413988469773314880558062946755153888257060488728185628654287136430691062353305464299117037441780226558438408156670190892539163166744298267103256817227193838943784049833271546956259081992595336161178944852732189038856256478292515196947180088876164587188097076409689867484148683568962835396893130616703643332301770150547405476884862547881652239359247649426975945486320670832336299638120700162542707613489847135301173264453392114068809290514894046566313479942035523121175901228771350890059158368209066987280319250477889501078657648979582058635486894409547859210922590808906106763628102293590775626733106991553249428868017601962191501191852782413479810374232914819105889568621571635049232025944560213915732969055412702657286998930674021747162361516993051037344164137543716430483617837759247925093903429454327735656955271934666046568391424062916443706384031969873766834047869920618434671821334783578323240947122705062707097013113057307600818169979802047540841078816351894021835302739989417603620241607456413658510180788266201157571248262416020130432164082363759611541715580067620200026252431441785025576011749671223373656148109735244930167212251291808894551957482143736246069342486308458514515220074681830026399889662626133311274960944314110155742486206938978108368892902728786669778691833468009256960334568261074842357245788399378281915938257485964459869638482743986427063041355320372678906218115238361581178357278397063619536372483382829129324643474386622396446274178498971055600587014421905193930870147453026362686135884432815145557042062308099259271270049077789473142969528106754975331598171803497393674820046297192385157085328799119255469849518626238743414651138077463651935387859900563557237342115271809887299837857386837693465663845412708989820694333441330531481610170210417674003102825887688259726640978132604290198391870277838955308493792941059367675420169000468368071198223560390362320530582816562237056802004484649833248911358956682149578982592687804439918004436344606772670029809426659378243283570391109141875694648795884933256434735376387093691110960307912519848429578634113471790853016044268240458472585335445875256104029993596967407751902421899712032311204819370518848578195030418449753470765405890096874893437047304832071665158962995517766960813984730161665045874303966202840837753054115081893018103970833944496611747362795783681557067320566313822420960441478576533213614767402669587463772843030928099182932310259649688233554357164776136815501010402787430608087689366591137850621640582047114318668523044499298545038273346454163674839249214936986860701684203315273413188347178924172128262595684498768264052500867861682374185615874245880993893586012059761152662066235551196378069567912140582038871365738718316164278431899686924617595371378060457628104203132650716375207507301023927360803670836975554018423017288646594626461927035755956717219596339168266927006981784488229991107852956387789368072305694065931743212303813702154314657620555077541091017003249077508940231497614491219798772116915470615818858019273206912982762445342489528415421701165376983734142976987982762397488039900022064913420095088282653990480872432590267286960158410870279371723514157066752886195207678818491284229031595231786114165144223129265881309124839243138983612686170471972446575129463239001221892661528696697236632853056218869089403102646056789768488002532282134779461268168341764580498047496937688753108744839920361692996530090381482259296623720483087467125976962240946233104069945953209614314373419429219199262707785899042409725537795699490998403976080678549482252913550909895357062341013741598359232975866517244749589093511429779209053402343903410442566494690541146550395824142972481477406690790241567089713305341218233140412790599265684715805440137898676337686490657544222356384252964925899995070443534843630561968294160620565905438192333327352432940752123129862582959665941149744843385061776647550555903410003872547416076317547376301136840008592647485987698362145563457518346082436329184060294691979982620752597656414089472064988045517280234545831228775829450088943048566839926908346073160210413975226669739889907044747204169481519256740081712416712036100907975010227269876426689998254777268792585367280786065235534852618737879191494043851581660829356617246849890599042024559659471095184319770587174909767227986600645365916229416015207977047673350542293029062262154427929330662214120302622911952807001776205649642837111990045584867399344552738440105877654342436723293055894519620959216132059042918256090708861840938598742299747018537382981852710089763586210968334295701761108270112483981114979079291679047684380981856125505675682775062387886072816831954448038859953169694731726857286984589391960110428751693531058369544519115286200659697673029955877513112330362278155170356270052129026193101738193847736605279300767539639285598388532197203736310925499454627155994716479379328499327363892767525293729272096073216284969436923127729643574731541681894625882610395642528080273534546209077278932410709079732326475247113153757523418366838629174416505393566967131475256521829398099493605518751652505719536651588507963834590179959963284709059394224597625014204284137659120805413241993503459830544070858918476110302508440728645087617782164800500960246499414596517463495497513061839803340951727600146245982884304166118076985640829648742005831711055665383818929562086194788181497362975175419345627457736124425863686864322277405662156896732559231287253559502029594684408551225290947723128437477130302881041336604816555702791733518605793657194800879642164185524941794654415364840500119360759708558695996455779554866537697952046778831554424909089687756064683025057365649719383051057454773135880701672885600605874501149766352116458339782499876004089206335859056069668110990995333089455991215720920267763017195694965608957954376642734291627346362961362201910435127585680625179346975231716562308834816838405900059935264738601442231323789197916312743381857586002703804074120280540274249073462366037098391152859841920971372982151782143271065062391562424007815880610588914235856361217030510617366760345947540494722328302614524145244880556358336486005338672784740491097375781643162125000634574738338739701886988163988184212810662725849803681807288678655685964153890648352652567945639205278862577688441296886393921965620517915350283573791122856864983778090780561074493613473813636010193882089620350734824442338448618565985676817119360268654802621019399489903269038511936099838728563605085559941871993997028183649136451705684034889628971529564369587441550433161717417034209352857181742667430014164240124367458717448724956930251175374735887363962476955184069221754604243106820075110609848476088555620189706077162120063830364650534350478388901039153217667741617372150568319154108652324738099616591506924029763521618284136020092220764017019713026284576996136985451543715240920641349810122255147829447957428805942767871851317577231735567744521920713080588987394092497741315370050929170952893127193653246781821812769560286698356300960702787929753903474095956965013035341250662077948965892635796640547005073921292896834462070623620009567080596267033857682834936450694595633575161607652882943597087524999793422294879852178654925516515996366040169890593747148313392495868353783118046837702047302877361500385527709938295803948220784611873621200319151904488361251732173421127083697880106801414939686513606308965124913102870174089343899874395955605459750364501575770065253926676220341817869767610898076988028742847308364136555183252366409324383591929463863525260389093440125307978759673805235074182363796982974192856050138199152183030026592270091815143973785908988081132966105711396043858095997648113752461317942746955983620589632144905693171296054989159872871954327118966147654810545026838327609815895402872580453243273208842251150036866968902103133463765849937335099682451701144997990006809835876873688740095844381918554139743804514828302401793316553953369261145045177151750055166062206452575510670782794232802145425100621380144582539597359255115302532905112327818937904641952262123218296253641834536581807138140592138112103331644946072337778776593399352087114973417095130083968692873634299290347930857473599758978455294571119941858768081131993271540309144461292501953539526207694728772604781615502982056945284976757017752106052921166231525322382670496053587222553883198667990263707573890575802823949146824160725346341140228810890396578316201009488819459213519846477434495430742376661527651113091983018296870278690648961580586934082195465323969220826549224905128064081643362213856673542828388532193992919815698408095805178176627902100239361974129225592188120855502047583182847263221584164805302775819674933089916716561654200927966811353938880042940682218996877140755709060090125706579009393191832450182512260618647265249666037084151243368469213727407660881068514167387985983789222930249249473311833024221697776200327494546739299534909772237971682076988701930663534243834267216507016462222445901079339244191465456415705024592833630451288678710643713935285187349598883876706932358467294471289389520477789966291758963921996062780070077913032357501990016083004925716667398976311369715654139818460887801800446155548774914652921023529168396307270627412439208844818228600173067991390662090415614086695532254072680561724636898428068367483988407835794254857980937517598854159204942852986555510829758353383822276489987709093084021815680007395359049657667834937507442755257414953674570627192439191583138543950275401300826594629013480492343486750667756405263170753270473254226415776235719442186170883389711884014681202372410928355125459256549501360213400157567208928536815168435519469521392418702932251724547505593156412589750554752933812914598485638068475657110711834187016608577704075306206433340039349816557387475249128646554444819220294651091364617273343605747991504132193618796573886429907712756351280402052278217423170092000328089909973823165767951946198404018166120082137155107137369071520990155095130091783061549888258492011254657745515960642055824731907911513135904925607426724267340815675340486809527541631244995007442373938133391651316376847566663448258193955811904982731492046735085959652839428538554498458495200323024936634588430263575258621031195844761428656777933578657108354057413207829236114357478013915243471431347506178991133130105154264837498280490016646796317679838483306179184286503072669285348274448746911396845863966154746808432700651201021848910080959623642663254347737249540747222297554373170977498651399698668195655621389934451050840109692698016037929748372717838114381027649390747519201769732272426424212293676385572350620295108955176462267747132333736770297925967808977606537506164738629318036633058906069487240052378560716596056401754303902849897629970035762319493060832036926711855004003547923087922136751755436611490272674455766651803196017395328521566594528094950695081410978742876379815529987059664725524703644588550176987955427328297277176274967302132208468774146109065568314915833728443449662462767291137992625560753834702391299965754399699318589028091230644267361868521599796986311146987504537196186266618258623912998869328686275357075750499570591363765880105400986997509511644941199319677359710148067205680088356556673739315172020423097420247895873522268427412349950273224067836971960355809681197637229667167926396153236408542689099292621265620474004271833584015915111240475228986404740734367898856747063385229206589078598714092685219543566478160120691488113649727943622522777158334148781475016477482154960382455189386108264977941948218220167023948154053378180487238470666487540613834760772102865308511068633994181829356065998425509332519392725176410296101193543399791608801683756271227877663121917131852486530956242051987876776191597564561389057786668808432016257347235740902873733702526392254293198684609285782898144560293592445017014836842481582807929418031539846757753651392742698962732527238270250231951496858360897483926894542139427575639071013536447824955039915552505757664422444449353018875352921190283554396954741382162221122651189649780856739954300669407122876772386121342317486016006536433894362014958798205427623336290270336075743682234049703706136672135629685848078888164256819265164722497942500869102809898222201341361890922731541916339404503059466118216205039795847135609586271438983721544896799438982321278275605756184660415143689480232074767449913376665626612734719721406839700930262068097879230764002565345240392571514920059978356742456728007792179417364921251288071504332025416771221379843383882410404761360985272681457163580531841747731789669953275229453021090115446254352991246827491848570682206593076890709815738541400679333958987383826256394513471028157890991042350363479302795584923295828937446795314499200494610911362836312192378085469769876255068072227873246355535201837796067058575880322347163455117042359053817633233008894039620931285846015196104766221199517897912508763114659246896372167045403107283732974849638014414795397890685336351991873986560698716438309294940469148013041653088115902099270029232538354285412289772356228749045691457463840761837300043228084608873427747616661663878577359133176920553178760292221542826145472066000941072364802317940134103313286805928253985180768654096479990931673758272890272546595743182578294508814764035697443307284814720513905830293519469265938180561006529085706678109354750720579017644533785593338229039790931059150414010933552301466802050113764680132785801172283549855366613499711350321341894069743805346453399842527968898479978439362538630448605995883957883378564765012105037301459798868559015236410576252366644013725053498799889122143902399583321007603926568047574652937333991445129793026464489775160556571363261019531102666203230329596492335350863800930336764613068503946982014838805505156279868495532873040692424677425923829699890106044525844206516731615242187983454685529367612874584702161061768636963781788892686377086225002235687033621507612065710570372792095275539303345237840389745649161208082696147853798335006094440876553225613944104371446193701554179557675939676125730787983128882225204386540646853402263200522583377970371149146353632214427049833082749114641633431948786741208625167081110454932963485289614251946769903294459868030801648918556096258590347280400123774764897932484959826138629302718128113044869375444521683425861370718174316980371937404467433306844431558246003787435165170435088973279451000256144938333349657701755988066681567356729206797165836983133970509367318957545820024381541864956653119420391021619573508984361613651629623339448370699706093863290510625434518176019120565641619914150549958295338062889438425515238408324588252199952701974149928699133570974455415092456791024683495731851684217844638113426750701369693855194678197519344231234689594672130258761373247493213608913053215942690335877842196206253280187429600968075134918212038321670221464803914024729724610705772496908230138454732070553189069970367009425653944046555254608985064339481272207318286676114397325760972326416752996984413568549917826545532774127879077224332470803264485234843936949138172709015415614759117559969590976248888395525350880036358934750913784108863011307896396490383493081281850369179111688833546158904543660514214879393054551813339667573093726001156639750709393718572051297985853737949206040734060148468396357934191352186035229830319878320518531477900408195260449491045982410819683918443081703990043123574934295814783276078004041543350318903054337417842779125014646434965468256463403309346288877350179427960491216663163348747091520970025698584373707102154141449054088902318991312552139668504604331215021495449395174369613701355748162519894219929715636462770387213491325552575205227191395252243329465755920114366876534781400937485046371165144474830867545150406708781060465316837737689288738480044223500495436036531001828209025484584460684411626803315658391930562560147098567597462077668778230220581308984985975421918789320533960553376930652522568458835920211643760375046256544594009536844202089441322771077784896357074029634733727362435622006048365883807409604788163328286426555180639462918778532680049901061020673948052290777982935178709830715169082534206393903039487051676280495482687408695606340375103695845089500491153001130965411049147298039913482876986651299792268650431106028616290993281791984972476215221303287075774433691577200461933500499395311271428090792155929458599452524423231095567003367006375352729933481728619101846315296279682459336836296514035009872498140587703030874460917105581913395861494911910929079825746043769734451069522040189945824529317750565601969858826310592759118534616151597145397328038578229154893405387254993285378772635064521326167888429880353005171266890443709906236192345937065328181568507719078946471531891329509324849727645664856642172045953249334289576010618799239556191928375236566096498246011673185480387706595406859978831469771364346007775164551721605547574318458256069562348926056342939724212113090312792453476719277684184017413960672176419903028067738895750590359987642240423261690244940183846686919483663014182080591191513405478534223066667291091640616156003766436022126095193727962051422238371354130995362557140452569817835055841619293992761164506954194317461769164260466388895606981865621715065442992113580383137145038128630895245711093757793927034064260189281534772320743197486215347667340158949626741577922838753602806577098961828201279910162392157165289378701328275610854513194531277236233255274086735527829686326480589110053910963322610809155042622547322706182743657747755095902510178928341641357424857336275120388705345143182456724686835550823779851561252868904964084707762428554887070457845389310145684891289505794693051963646916567485093789441588311818859077104331792362374062206163526165433917646738369434124695796999103063458905917727827828523415541616143910635352325043097464214620540674214982967682674936435146304970288143476097852984259940187630825222837509864696002699983826458794387914521646415268308045363969756219776497969707931904970432193990596243007780302116229256381636404469843867512073939398365352279500634730458722323862947089187099916616238215081797047143029119895301032825722804236682022109477301196811646781945885053186157629829125555229694653003675885773443373329677524431957226341359400827182357553491828450714697950299060148954841742560779378453226304788170327417029413347350264655309276354485829998769565057374885499654990919317133051149307775063626469046518267095583677949097706140460285976110794577706676253599006382000861947249560333200609096778540612543574683215229683842691331807943934874144468171256793669514935930347650767435751532442708227026141744730846889185448620616393559581406154319056102480021722934167967909949047029160460635636706597004743051150753004036549386446430496552763177454742851729478934810020206440631969523033081940974740278845910716353254238669649186630304850597185045070033089081714075060730901815661936388244376642084013299497323354031243258598979613964422694025879974950328969181100806114065152943006776674261066218246133022300343462311889555760108471907579085912336913711705505525980039701312056739832682724249455878734552942336455002295876899548669176975871429584584293832188360107047140757611333495970253217007105526134917707239340089340967137627878499833952113682300432669982071836825860882297089036754446237887471408081170210561984526941423725574714069674758285664269382225691572333404699435878421799842676438313069397367800052229354331938435577025736232714698170402022125634716143214744025176750811564266443028519958405402734245436244829758199831125684144819041883891892668521115498585444600315120262099366312061484354767723774020752183867758752369810395392362679878500498718293900797265549918260166576725888294608411933798254053752020902276211534510143406467117751820594228946723631898734419535062305293229578409849490010032812514778445715837590219610235974226347724756525950394344558639184124534083395990415106551065148471479445365190043383319941431872902753905105661440227580043838243496806904325716824948808894256700735631916682380491387226363501697151761793508356746332934986615398736639570856305140414300116516375730244962844347556139672875677333675742021633707450870100608518863282435157605422011072516844303840588112714265860482357466270747887852238949600639909427057641173030882402826512168737641621605893689726749010989569952497842813502537564975671318999499878814038635118807495416733225823018947610532107492532573926511658632578665139829150783476175236011915593234487296619925918524430541918475084279844019226039620328868397940255345712260420642367160849469631673837795498552357724236865515072657063083836759158933791083903861590606354819176434529454774525916066666400408941011436052585945137714840360354253600383521340109524584595386361042568589962387275549187587426236776968891267499318926767784120272067446223822848440713506822975109596172508331271021558138004456769492026503124269181903148574846605961507310695190249891531322223295929162878675040830052719676549493695086768178684707456399446781974157705773804867446838868261217125337457165213687198604660999772644349346072589558927804055331093497239513514088562075629129125294737303775760718217589255736705432102507294369304382744341882564621419289745956138805400750681301241340600136690127479927405922339874367882069899749102211021694397794587097760960638819072930867183834896468085630336185264766620988565497233680724884425183260645581931480334369049759715495442218251076780745098244755141179390780283526108557117545369120062111331466069775582479061068378914741393468044812641132463056970166327763894442810295835495640879827372880733382559084788448231974995314112107070392894517344598755398668632442926858047659765767184981966699568248568961402104194333918556631031263118268701672730546262163467269928056737958479400046470192514497922181750799428637233378075877999339618553968444487754603261773666475163253114528105702340377310534408177554845361941652581107097870721704909947399097477612079858613573551488852837704613772616488555713949852702881357501552679049877062982004334347164703677894172959618870863422678054683475162809140721066174733235207728062260134259698221937830355693792166482787107566015849136742302764314090025141930441045719968177046421280766467603407379201098563444189250786801648654877731007894480029235428621555692860581582714835783235757971234374932664788037957797008401197242756691551292122759443007752576433385167377366295507043471971515878266077953255204233879793846343014108300464513281698831935126040770138061405213729584804318634699874582224067220146896510620744131910159942072912348646459957567635447823813334599497204067740552335683637003407100876668659707128123032498425106427845416243438084338175192897942020119173154482140377403173589745950160018907034065704412220823565246371121217108172952168217572113201001095453406909341775020265605996657845798102441044782447327842805640228016397303194131322139647013507691867440679611972966462445987025668361670684823907174696002630155119930801146568436386444571623333457842004755620494840372654752548448042268071978244498845891446911214073026000668319559736729813431635099689500129280245399763049080521915529713148331504058435116392788041011219303112321664430399757515844207019319369653702480896972800498368081239222498912183552283424701352034821833426094946171497107794813404103660426508507739556605258906531443692807474899769349043358982224582591121608817677276056935969282986335689426812605381690776430753580784069911580186349386575756856647471941232403237415551645608187867129829015261156504533146280533491663630376240546964848485641004540644178819231596172431536655786236059766931521198037341809944462386459759646813645062573567399333169578772495062857307195225648367615931216137309978499915750117447054176998260393244495306212076938825999081414062360531807147824027098225921253194962634149851387193463925426834341911308356388158129939031573161936312636776486831281947498798348407287165336361586818569695665862800992461244957526528649361473614102351910539832585850760743239548512862026805276044728114073100276642474338472707598538707540759592241113643906964005101180373601078006000895376264201073148311901888435812450882049807134467678532599660373846810527200515770760424333662868866555362024124941403403658944541293875551022646603324096390425509441609162737484762458748941503987580586963145431205985876558555062607307486246438257448077746398364474280174429751736591864911258115933698721927240225348466522803277900861880844093805268019490647727829054174917845323379307839460577075292985316556919798618006215189937239446266900874857141909665778317019690111527526911851013551156823235501946097436868828621908411709923443406088572967205561418623459163635250907316777410372688345729150446486504014370323939744845215019230690951413152164801717823700510567662862013316534158350944168102497005913921237733900168306718839320960533302554218970915201811458525395653645862512845084767024915005664251657906258287918079043344535557391827418534588862926045727162727372781752685995544497867212109068476844367864283698380241497025404851848493070449088838473370868918797620954289425206090630094485257017763766908341186198918985054413244821610858375474552438087911806894740914141731006805381394045837576937846469932905335013702949248831692077156636446264476952230484477446425243110359397945791683384142139830917756291714865902947243297078349282767361321145325824389311022349069086988866779507489209462132351476834118411593487838290739876501204321685241040361466088371193957584229845069102823588304259824283443932085206172672659414959642712023025135798641616452920783776560070104323743059439124722364530163912387460183629019757519596223866743001065267223432060280691656164059801089376723682400823753472517218620662017484666464169237992660896396290928603720405521023316053473293173909558942564433790846187077971956693110704081717729097479820638820961015417373379799282095297498938211659537204475452683794497496146103128742528792795087564795824958878646120502044700855593842611989436089997895194432266122478278181994188664348490732130315994796898010282884848492832048770898021364142703005746136118183677918154356498415359970951111026807894692486048746310634759532161495772995014694634407827130406760203674160167492297783534276683632731007756129394441127304732192512675358392802699958785745817211696558881963277005033121812878076028931610981851356677697553419989188437099489748788879196267332658455431598957582169394605284222823846738551447940389923448517352279566242692871836885129223176185142873843486511114707275229228325841188452888375336487077779605339351379451320634332475452250785417510034985170871047867007599590998177365573096795611349702398359250618577168572362006659173369240133205830855395031576374283886194748256083655883472281364009073609600266245053295899151013101181489297308631263528376557627947927634052881172305227360413251706237785283950728874235931259715356925119516486172537454740956862366157313907242510297012429816111602700102597177565195622603796568089499154005107302399715681966920176735141122686553763661304764471819811859333360572744817438246243675885344986857150801446644286811417309284754252669160568448692244918279287209680407284221112795960258295421872099968177639340263707957407686304258796379137357818480162839470152875567546126019588530428549823725779845142779815842300492799492791645318434348389244607627824147480894540384204860195234822201868682839989559730495339448455141956913672497852660186981481671279084620809909821805874027918392100923920495250788644898990344436175633845330596873333924609754782054192390966233980409161860181591445424070215781834676431397996817699808188894421688347455569561737230600707612869653306270972894969290990555604506043822867310042367666793824034186808164967237827673178873494844474241240312140255570350966958596416854778890835244970889325379316802734638958099827013120161402725867347001607718342956685580676239858982636794632452655933505982670657145830379402696953044580004404182431967285486513273807693693066028432098994164017449271225118596899056084939181465484395431575463065613001427185075660297517159702727583185260009058526294096845085384974647008801259444496539930321708157058296065283406104612646457842889127295253491632357414741153680672558778862569945514868853225172473830261138179932038688185594738814744841712793101343094707714231220814885158927558154616531827937647909622820884650376110510067690287077324790449464362118916119825135918646197893225334119760396683233121740506978212340632988112941607681148207798555468624012539892517925438416216267080092965260246737971717814187973935339803265558263737750860053249586404100169893132537242110592519868661169634623162020059779361205436445782709080040792658480105090908274974871183777986578447125557669908411179645594352476601927546850945033624715355593091173975835218991540507116434410943834684166855758428127202948124462677819132321520560088351044145297545490638920320365426320915012277877155626274380311026177083657851302930039667341757777341582971784187066797417034551545262960275143447434210382105278302966520442658038012952321916545216252356592577656145390019178891453234735049331287824642130731341478180354828035042985720502694722734570157002975096048332880743580182491808908540129911823892312413048511285815663958082781661379016264057435183491061126738402026843248085842393682948778955525109175399456027446154095454537842454683107267870822344736300532948501748595971954483420887506726186724117431984887471101997181488556975613395633959476648572612215145354256956082529705698062983285401450647955267261412933526531048973318478126085196281232702612666273964948273356192550026551051308178209083075144698763371320958735086065930262833569960328917167681019281784156712819135391671944552627446530569223326615621377131830864405828899869527358381180246991052264637367731683006110717648855788193312585883451785254592240717875907038613149547223382148981010974531913769594229944600068292657188361687679918899596759853550297736461596038781767073414109985190647227452259041911738506586451802768014253696359913516375750173599208316265062351276661727944313765229730717644112088324223757979107680142728308843606104289750862371442356674439288858912647686950564077765654386361714843516300311301827049307070854821546181971903440339110030781840487803672926928432391143900911075822223744218113651103630901191955566081813258844293626251929957928376453825016290709712790466709875962162187860224918115178754501582233510076952144504487961174404527691566376168051032366594155230602630261497757667161720714381698021535377516689809247677468452967481514867072398548155745270356333049171783939390590271833539973211651583312564296889629061799165616529354870681727398417983241465329953651267119535179835654959549842193894140336660027824543184654859186212154625657646879817022849807758109572640883181863010896289746414120407544996804252809161961291523812024120894227794520929816894966918636757619655076855626603842603667655834996801660736241573581797247323011676482389547755060233964719995478614769010605421633692233960404985277716542857265623213120617797628141484111439565882737915356650834784512205662454739012472784235369538650583868117308576603888147958052096212007541336170250376424902202491207928052255351689458120880806368344142605224173988210783047992392699699570474597598657656332407213876931488352869398211419230841437114777268454304727463836834988615850821463983566229820355873506034721131821573316012983327767941186920886887901274499568205321631875751925217882003851975378239014784015414693667865280397103100575684324426131181793396661003321859694300176182852586304077357670372695161112460774718084395593251636147210615024274940562570145153426573801970169738309267972106875980613602926912301809871074973983685769449778337304158864460545815711980368380309080356671765368954117961740083138197450308350515318740510367508331238695049074311643425416111793470704656127215885576101322536215754076936375894403239808607560258880566005935278277886451778454109608854591824096798005784931700289137110219678107365772806780335193554911765659765779892251104851924126331148833138797284109830018677310729457180394663649024699205219083567124033495853699237885416224629316999009379721756827234383137586985731511529595393561909972875984108348193753890544132082129322093628247802593622946194928850707586163629516107826634419367835886996339517422382236907417422514761495261224314138285276912751943604294943962497750997253462247476475346594255772553209162362946994262557208677872451735233472354671604467322366220762555199717593842912106748004463204052008411912442170529930313848653505408172287414039543014419627392952777198788794730642006383090188137993739968002140220460099987829222658490249730880932031543049063381898429607409766881781978078751930461602119067624452053137928132686461099922109550028691156810785816995264722974204725501844915689534110192986398716621621238985814861946153966195777980317419355199995625259095065023225179195729268235700341690207650507767278881277870822199037046699453112689025688369391359554199751135093670508499890901449615426710476269218583631566401566636511949158731359538787293447912263680235764255925211065919330851033882767824938047284625417335075898769178064756949136163094693716017764103905241267855461510708008332479201985829182759736397010366006216780477401518345634851360051404339518177239348110754408136577065730810478677729087295287906525091970753231298624814173743114606490141838026999057046370393401961271514266684692313964874854397816005379773193181812115279195090424031730382008230696167152371835777278706668904520011477623712079213457554316637535047663882070879808430900060367217773301947109563111918121209886674038375438174052407843538173248040078603614057130309902965806389035034905521411841246761370517448759354443769198146804751119635633312119080838884678460916909014594883553651365352395280701433215831627969915795164469317838439611544912826672007689627947444083351457799111355755933674305038661023387550303139829398922964778494558147904732524957643927529994349162908006942546543435370258401772587947302582792208297607553723379924836616768438787050075163406385879932124619769721965366433581290741953996235979165379978188348809987935704158444202582791275328864869217782581905530526466288308716245224168026305112403539737327419218224785712009597656885901501124454456136638070814294999105570073359929706642610733771740362279132072804149230133590196630577191892209243526507874651504458128132279840920249262750420128787261954085536919207492291517143583432421070588566089836883719485788149912214887013728358007606350732931318118790314267212548042607540727100215152576110758142107501767723945504617518499521077623547640048876476640995055485126589283309374935197960486592889889553403970405822681639026968777148309292738307390701268169583084998232941140729042921977692234012014710871075347623314762722072844743602549445683868571293644985293102790911830339325825759766570160844365424974388705652268179662921696249666187147790537921598822418627433917291351053074123897718145037885723761695460459452303643958279475557161870397792353568625975622996739575751868799843045240864648957454765526109058407907587682410910093510074357292322367866686048095289736537440384831203813682517721960539444509507742832216215189103020129488724206597280287275908335361441208045819603000978975902816322769794205588623693609585507797962020971347702287732943762440862502971274734864215235089592991039224782906235125854440084213745664152025926896712189325622801800557614565978394036178012141052405735441084300247532000689357744056655718209836241926578394580299203879119749826054699656733348223131909129499041057326307318654065824056429174324027955959991942298301220661029211777637219459340838853201894902718996017123437790195877352180820797942617242277346534493307167774928671475551805912756458849488000967106254011948237785156732192273080660689755066914217226468615190915226003521562415434942397173605826187423711121504348418255060237243942925702511305168460030768575586554034275810427777379259097386981073021803567541721714753213733111334238391790927801144426491101556517688624856073331204419777328642202765082715286158085814394056623189996233473270895510217465238009883684069391393035281706264274173789746941012662989650489442985200641467936106448368051013685611361932963329995711370648281444586447117806975183451854622567984948076166248717954456415737486014845675911709252074510428771506067131896300139996580570607292089832746918436993733191065193510309836689363955608713291795142594671166305763849674755596728442365237593916765181100800508223977084519120435888509154774673473056404051673757150816647217504831587963394598063789046403169905339559624043509894311297879708372995471064911657523651918690003466840655103674983671398183367828080582630206248214965850349357451079739243112318280076304319973059219252697468991013970653635717242592083103846061762481600648087756073927516186207537226212416341703842261097145325861921532738440806950687884525916396230772165618661247533919074361704805397370166299400658885563528365931538239973988293549523212055200159734250429344220256416613571700523437307459823646157608551523087567218274200603855413294668356555690685482662572269499296828588432725194568282763519039284662129953914469097127268022110423613980971718969980541581282589105963380963450814961301054974594602576742776146477737829272968916083896120773864353820685798526219853280404074081091985964206755868216067595030514330533713624365960828605178440351964047780037050666237712834955718725742579588190061262431602547210051676836225595501705182067577455441303803041162991363707147894335221398958281822866869187971521824560389026901428530973759197380984915994208505988714564304003942159904725328354491715364024236076605864948111967136007780999682013786316945701714245686317030238160664386080154837747798045753599345981727699677645719635534195992472990428887915846690816838371779220948272996911093370452438316481465324138073194649331422753825758721139007549628255538924283704503466028310151391073233245475874128843515766244063741998747824576488571883333328394184076901495097750939441374386148409996978261476254009729894167043725005217407339392775317769113385348349320589925760479052152402539356383500450130519893379938363878119399643022714071719091614804234519214938707058816928172356732596068100460778653882322764904454090808034372536204392912623903362837729480008076091590207762187619088698817465228046044353579915430281600242784241509608428237064739487009574049113793324863185894317582374387220897929459178892322351682527427436136176179640404246544591827466763268169076475362300167692489078101427339313267542857906196643197712259106044564132845044197943923977300783203533799030900696706514261789645393109627618712382620446000769413623146227489403730536263362096799855186144181113142558736544398264351807182291819964392891147496920534538107197077887343349394273341378753505813004483077180589382724534292802778337051461809244216599761484008116442691278250753879971884743725127449022364131869337276829089559636441977966039662553707004499176166505765938032450687840949641117251661750373700851884085018692463603020665180614474196417180966296639524608600291552929274660638804827460574482297139916156685054353732867352208937295461167341326702477200456946521698276479186712634765195465740266332530623401215351827321633442807537401796923807270747271847724957933893086320811104004233641739880146273554021467106577687512010676918068837382606025197748346272702089996657080286235720822234288086879570265186045545947747786588398735537976377951241237439989637290298502509301321668048103858944754336320278245795824091419806651743066273935500329916040162352929296835526612752558987332759541953949640356058892640812481224066036034167419140727494744412800173440295279952721871800703476161052304154736952093025786986453676709666617827510298040322553310636458035960050324868439557567695272739497683857869844062488419106645392268165348169875632038325300027441461869757272152149423598030713442018833991281564333064373599177347173259987511563019976998853084441313882126906211252615331701368821521039834592076618284667256177296670877743509283013311536263063485437046644315882729797286115547220787943661655608934543514895088007296266767999916521899373352573522163319144067143765936890181713191960767094089819765625908356379084289842983697732333214461116083305110012853793782028314843518365964551071646263117683165902435783318084048355289643979961397964196121625195017101779942171452335257360254337901160353949757121089566692387103151317555119373534155529159557826523943644081857843635514503014798718364755308799709800305464033968740393606751638574981774756616375287012416317375809499385430968541023473655254823531608805948949639319298521753847670617113866387922664813881136093951425939433143760750690167203538086738919838046304953913641802649895378392566531764135343578811036270205474024906373107399095805648121351545951184700675318695727173345888094517992767144971193970845167347357693381635505664886196216795587036540467996860199436496254382351198255517735574225586334540476683482475035219407402161281747870367007819538079177175166990456472476711160444686806682363288665737541823215077589276749300986087495905931560915977751615674824219898963113151075212083210604086459175288087494496795875261677623670854203035634880329042563259193691950175472231629509921331777045792764133717164624066922969700490384847370790416446386352388509931641198085098988199832305562224107962626314277505875784709525244191973021489196973447397619229749689756533064946528429152271130627378739665168806856898756117294090086269453098280892588632970136324631808134440868485929604865432868181510721323120864580379729685773192076373395962268680303379063037579265842579681565713910267744796433984204750418936375763592745364825938711921978038499732912723900905319163613732805597171057315934134906088383068141148455389350687555679427581928627065508979425965912500963540794991210205709343963005047598131135197194633038746856434002349823962868626362672116319524433885904060452258909858432070438529031038396933212524154958987694301373335965501078560684918617823326553982794209189039294461092883356111661420659976436611190725636747405294292243405675226160247522291146034992042949221602654357805002326627869436443046503426541680754456527140871568606918713874646227751110684130646539892849366858464437868682634778617221849086637868148037417463650411563406905691932529364982648563360618876073699429698200617289169361718342804272990750921299673611904291069878484042635613130264248418912764613713177741029040238834606245138203259910620807566836644923425262690939756083593369336078273343629754164740994342495690283412913272117866946917118634527301741284905211540100214038278021261784348752166799722481714482643043123819361384562214988724179929459449309059702259685602469997216568596548947276099255597829454226523074392128658115098711253551915822970918083232370877193409594566991999175534010714691517209116312730093261504594242398364520075202716343636523303547424416494711499760585020314834345261318224826617060675991157453006489123876820804703346456346461286953771811795593654479239012424701229738639031248978037804105516723628138765171026565724875592348790225215480349720367693179780812130164473958522375318444128376602327243402892097046167553110766659515486751066447769270734563987605777317914720578025683361781222595611647771321773978668225550621808522366617340855986031144578411622345066346076459057167350171260035073615026706672485045778129681506546491133801126478860722355488243552389722414496064424247812903737758016205384504051311660963397089096749116201945000584337903693098494974567643794763544307247831063474784326376402478252496153691508383275497165803011361966127646124078721296116353304158217835380138125821534483956366528489250902605094175511686653716164718605609013660146427225821788221162568805219638910727044984635903669726833222994477381816617316676270150424889085379662403353116470324627156789520405720697282500269594313922253750208730794603877505041210271775636811737162139537193897787885567420358821331611108061838758831573990898317948658101343045989586138071890776219251133540955961320605941221703534378691269051290109537160842140772014208922847651189069766385029923784541690180064571974624109066195677191996966085843432668076750533469428180580460090791180149364010454484236858420883604998242564891649114683373253689369367329904181480574765700877043700214691650812482198896877222571542662757509341515919188247239439190511366058171579950304198502439588801356565078499010464379389182839843330203240663150894233494967074303785347907466164831349869876501456821940165757030510929443568346904465704058554645271048679659576099330761545792839128990102214436943990091773468237384594906126276193941439349074761914158022359249940275349856350669203301485590284479920407192977688452806124595136490760336973964283894281798293418045267613890466960700239261079363255117953189596770788949833153752523065468582328044488008345649242157671370918441896398452600559819388950519366414458039325953794504563910402327302473476808008015899657912993555446466206604144569577331912011414485250037590962717130486870240395925553279866406215885822685268729747212795872148047947334446910854490853880502534306111774874259585960326617194629762940797249740661342443037342776606068474142898726639441194284256061452323783935839474859554165546627238715006732222822452850922295308150554780546279972872887580578027137034202905934981407815225816960442287711312526751767771946263388419900752387799111691585496191076617885197250379009070053840417832679663731424517103987069528708750160898570336102559941483613515687917617609395985304825018208611126319289379245347037050859095553916559534615088809375516190827846874246728443310685874862505203063488159810854318699674020693941195875186433969019864174833536946332789568556606748951234572236276729188579259585183956600470617207561931611476753130142027856287113601133125366407840704726125582202782524612501403822099794943900511568607755174214610596712459433788437635823571096400957629887207924845650144426088680990436223301666809531512680051762368074205361695619170447643738435657786435465978231311570970268180805180869114030934829641988378072985423429951743928961651027219303411935888173448356233045053133793426776444027902077855797583104828552242022986520123553233424021378634991687456201635822854488426257642687996175982839652196241895630723533660844407199709309232686127809941346653371145956199095089225590355665445646383032334265929631214594148676071791287834584225983235559530553581175925820862942052134784488426512228190241768089114536479103809265795675668663358127597909842064034058369381673788855168649910510237558432131897128132143726901008443983530038475319716079758802618722171150462669093186776577735108608073024384436252507048218433448403173378917804855453785642316042603570703696208729711722907804885299040225368756573364691360723247979109363714284806341809023898920626245040195719883489607757306052116806816914611539475057354798000619046461337477112373216212811647708649857743773455807334092192768823745826322687353100896739531069431868887098501215528738756906999488838946941626420939109135878608171758609998175465233447411975276757633747015802275156249313819113972903557391381596148496957143777510119950679733346654084565436380207603143282910735644347197771378029966273214331088115409419551867644965562244526158053768786153024682700563369166400781392045105925229441733948486993398325226186587488939916536848734018394001017061046316256620849282654270900750878988884685740059075812823887315138161735596778745976260595679741910669467585352577952500800267361657437801989187655895391976877087729313901069892230568640460109096852719552875695360097185468415119362258881101118769002215568511965714666227448362161775751300537692932072615034176939153708773747778258006682470841432578998844510249283704828590029530822677918868413785522088977397952483915444620306141894544551483538649391117884850303707459217641202442057814218575218798719470850871699468006476925985214687895995122565640572734410705678306838367227942795667057378377291236644227502097535466748989224841346591299985464225052964424492162595047096577394689619775534126453564394317243535754171210350870842781989751437619628642399758899657632924144302297843891680210798206638316751398409586973003421427374821859307158598543173168711270654371653959422646609144852886586642608040017794655884459331739472430102072424624762480578245731154234709568283649726523492359866456864043965798304510274666943205661555694531511942666326716409332724302945004292423779574850300929908015991666775075172684490721119637043336798155662617748362876057978392859623487341423296636255596315201253855090500924105757736723362812886119363115319949629281379968255310910723473187570633661675517849284103611097605318741610190471740443239566504624230189366139315809854274134281297512341359909142528998592178376025634612441603456321462625131830814238109273153177174184865640399508477613718949251143785924013970115764084168416600844670271006138314343826598473934940535108138400265205809880739836376778319740540113665625027907560579375457571903874437795450499964001639837240416777405089762568674009889135926354059007584342120884334612890216111281261019303049808015792194088933950190732206121572051539314877290686750426029008724778840802168497962426142353510580344219100377619172811518476975118263885004703502796787663806600583658213520301439062530885463989860112792751387572384722778789408495487469716947344897100837623170071605337009054517677852082257186456617110352846470045164475249235380462889959683524747122811673722370460398783946133788498939511853154583886541346126215241757107560929564721978070416220833244102645254884850283857141651370532166395461090033494252552388163201427066864881925228478032400588833059960397762154632231886928544057999788897031442674726024850350429922472198184582332713494424114780159154089622624856080746256574740194083876898424512310046204625345874544327161798939183048858794538618122013857325427008798834615579387643580250434284215973624261891597708568598554930706277630549217347616647801442962278285869201299884605864427633612110188105396738768919014836786433284465353445385100702479275932284737060156349243032895409930388344879071081459566447524770159723613061763982337369809704006662955618824289792839002770538750278224905690223732078960647446110839404383385974714037934466042470250663500854381174917187138046099766055660485913835683259018047775465516030518571233647243265343368933925504463881352897122549256151927609148624184820744937871272832573216338730295724731926296469696898274184128811445843093128570174607671702561452732431861641190979137368769798239047068171542759290079065899072629777375066655503067610668957485336132053009106634687770185780327290671782275756804071997683891299078076165410259046837356415342908221074356845512822850945718973376911028250864031491133734139225773032121881302388301926314196904677666861938219260485816053645340238663329009684367627610940166595733040933816771406614768762506838652705974805448027334964402962134737688287973686825603875062158058822163584605756488995883283587905502286235167477402030236732823111172097362094696688629415274504601299813075608121606694288389283362909248059921274808553468249469373609096705235905895692257326254420069629588308324846296139466471225044490225433606388290447463815661210043684886684643741147901131172016609906051522390472719286947910643378127488782571929021742465335776441379937836502580578738720352287448378392675570853218004384675300042323626353935618242739014948581845958900231169363164200637170919729698740562456037673389760705744246132338623003078810505898663226054514910305576182539508535738132935371765811729561609914842443488971385824596476736943261609827919981025819867031751054951809845854655625796285847535758912378462713339127945405934439375151831438171213080027256980327523274789221517314453054115256473469611781490679129226439414953115360932937429783861572513656769600530162324684301459876252018762109322127949979071341515612612666146462696270419668632454668045450628828708963137727293908868771944448416456839938884626326202013754456289416268554754595019503771117847998006770685982843635262145047644643717885614320638869898601862937440467733627081356928156694201061438216746083451075671453433438665483968264647069550679593340550404496494783347946423136663097117984477868112890056820152481530546778446850831239278003094126877181110805111551959537707680729447891578411237650330589433130792529438020255294311097829420381646053334420766536424517764691595320712330336415422103821573204227357082729432727854574903667114669273487632931872261865797264691922337352656400950309009062741608143953568022094348316456628366960353302240027101102339919921084199098278359481720711857936326496042242509752874027880761647759607385092219879820081438342179930624535800890911343462810929286656982421349984255008663564423468149906827316028718214347409891906982736848698571540869258788967453269181054386286085472202482827835027637038123388207428790674244886995814630606656549878608464156884429537445138895945777024271729228752681234395948756645771856804159090153686213544782778219971969732319485991157088348888386597849913708196137508883378048745561849192551788581147926878073168972154375435989648485543586145101477834777164621090892971927350951430121402764926888636075034566151821751334608071563288280279155214415931629585888926016757530249361285501637179591103113984277722246311704056386607007298754961550874522149511618920654192634806684694512868073375821526139697950519858721317801726991306700292829104859418305723358924758656370213437013150369749943610208719445747017187896788622380752122254857015183811330910497477515411252017364769001494820012218185347590005924805370325036130818018448735727251276671488199135017647775885499764629611788299532878849921570119680032667590098605491048031523931994957458182083111073174851697907311914637395990020090074245840201296193825669046117821593099962450609111260786378708204877817958746973122626548848128364512228846557752886463090636425140839846333515527034490506121002816283495576300226298341526901958815022877679048671871548646932511277062544744316948593337272295301196088653383557234357903363293599966161761997696023481431451928420512471636786600389444623059632288804552634890861249346116864765252386623078057806297809419164996530784423961635543110102369017408851199713439383360699059856942972817485010332179632616452598926788174147221583481952612090891530501747250510740492361140439178959445418960406145291440039045487629606706725796278077176325772252968995160469891721985056455397530543470476914027336708290547313328844277311373950303071665888331109585104929432483531768028560908325017947813534788338066698967923951945963229248695063982715708621211222487873558637428644013924844262196840679610127759474620715418973276955483714229983544117550389885044862677522390052942659451363694570526017787208645268150058828931971397840319747112628983773299020278400940838081102658645564715704221766104961132942440659411467634543891915229861084569942240894654365424083624383686363690648393396936729695496705159656343614054385457127938198484201575275186118669545605091282683039879839805072522813178978828645690793864048452817693764310999545718060896634177396434723552265375165004795889450133769514496295341013263729007959562711554281672005111656542348700522576573232679325646038960872917981709211636190835214376728257420094708477914159287484993668313387090651367270720152098764273648658479983505358327520810003836463262830352327641463638031538391947642084139949052858949126862094302617102105966190678215759034671759565827685897764359517084545340512516636512732007013958005224175402388202148837873497415910792578004405633126712440371553746955726878572458460971901015311751324654287051622591778571952490369465358316967393455775039228448335088797561759491747695286211478451859885476022194720987757151546468352297027294462012089742401987777562801068584180239661799020721949700353106933638519870409722658747406570193110191808600909824729973393671217646571480362172237255760887556260537236381286534568475093711967059357875816784384506903181768768127474300899189045199281972778003344597716849188359147291276893140412142111514051211752554226550101991316169407971966564269198784223343366120007922112008107891248832609673397467342876469986991314120595828825948223347009205637982133545924309042497020251351502242920755262133906834689451837113483218381418849408740319921812492811474769199669869889520307417455342133939213506170965612153385394883812204083704289213176072837128807788347150865372530402363899548876812532502822439935632719406110545464612763925910861765144646155964578912218569517860776138252161379775786425652653961119820738668788529114855287048168566217676027680243476283303384146026374276875531049491917578252877491312570817558116486387705192369942688131057282120853004913221062883098447002123761886045113036963376829908636885002386489948111397184963934382993850135800641526079353896751926972261008341691463796620827627205004411253976575447822097517100950782318147319989024104176453604890169898566470634333632382964037874904072553558040619952224014404654949173744573908566017132929329657480286503519943857012833903670446299168249850538327993324603725781063508165791374928326492519923307097848199338575358343892804375998417265157950727710509421088550196622368558375217831561695219957149015588393777445653699534066091416921497162500008150523030221356544070253451982785553327207648471898929958926991052766458592609879704028918312753442225600571590416352873392862383052940486902079614017822792946840342446636575871399798062242312790172054678565717955235540640184844753204262735496890026527840374074735771359866146013128027584708086641669973089367084799663203815168332287289003370260505117475307124869800118850589686315211989706581510133138627954213784605414431287263758275440075142880675234684874434244076244981887806628988781399365915035669291549319179019780903508789759759965185550681856347153928840135705360197897824952545882317539852273273761415477009692901997605639780354260486977213146904586646575600761629002590507365439494261309352525339378682368080950361159500522690005251901587549304700770812399947479349569601957079164005333076179654095078922249500490663215916452066534525585132630071860639023966876708756795113636869678824450365710997961801947149512517857913061433950653281445684144937461783790169216166764941693432762630110709343842728396252325725902613952355989596128100259022635600387029111058677216014996269112487210581715082000426366548373113735744783493927533663016106236108067056924975745814722375242824618548178742288742961036136229612254328938497468011485024815883673693613806987293207562797503761849980078746251418157099680138463247523069110943326801157338929318450056432777268550276307109394952236613284849548817712365128885012020785641298703568821452012909606075241912526608530801716608105521216284362076838580330625352144529093190552161115512489926609227608981013093411919943238021764998879056583341531247722526956691431602884856579321593935752929800477318506736357181070054588706407986925655100102645398360026991103414447197549319637306857010874360941779251410058852376236620479229469353282425178328554866603537765377438221138125164506414565392476321206555199712529558503924253532512645984415639625555893304615574660862867596280402369658311474870539637690510873765211320535962228570997139245273090808895958693547569972932563289972390321473013657564676846383639245553142011759769833036936818018392305824739423990288656223955457464532835489761377830514371758754654119479943635654261525330691354588931373610539983759015735540838930357535177137327225325149053270578235802132782115412294527564767450017770016092548542820517872304232051928157764325119742382871069267135351383808920107687494267849024331307516065546302519852120761225696869289645254881051749799534980871711957546445991485515647269806079303077500476518126261255669490962451184146109629677007929888048882088821142535765943854059227545372899247735546798412242965896401942976906959109863792516741912830754162174783113332514697391976452427526908823873591960013035483086411664943878447418255027980787628381492859072058398691974715915757044020895140358629768110375083700684247192058851305303489998722207098082350360462263356866465797644312161879906850078948762599015091626766709416017735978789553215886611489703014321385624216854580343100715560895499777982789356482918790036298191867389628615656541065143523608403860019035841316788572536307364714109880673585202771520466044986931209689728269173902934719593090946903379922541971119301878787946311840920582429528837568107907417839463811018423670973552494834666501458872053484097789476311547525717723071795289091778613107668800656695776195703268221416931870295092704752385748858193504950531083242675467492851221006924175842966593639414331011754415615975244580950332408100494600183479605175096859907633537862859171994262001745102901889353026488348058509565624341337780561225562931813402616448502375493257334065170423117512800618118439030314560963735743218340128794315142869521029496570860510527645016227241386559667256522859550572750498935421642194110647581141044458929322531064364260864258429124712586849594449868407668151972450415161766358022010354346107145777272850696008673657819679200696210809465134717027896598444739555811501087035837981756424836348691455576436069097894266407706967378337135805026497032475228077306756646535240285966119550794654361193296012783494884804858145957969908377861794768051614957464933324507514379359687953003685569777975473969321518813024863178121514657860234702650728835735854317763050994266710203504605185159502739711334890565049289557137571145113347177071180167432086911949139366309430626570749161451698959844979083952428905131877354060222242943550538154435164898141884777373916624982543630067793919621524430479650678336068541125936697192543206646702735930944812697288417188432522995573943729154307442055442890599988733127384033463952314413991921822051412674559727698390043264263710052680333280596196014319286116477092771367796938029801610653082785981541975395500955042659756103356523310431126869534520633595784472154541064044465258536950752980903764577624265983146564161465278125606712239880271233297285113322330624590044768672650073029114721371803332401496419669527132900038526087608266049280625205892392107456681912673147643596968613163490710879013750880809770191219711529788815784626225707994363335229381889585300897185541680429973067432574173006511404565467137144764255469526452885846119036478954124456853008139332068029428340216180821105700668943407775186146014613089836851069882873002151151841318580152689334925356376988889397948489081416757550787604982183233738879896745411516805947780961701485884133675788972635380404585007178921326127233849032485933861785295647399821036287655109051805545447326600122571795762209512093533847934747421306765966500958520814112202083266492895393233969629483660078921979194225653982401768854154421250947630279137950178496623429391936605344000427641486332327609874100564499287308286138238950005975761166016695568584417657958096792642660744461547340757975780260041238726560333646423843799801542713475554660878491620440674104135101327536827568352960600693108337347652597748133124287809385359389051933412309767530557246821081824230894532911425877039342506969704237815746435529857568354220735998677999238654081549708161943659142212542744316216834068947847860887145168847070390103971228742155575175284050677921711041380957219591780448009016868904931668211532922213107913108868364955287663954364405295682529943145107087584091680433590352374999442199029755734584421578507456115034015270952666936753272640889321287134537864091497356092959084024914384415880732834751838468540507838970433261139768190287693659029845937118772583849116729439400085687370066975650725773734529921737705588779354294929892791475974274443788331299954219324275892210665401181388436741207751530804631251627985992127039633010860447650082461047097092144458693065798803765270710536863541429821377380316527479048332213278691356477579190032000170025208429442356253911208987430348345660862724070474305527763523239062672142660644573612594438569970245767131637419425567342389303560128567099539545345626734746894383084709889079572679442125131028987938331290847667226830450943855846702882096931872061007128153654802445554595794173960025043671033699039801532662065979587413036864147978332402943437882120622478444124696846612543350921213702492996755535179754876228665705561463023469181942201184712666891983684586272782058595932048881264828781474288896885010242722028355446783503671075615081813282929197407177139118342169660936371127230962408549505373487745736577930879290959005112246056266022691047560177262103984019493928993215737659641231302371825757146418119027367379044628108284003904190809904072204369271157175703632216054960540179548604337077586075375399338531378544494775216743975142964540938693872140343359357922180569622341235922007624935390834726115202051721211407264879323408168284092426935408903921601059618207025614709212980135026232397927218753715813666612738024471190357881995500551686115952803646705252741564752558652692446243876549528955246034073444928859239157068105854787335581214581822980122685241539959036587795052445925709033562249271399045894756237302560666797425921202442798225207684173740761684615584709667176827741925533333361646539670170417590385016111257065122496285164553029212566764102211761365631988719151756533440933264441198638093866631734434465877595268613400627095271669455466466795851863203341921892717411421344207487626423843226234922561319732264762818092080926740575334172837866001880429014643481504510927097838111907941386422447678624723981784669440360351766976604942074434142599912608966921161298518672241694436801180877765570619309143865271871846961405672086589713541639150487469571382097695719602481843430313666815822982754928687266741539199481636754251959049857593854637313650069578984153484225153338252258334501443964341093818252397640512214975870830150517570053304851023037963347410662133061011678534396007258489212509710374987194787282967316709011419933914360028644011426824157783300863152476076374108453261187694930614292038755886334385316279411710017876482954175473247922883540327450820371931659342108817873301846166475890498110109083319349783405546636480069903232676016793053332293984327941870424463892892488479090438467719255209115051602577631739737416756397168910374198215531617981224470767183962566875999464737973697590083501401159776545614268782161423381774905146615197910166478482679879494794142887436815709873726059067679022420416533848288523532560264263554589956680694526753939946422729297134893224881983624757088254561210941391063191238102530251957353786613179174825684818168733839025668474888408181229973765995978880060864671982117012924228971072829485295271592582337958125892846820261355691383151876763240173695870536642418066273182728862550394916722676802978965716416807954874010233848219327738861397064556156746032321859539493397405341155000274597392108185381660046765928508470734541267167831811537099152359382930841075044499972207975573831089625967021798952959818066720052401532611369722106458461874572181535508158854362048907098987159212678664324677693565598400792577828874443013600744959231067240923729233000306131708942331052524693784069564172256825572066378110899686446198522901594463227470894895992256711194283985248947529653275524135482072671883762950139414525017141833010453205850967875726627542816330111939250083754227423538374644244350435096649943873122786728918545605590031237308503330832088449422103266235477843881048742102329116125976092163734022475863793189490771365605450220604940069342524400640077692558529155426952992916077722273707546352934544035894782837334055539365587842255881235458329559958703311066944199377133004805361262843951356697542822531986390839429148567300591692435729361073254664409395114709676452942509744669133028684360072920918259062298227583128374874296430867652558760767217979335388463840065971533460488937173266514983889309808123827830869443606742149260897761200288357374235623194393839581623597563035062488991957938688211048606527283543614815331170787147318445770795356500552931888317626511129038024700990465387281323674871169604914624361660324521964969595830580127530177530007941645200804512147135725556839355484545263231277185474735344096010376785250914423535153281110829565090941352577458005538340451159451568763005436070660905882882119935139121535656828682677721866548576796156007458158533710393852681365979988716741228411691413376422061459083196196228025619022984116036399249222555301518844346840570583120919865655262316965967917449998217745047236953278340366597198222264738734348499232932773740581602038666181697610460121986728267460573208865811532630192909192657856320419018343369018054665853504235435827043532599814537255085961938235309978697940953070135356991659174178973034189391204688284395355105456242059022360008572462204706725646922097213607167694334495147371477385917574382687314560950172214412345496304591157037099283260955560866347682864548185115049517044057477829752838117701667266244851413181826616684391050373626872172927417038008529403339224794393162898071539060137564246199561080315589452747920222671755347895775526576707145769239829043984506455370735977185691647660032587967392657221953179557869111337757586169484229044779902955672807488002669066646649191083267873070630760550472196348967317027775908032193278762365024498469993463655470298103826310189756223688418714969806296604426807064170357062137616308941940633614285206991073776376343783629542753213416218454287757531937012236076496034875537928744882675878524789971760246662286469391910613729430147537584668510844471400623227573984912595230260159541328196462211072085577391715384095527810091850967196925379072424356246092139193252559360702656043743036240118193560560601361553475442677137168797574114005305030613475143423666549357266172728246692895839682921677887687437627562147677411772036335814085834267987315228470797744838389553021357400573927581284109908177693086303182475646455032446168881181137418360495673270227668324650108857713205723268392016620231841034121584124205254352829286611614113776005995126299981286980733952969539101370977371038522560396127391632690494592780807036350477486072475476405897473102749222283687003934626597130769571033858155621680128817203962133563894628079322434171083852016798172467563736105981372907114121609868897212709661736033029480973268046710841290340580013898454645163989535774434704773166533086480587407923210934371939018311441775047745941023322078414654797917186296639832521481227109278075162374201700957591358023550922860275787928813901404743076550967173834612227321437001470441071888785170335474897059271891666117607941327900432121499648513591118695654281287034291873345191917713816448404237581161768776266800156268601323323516024841212903713690051186508414685221054088577721575082226228486674515191963369179842828226073260408052840925862395517500118255852082406598983456280440352378749419518018239595211149313909262657439605446143508394993123590833000408918604018368546363074264557436426019495582848585041820502200051157441201987630469416097822053462593258281005460654787020136714086889640331915093045229318135248242909988072000237422908803888518557756312129481512180829176614641814363364862315133604397202771404555497965645837110634477594966341632191581517113549587858032648138836449510866138744766294576512366168668641753119310135353901145119488436828216611982669072424723279181316345469230112370692254935800705902991324937134712896025723051438145443318260636504411538827064734253084212921896240348475824731448346315621124066750094168064397614953574737617528428324092365017205210863623975004119032763096993889595447507521905553463852387397685358626488791471200930585555993766647350875149592657505865307242855102153393098469274840698020709647250063659380643741862905371112354890237989087508975077641954702878695486688157657811767403439537392621179605095812768084216428744387307699558402755290339040800903167363523439814093927994806658792354789315233559465310296606099751622088408770780182067597961813177251910962773718941018829221389723426306650937659782222544967098906641522227197188011896055819328640744042628347122869172043613704133935766769564032336223583598158636818190847668115411760030133690293878204627951854140710702500054700268833705484444046328905567529127091231691037395540877807473102867256290022572692133064480753754035239854494896784851197393446650513662982651151488376829958643529291981056935354271405913757853424894153427079499410111390982443896233266278169934754953357545305352751359047600146375447371094982117269904354370855874978419371395702594522398144306542407878178800094521467035777263782853818138517035639355620023174909437845734153351723183253668856182241505034846377251254353062461235892736001568806164578195887883624031488956516450396739266647132626555362172992122864383787020429470623186907380453046664282643181823500418973480597760686181314435181390349331920123209893697910394013818207349003775545261296666803780988884976249001950355104601853497757748810747164708756052205902721462223767945415177646367431458389188825672646057194358386451966487664908098337906211829509118769823705264268623525742605765436508021519828067541443113214535109820434074080489397203250095060487059992699991307906572141924437378369694723902462713303865563424132302372178410757816255058767795609425102494183014717025593273242441839863799615335898534313787041569299284948659328852563825591606122340924609976217210296005775340850321134980659791477747190375537514049100480398609694677146548139820983529767266711950659351058982132074518366225727731567030143195001914659495856681875965148198773433641058230736083197594886769950893486330667504809650357633110380200902683386345599834011693885367334250966072974532423076105499440939409242374858209805715463024214597659177018198577206236872302790518748953600630015103354996979399109931507937306754923259224276760972254617924569617197443967030650631817478496603075269649464136200287654825131908261572785421565926079416583424327338180249321991715206292001237546931271392874276759730890083272652420617024529360730720272930765005607054466245556694970037178740931248381180247777562761601579378689967228371551566556105275542092603475994415039883086304855126630691459598118079733999570988609435902963188731414323849429763205913585176542526882198895910431515787410264243759470842100801951160969584217818610290099767308225872834296522179515822671680860480190145322257512726269037295390529266576680763792863764161754751902848796659487814282749992490501359841259381400238377882871104317606866597201962931016398703696013444861728663745427946264819334518093935646421801544353218108973274584417169275713735221299773347949036597945015866015212196670012326037838200285887570251948474143379687297599493993154208833253487871110955984311027716562226015717688361270909593232470893179783301454101856927071437729058333176274185996438674421408998291366663516764209226114287063239325744083928445469962960822867231613008766148288743806818479015780594416050287647931577496419989339657801458717566215433956613054122421667509033206550029797996454657851281255560402498753226618085865650174756495141305490524229508832213093830582723862955571382373832427216752368480805813695729204587955464849382104039234026191377946029274508888640771784262832813700415479851052453994646708736993613866889025107084446961417601779309129486503526476507504257611278423682499053262470121718471092490059255117950787072457571972207780660918126587141429148742183549267655486401905150414504311387524047904962102193806074567521044308629550318559495153328609819901815290818701557839127991438783717516905065113278569735461530131647561867628712219256935738434128186465439112037738469497343937532481799157985409230914832238412080331480134815491815222706505735979794324335349376697576891083401344216137412109978985766414755915291118382208001785078638387596018579617974048849145784318171242431961859423970260708855272523118194738781881481557563911133306622250631644787563348185682553844729591114206244048902265216914473600802371142762957367524452611265005711417928493146884793504389153995428821174589691546011628269397585842503755825796420539446182220929183936158743419637450741048765737866633286051649351215734230032005989515183201074883102421855216668980945976116405185309921763738912398320922167778558172377660712084770752081126931356159660079987565632112755044368024487926480992115101523829628577479048610055887118075165453395791447311591783214816266293661485939200320536553931145469334320215549082848294684024996352778398863823988167383565592948065169223714409730355203863577668563359332062410921063088577972001466646953753255971030831210776296891173582553064638375486202805673012320149351787093705010277226507865110962055246875364586460448206435255645905066657425917059119272254859058612219965634980025770722761161774236851965877252670984567430265927133189069423541182791500114406037036698191922250066060887839193775512184222248389600048521165191470558158357688041681231684780502510741117236119140562930656304095416498401465565228112059825900271262650446822567550089224893234949649760025245582291866202442597090229357880658252690944551916358147744486451580564685166758194954780663373327930041468452665449518070593086491397141185401475437397821748688906513614046244137451138342912623803389519336778985549764340454768072496493655407733941038333099381752861593810066566634855358336150557211662075091103635731214015552720766542162785278388985977329253145877263846590707917717398728469009853654538769257087738164438296547373140766399920903111530629108069039549513188668355082521570142637408275385595788403899056570027988310668381405195470757189903887523016477902533870932212515683269653236494591080343695915147092161863982717120504674844930459411109043426079206732950267422628287452183570916936318045367296281586104817000401265568310492087431533315831638589524191462016092196095817615439992106186942263248476930823465251786168559744087252117958097626752101774336848826478422907672341323968148319472462203550397417840690270209469235794502992756113546259560332186146534802748924348499599337930926129882793765472491992962084284451968350131916940664058897402024473838310654109135333587156444933620029075106390139798522481683227556256763668559306750186361037189594496766201430382033353021783056033599133245524881994941582774836785170016953730119637139368907823145715853164962197472143333005007222375712027386079276829301789025045518759749776041497056213089291316363298223469031822792255059965544131797767655088414509302176069253547632567437070723804586602500989417674742750554267115333255755291129840660439713697824947121559285996828507399181508328742589973823525544190703510025309273729038911244440122388486175232712035975559044371805394552955624954133958884358791517924367780273413048645353353275202626181256812887517337093375201801502160688058947322727727339221106038336515199117458672807309620035194258762632516884476985627257019089019604155211711846316005828046564987351661910775048152635770213136539723374892271014808948915464588087034618643464214988407166736882121233793744978817170857229066935764339054326175790720619034794358253520872011979153665121460663702300780433282116420477541225613713761847778786282052210613865139786953496128762734143698690709771508662847665416655898237500206344397114365042330048901494930412676010564781871199650110642442499914683264672303658964129964742925459572498308363054341469528438672999350969470465210563004654903121018759410541961923267754731531120846371495387564978157604417371435047159595249088664621349290545636988001946029377620759888302491083800099572810163309483624399225918075948591708672725566416612366522497426250263657098048154517373123312765985969678879951972924111496971432769345036824185010325009015786360376561052250643925890394019055358233340419512146210292374573965991034634194295149208334458753650478325087054110446910801894976975386091649306911747421428588233072803290751192590136157386490917360547472679123515220207842594555870232938560667759018266236118149980073743455994000920056229595415101286518279300469929146797835860927651321822400440278400629145876650310960212320558235515487453147055705822944098330373485854847762870919865510309896836313131449406902211958057975212284246173294253064528133707465194597107040323217767202933527228872201672034142718858435353053046359669615680310443216264921180012923277908044068605522501304635381021442203832878103487511889212233974928268886400255836688463973369187476863196992075576520588474533178353755845988240677742094482320494860674562007740567114941391626178941715668685554547850155020842208896600143461397370099844487200454480212315807845651103240492500657825064107895628572073857232653781744658949706732106294390019520267596651485744707774834864817235451770933686854244799638767219571855032941775374749233389958983502846958008965835965128378313840828441931601446050981076726239550450766947712780301042239924148930821126941983925397955971659168222628540701135827921724507836760683563613496088237651088174772350400981198082345297077720971424237862129923500683891698675104943887552348127975875675698900121333163157309532144075933708696781659047500276423701057268504274347521837254167114332679972788108962854718218118560628721505680822081593299050348735461090033839934768912981601754549071488711024428635253367296448266425621268441058474817280637232321922824538402641745438878685316124323644994071863828878960274270711998308126108311166377121346276908351718038318606022238715146534251608353436163970250734731086620805297965136549693106436815831378368346506941515646813426023389324729036575948878886673465095813150628484256158499605870634590192450143436192056368922415894674480638523357236860335001173251291167873405509167477815150868198339384988978113848139123541795265066167430858006736756480688461668554405420324201847188344989108483676757279628246740733432814626662538118893454749569637995981139242052348004951360366979862072847483640099400119705689764273965223974747016444333780706120867861374295573784881911679313235883982444271326998065698318883237594866731529119992766610862307590058362256458267629308888593947023037778146650381645109957694144221667316288218301223485740559108176357360552413540432906901435990758348911481123845611181796087642862403806493108645154657203964815359846263679783758690514155612380228451240141470066509513970569238198616434091997920133343535798595502195472409257862048187139373615979332685898964307888119901897044049531143765963339482764498328765971871558453172427264438887695773916864206661968989932713800700777842314696956007509795061669320288194624141145193045487966494896467267814648214901815561472512704170339744303325744843663728233876169446266532777646993574281715708788168288723837589666001006004075788726608513516509697973937893258401806117765491834428503033803288447156364942031015030270815186409022314449576817682474657737861519646630090927599330150815081768572333337302865388242003745291180257474078372553711776112116053839779770080556020197718721232713252159132101858579788265216141370168680891797143815274322734484418894846232505695293915636557713712180326272274205265398968261193003308453974439002725074102721186887410982089600957908395175123957588604401484465505846911731666634797322009393101996874616629948162158430315611231813550029449542107979685561139795220708723328831902029059637200325487908857825177507425947253927680854226259677093147271355611404841536014683231489285739442927448188488698627526328066378900766129828127231529346342822856690018211949131958772469644268667119508463434782558437061528493138991803362510978901983151306559933953340354708164114120537251416421295159021881156826874831870877765474895143328116001924706042403567512286250302513430147027966608066053102787366149416720939072329683512629543231744484787351380365884704950739326312395434484196592312074884421569409943359335733230554455662139781846545352814487071058634065802679199655750799021541988735392437482634081893994994046735835248768985675544392517999734026182602219823549911242970111221071480022244071395204776119377270302856997228871855216061170545249812659992107480070374745407103628115989611025398365651950997141286581989897617729373786674324941556074022916967930864916150963273406415490152257446562746386576810875569233367675654988074923120012732213001529576672383533553494044238403869128737064179060462669638696017055945783648812392564732952940604711640317297256099521634866275505769696675336318519328690806837114484309891255862198340425289498580076862376343772515788801325925845385618047749969064754937484404441775266817368616374481969581560555526820966972261323719385890110625623350344309048620746512035045805506687177201928859302177500764410940802527591093900670740180143583430462772733090388357276073470919633815759202800269863389335314158195025754120790065328989269866853251042919995202179250930794168690854978405899073818128780314297142448143721446769553196278951853107486147319019570793894632451248498555685220585109730215101433477219449840523397554719302116609532989811065019020260811271691948668028376907909415808496948817529674454436689049563727817163709745707688976688967131338303675342438316005976744433106715024126871045198944041169392161709602933758004142268792039436662012842297223660176618957150989613750420568272772493992160251873676105373610906890223565737095649487254610847592990848437795747695370009076380176684137974536273501985628647539334477586272283254791454348004322562302076265424798658407231503952213023508738214308368103855356169520707670246702792831313969044179872774476523215997045331392875086565924220096599772078883021045673322035146249432569095115607763282203170709010556484499441241667714387429128604699560014667957010389998238221678023136214127407102284109013967359882730654678369828059889291412604312339141018717008867363630758174195757138663499589312308947409121633292939732106356286029115882303558399586478268003779774940481047710607639316664821227392438308598162065638921702396575487577606283434225674506007386126801162843714428753497622816631822209634859020722226493253902510227871266411630766795836275093397936706208098941493753567242985697441181053306754147299297580929325310221778578254827412579955424283567850310259340765971284638936164116909699523210903305176636842692328386478354542313795999847156403055615787715117918047386678944770419009273310941108423459376967858813028905730588774881603984640165244373234694895562163869728533403020508698859912679077213004561495219636602136894483224676200315133787620865315364581394179416335129330857705511509060389942594339479898746595198901355930958938610233378919509574789765284851037262063042458445698054234694613586347663157076745869300143484341953804602199034249038257138932045299965301879709701926913228229077603975227150076307151951143596023744335549232008424175930184333689734121708423997410936095669889833990302187176912950021406995885120339740869444290499109525329643781835794711211016893555856315194129668454797088786626063082990294255140092075081836784418266274438555144845221755932562259199657531356789748155045334993511495162203751447329446945393625397679711001090961423416393889527500644136562533108664354748508871820846282785984032951214250033358821473817166971115782256655138272717295215897888660207714417935639384479327047196082298758749317797314988052028638586649128446784789796756778933196294660418023818640898114905583160137537116685737748737391848260902468398908117386180991971605258618855227158802339682334777161404540055618103649789399902257553858776405849964090660743515231114919128481603100702127158176167926292055466734628569162626448218145084343407932852112710722993908685021064209945828665487303895515410629137404580089356758473385927249999279008146283534937426876823754812835451774581942597288115012073656388822068193541337164581165587168451555160379810583587864494654083472705178977609856636425618066847854083159038193576243137264034571501055487812281988018053216142390414949902073819610445038688845401661380876872501342308703720465709735425662597902773191040836559506571010626292208898489900858400453990229396739114809124336906768157055813966430778265060198713142184023378067780601000798551452043717097802110742140399924724463021937709285869537092401173901226670395599495439598993899254975412631198395167673207131447724629673083552221044345660773225465306406277388132345448737850457440587896924997447715508627629960244689487729426137506245542857172063986507711170794390523299150891297523969058648717818480080737491846233997799378342069934624557192595757754711554996422530758509390388972944761346257544790002169581017832076636508765008936251869165628611769965383448083629292812253888328008123398965994443220131368352433136552704811020051376868605067291020768703247816027943134717642183564723371282010774103785020484239575170118665043478578454271298734617274488031686482219308185587644723930127061749563967990598829098221523684592683172718521091752309453850599422698983728265691621774816355000242249406110863554306968059263709401447812860481793472425258636345268446408820061976224691942273093144256947128288774435405427065729919628608316340925582975052720737868302504211973942409266310013751291018742425932467823187568378631321449523614418689280739909331981680711956293791883997243553696124487657322577755250913067160357007171827932785839020141272219983040869101035746215175354347975491320792249931798878406557696444829433267472532763028145166896921782437556754709462799881643685235916979866496190673661518704297168389189088149337526742083657242989989764492655420658895309247772279051250534614272624540875143963293839271700158924360580191449006016055554218594603016039798194493197337307930625054233328679164781084775040225759911751036724202085262315352521014493564906302757847765637185052133128796720339396397198159663645459750304421536689744306177303193848264212882559412967711272450535341694464102135536749235003413989952771726707344098218065403479477809830983096605428806754372089207111721212247760386197714721965730584962067781667089400223774724503614827022437245127604093878755152740470364277806556637270007399820424508569503595710451502431532936846571621327648073758171620566278547121850589610271179237355242589674086968802878744912573134639553251060205777022858454618073799961706524931366479560665040942308954257220542769001274018761806321369520808876764228218209186319888143253459076502763493753540551725323479223176997467877200638769333198803377318596364764610015048522014527888872600977447814580400805826951535910011116427098997609885178750479905640986514145503666014434035497182761028629446946844429170209698952545295452753303014133410202087309502914301014651885804999862405058639934727371620455130237343971026310680860205487857382815606438720565836040188213264777059027793674686069786340162160082066421320700990610860561435400251910313637858019956800198908275266543560979321151885289035523225445881492302238742478504082324245211575025356943937305273887031184528548450042255914147129531356596959713539733221417549860796335515338088402148328711717264287683900593869169630911717083132220209823193658466219119049132562106125048228810683787201644309759889832933779328690929510313743478770786403818106725691452214950098833830870224296341354526157686556141353109172915613684038948847634847010330936974112326732040181524205264685710780334985611647820267033847158441866589725380938299662430543766451461727580060147993045641514502948937574732106456137005085425474845532476356741470524771861692178026644339028154980755011893428569949658247342641284788508001218290132301531515290457099850867207474516200694229518007679217586286300197996255799085574650130290574676601038855978767047680176618963871715433186487670580504118595131329029016183160169199688264830437107373628098752781118541253773217187624429293621296609950314644684414791438828150964241410883407406546326576616509078340835963471190834900481645920358322969760124562433491827860284194953553936777355350100107572401839079512788786540334688381741428101607981388807847750090740888705627581551455182808498189437850688874122135857774813199538880016539130115999274869195221754028149973501888182447986809025668769032942183330615724086763378405411312748454643104062503785793850704054461553593268476297275824488355379675426829400404538370497867388463982515407081754918326985729948982852611017066329447390404466180717250522474568754955467461694952059847548824651753853590241497705729797185634852325495886323453698495585177541372021468892103367495630535905854038214013529785118822691327275364599413304233121513172151637535586493032931221367050894619732349172141004669499975263230542215974018031791455575796333803295924859664149441435196459230322520721350096284615678529127710539083063674976597251109426550036654985040237408652827513312220596394724624196637565489843202837289753117658091173866983272057861300492049926415129190620091295812100835364945559945471925200352559063032921861370484500542359865678412696294986546703321768955141119845045905126668017777654244271041814534789881393044112198286281060034576597743316407119013634383241309727269510300791450074488799753589869843530332043624625279556777518066304838650910499545412549477113152803070866749599367256939592167552147689096554269107126818920413559774700879592610904449452520839877755508757400351871502815461554743939569308637191798076196258712142273844796995291279117079809564067028251037964851536925238531889461769734451238422845285926436415565308865401446356606710210396491524826939969724595039771314918621796418143650962694145225611286207651177744716854461572478209756252836120365779133767224386217069743706605117694202891938725607881360046278859679128713432794810234477678105718079715457335784130393390977385377630674158241190553747112776278695200286273025351355818835420734766636107227417569443670473211663263529485991797976850045038959996602948161294033454797312316056445730251934453598472871337915006468816389613055223637664037646897824033719158196558832291246354055191236857622404475358270941404238745702247322841361546532032336592155388651430381256136823236539786539149202941796016098710409534864437600257136820507680286076006564103988340966220461740906212073286466426110278925604454660376053366536339711054441510516161679563755435061475062007961625464170039632228966450963036345536475896136386141182484746928187307836299884041627271452652299228527557170137456095277452583172262541640117544159268084463057611958551285503771760601549957962383789677974004402561533933112943130146568449434308837457480420135294525151161570299389007104517963650302305873315979154431859027077229523090559701231262478696081007942076317522531803104503412810716652840012498955648518072884195602291456602137572184812705577399223771171068283353583648452696489348176276221938124731028414645863005616149502995388047004848307659953169406951175259620642518654104454866800489661879620147409356493797189842560391060673548007221356205662288511901890307397160135822840324297959522577202062170764685251972289830249875949124551261072394124832245899052043146557412226465898946728858519389988483971576349183604156625300501402477461694664934557953137573976439297658873080404076487755914086192635243499908980410968321979611186480137736668645542250214358434749396447478699489517616541037488648813064432230979366212251936728635869053819518945797077383124390612639113746020991724008303079169782051958553138902360622490296490067864116383342552137597702573463924699083893501421543066678473552887328748821766089100346528694132345122757955429414065038855957530521491314454072577467445016630579894058515217720999331452714540598953489646209795039436521659915997807777803582063204732742818938359291546483604382511057425674176367609290079139841993876430904560498483167991376851139166312721287807741202433252014871438516312115798219756398350974558632047377804029582554790708709444991346186694970161496548998996863559950909655222146549089784345472519005439521343041157554443215191111671765326004654194867941493498020609986082087861808080232611918120980665574846662414632348446832152262342830152846371103631287452928759388514857929386836357999143452569358042362008953444068454149450519225623277192243570612178599539151125953812345743059334186086951162941142236050278096552945746648620710007293258758851626196130042762170845511417305578810327659321127405025676829425577670041328349310317381742979554446979385790748421194297934794308295957546738655344551282351062115170432103881332933859410431680831906380673087035251795175153367535717808746649439303399820567004168927209931887033954407286966778994437403939800437273520874723830416245317470225161914589366256256051087568919713598502781140219957851472225162160368022583711901881026793433635094941064921487634941137013047466970483002428466079550852310477759083218658255455374497244958632555788606715324364414421811646533337692637725808119907315961488873768067102408525523680343006187516916207052599820310990730760672994820787674673944286002691200314557875164089597637240002019545207316829608054172572703712682807085573058256278228051518268358149579168078886219188929224670968601501862139869515275580876608461083263186274627703248640304082789210844604864215810734296820665122117868972765717972203487014654764465257008283427219121934592827295452571771162284271011260338130480740423249361885941625305194041355127404853088781268408254505052620944283386373375790973267233374474854375094938408373040037436125369687414005973145870769581330264824581140169271061449355355160457309248421683336318292056866929872316951423293981437999418641634920995239226424444311191502651835745468306542512981266129907712381396091112601682239299719208522735068230145279293892171568042136954456131228455542759822082958196586076297430262513136444792774697285711379870349620732414947243169176861683908196884785778175280887079550153939051142032707393720447789175400474430037536042503166171192047694193303351711477352295839025430617500214834302501892861788103533220237433739496414392334704062690400812312675814843829736586550684714253127896359796671812368636041297774366721489678216277394705565369719112747919284583848340343265152496942144182260040438943344186478884484579079747359875262722758404154597613665433702553282108514916154137874445742649705452248001189510462253429970492279316172882069029394858953668171996644109545364338626794205029754603262820462918967969974058920737426997498136561526873261228424287630394381614044373760580089253096049029951012989089845747405751403875367941164821860111801388719421324232796628277909235849097248155255839868830277117833823378051509313554272731605460151782302701574977734783531033632617157769444199433230316267568413142884754374524083371216674794945841214853992508880616124033646077930712080919569144377206043875739655246981588783651686126665873536701544231097209368274681466728704092936660571040990478147993014722553122842908285214764052893514164826874965953613912737355699346222869182813688225954342458908819075526671266670102320338462654001403594023298097987249753331508045480694211789781599241160110242059934489048500982418302722677497376599378709809877695781635683524273107050133487903461459651001617202631064191572095669639923496495726611300819080140330670733329590213964182331612623098271662207511271354243230241302746821460765864669986460169565358436790017990582023367604084037909601393479363929452599231876236632478097876652790882005081379812947751649097935524554492528443572810966063916227919054362126480904040080927323571556925899000268922253447188169589686963372761417068609722505677797063871080653592636268376006911910707029566113884583771680520999785040737472034699115496091499153900786859622826366803592659663101447318352870024186939474131018924918496322451002467316750848228670392407825477647664835442516002091331069294334530324202278742099721671953102730455987962483145592664650696679566038005977007664370561755630162500521983631855164935747724233315812903451477465070830156232686934605055298216639162221250704310261427619087721059738767194872869192141813431653720603221853443407552537125501044544436143055257799750196675458209733418346313293154251707933532381124633445628689497765940799840398730003820447555179250249265293013399637876932021941687403020218552692244801445097109696315819545267136808981280157458893250355647489478491542493687543048661013967961972457178938578473150924730912242893040566580675502456045258152666196775936182471282327539717043145410880535275940780814384031239573813063180077766332027370760555309116340635324475179250352393563988752378794295265155125007047609444411411973164708490628604477501840884873322471728951306171956885923722820895326014448149971276217026679102802663488015292264873830546029204828461356419282289791588742733310101275998014619187809171455343332876743434829730604684685583709115080128760917353766580181073478302617827042124686106473226064678229719169802188950439365945039238753374811480398017082237102729659576966209928590009613518165249647853242668037813110107869892533875197580499167617413842643947242345009485167719111937674146255299288000729413599132338988026396156468448660523063952022961104038610048170956930999794574526256770751101370451565467065319981489142163335892324359350211366195093002586333987551180770020185069420749622050647087336528845157341704001091605449948203932163542962847569048482595938693681782352373193418817008052729277459900399611536690943610712003363770388964464357885079812206559920708724690810625140539965121507012188947388489305355508703659911747964673147965279926041132307888435779482792172823366129968529347389510287895578491526177141270053040570242880573338721480305788055957218098709270755833792392864608008726928324706364804912723743308725258369619756488244288800309715748735910821949661254248645212509702352503548827642802764092832512759235959086591679958108520512719742067028151868019166549674468783298270112965309939781742810762392234746043107897706426810197148569986699831406236003311045212124540336427452549903334102475351031649311851976230784900785826747585526768295008066128251075791356630745378710283892917857880642577702572630401698154560158976481432101164446463247510323472054690196439430984032701542406687252121722233541035698202010784853593239254759891927236238896691308306403475033065715900981178782160241236890842460645052075831565995035460262442502730379162022147898666616867132122892278302391185970917255161856592133967781549900300209402202426121702727879789771142664846665534877194336166071994539121366173167576576829368097131113187547787310896749779907663429538212146423882068994921936151779658912684602014132629707025144597852496998220024752290320768253753043405006069290074761398398610010441016345584551199158079192231098786346517579866524726247234952402129263059244421363627793631405561670337931335455190535401374796231663934959539584776712034568087078250303348126149986651650200878864231694364338865370878947611571357861850516603008504071501926059007539860310986567485845875328656467942744848726937351411846620709761016493745493909121968827414309383343024734931261641920885367696244718449390173666735876703692563967220966083552691526344905565938284096075648473344121705402528049624494146451747153041254975261443288676052330385506421633181803425903056484417097697146625188420166662553018831615976163917211003307460765984737087000802657948521787152303967703263152327203509760383508728947654372536965544000536895634449773743960736501843080596451185771163226931790535827329580308106668851974940252993688732522258471881840309408963481795170420422547232197305364755147282812873314785890464620276274708506358788820806913510285314445665669050498746191146696585063663294580726243306764358179180915236100076662582438688937996395917471126329444937490339301912560686347327887288025057317916437673525955671303415205356543695772212355515235180743386832216132284258248027366436153796703663287623527080692596100448128112652868197954823171055482384451862570682273480097894949501953896232879272636228894147232434447236998193202607782857068127099539408487556597421165298041309158066330876341908477320952088472946031454804009461972431979121551946374347993869813679032678589646147759582065929424085167055920103927420956955018909752084554156662021913256044559180356932460332537060081945249073605499032256759396422114321340422312272649204417435286918725246267550027406268632203339912499177925919501350473798024102428347093435973537823759730594098974467936361826522612504850898215145089052762113468804832616425028308862238093248901751663372990409298940337132263211965995172406729541008093632902829635758406791226057011898183630928221927085573231093506870612481047048894949886330235826036885184115269453785372958173138040464765398054762622651601804937572389951308397401409729250036310698841553794723849766799082104541925135039523460197460348375557526934845120794155495225519544037054498010571377023962721006341819748050050422992836552942231981323549311358733217604859226402421974250251720683123223522174820380827508086499684266709965067035075739196699531798139663133291867403975875537143203155116183190786252010926170420521617049381912996333561241342886924472755648145054889226158630988204092488492244754398891513155485865288595208090465290435476120718187719448086039286598172662204868998023640516589659105135795231927252899006676566172033978797165261213722392126094719743592928264666823906986132536463777463297110093401242771602356571154104782225927145051073131611853950272515476829235170885143510791271385627747957102778783554258504671577235941817655724740945363150406558877575179779926249236051691571882359102841819205892930364281303559665993198545251664001715995199740574586805168229232533979671557531149260119205880759610914715549682985278853796534433481292109050796013699753847854512465084840293949758245238414274372252498136180776305343911329023725629006807196814848675295824447196909281806252338513599066763605940133490002347815564735218785187367679647761201824336348369494002041772831098194572211453909293701156402277182317907341157014159715243059521848816982452425637053106094959905065957645575100383567863037621570730193217964055323609856147055537180033113432481366711972656891550314338325520899689833681307400484162282882360230725636120900930540965376283509945377508429960266373396487698493525203384805002118862098707111110081261268535052051932237842398487395904289674760413989811548821098676589940275217371218660347503761599593004374397817268520093616195639213576789036824320648317460752123479422253238838152513832205838658751381637793756692510324984786654332656662555081258616618325717618853881779062356030516924643569797316565045104728793454602391602224762351532397505579482643097270014013234506189395535086722358363068968082265016855685815133545058955195026648210692047770641285805679558364683889214989928920272410315214255493607244891984180722705749619056561393201879221772464449835743662949680419794302869350288395146242898637460263674218803596771828771701819691806867546784881135467555833801320795213191776528764449062623088384287408127631119446935746705685949387284294013869165223877985139876079317566720169718158314771623440784894954477104235169688199933271141475026518739587614512949901955273808755169507035200917669258547645942108780766288938734979922440008092867970716354338329536960120392011758427968672213416965929519256027408582805100665397538654190674980480812484253281475905177648032726780513401543810312692031588510351861320163569241813821267812563928253812555197792903428335226323852192161152555275647431812584907018462533016166297100870961261541065234111490853640509579870718335846736266768694263239157763126643344952631083994476575095851976167488253065386739767718150843697750167669356476822497824570318193031686263566880467621265757761016096896830996989211660323916087202853739641670319451631409290808136943787526231515227690355280906520451449012183499955119329321603989262323934831747639813628566956078989881115750075477611114486347498252601622968635266850799969806221243942738011131661730447282984480575135349886568669185723468090078705933745858711948491482039936907520390570837742171145175703477962811369965612123159181965727754248879986748820897886001435990858732937578077936884726944574983356536364881992212005203460822337332377077101720958020415112263361531553303497799923702483858870352304981223246220449888495626627663504776123534791302971033492406911825596557634719310243574447624162172270002423594207986822766537067301745802140989993815864321184529292987504666359695920313486290420668798444784147816631209783297051467892181047276969108469147740096172811092019930952506016239385964038713725701125847578849194242346682108327470992203400438088807484109730105692753789832909849611369307718217720037735948837826235111172832518638615660070586303756436676982635340157996983904493503569956330085603508603342400599411170141517186654699885893617948969050633872683107843818174103352160543707233689122631902295674618392069380958559332789284094502778660249435629644500292834264955738642445473104594619612095720505048065371004205926008028586307613769688422065836162003517416584860008629681707965213611560416857803286803007830382988237065625810183425355130256856532459184925129121531127871994650801171424982606999831478103902837152703978402741473833448515738378821582212141966891859244375987044178616136742156160105982435205190397413523315627375872365545725367660555972083646901341673792891464053667692723327146596178995899752720745426253355420904461686894497859767350645622871659386625368432995418733088919458636979472433644142585070897502462661704768105570409179729588880405004017880609644418968880749603223438746547900631541623316798020800434121990874155038620987474676442098153422885230386619026254950434103862629399119190416604724907265605215397882005089934109651014934333799271142708882343877206207425944128444124968558027852354674336157740792030579451858825090669812546424040928927479452761248618509969577602532175645284958442896124500914475016240208730951012968387335828504710063129404242640906423604029591423711673359717424566768314506724135448619579310421859026046533617262172327862628451498999397356184933891584701522164149803945769295453371558138982509383572844856929512202924936858632540893547376687369189780894910384169297318791466732852598370178281074644256787522947403538081077130439658977144511438353904434065902264202519510301683500949611363529439517795824508989218160993606127257510172665981032714492158436886913535287527646674787409090391850903574964904577623019216982512176562427598979189335294258214871327327280647772031550948124751134225303994578647606814449120408326476141801042351328360960942272980639256958087739570782940195068015364546396435799424506304511379857485303626685494711727380367296763548372037567833579584803813354955804172461937229665655766683862063437206367428497218737271124863581030066486961621376867291436767559090702650583624529193830188748402348442398471823325765043644229016135694770895979219642009703725517351275358204223762053453468050725562076424970726140240959188976723777992432322839137763501219915251065242068987636797154150325046518998296311533357822584892984003305307365810439890176815905260545028418831119324193597578335465790401447370999359654660028756553949366409485907063783147211270062368021812160359344467404947658393198767195312258832974281723418589388380805878054385508510619487761645074201709461797458935303799394849545795871027497725676656918442523559170109909943114650705280783565747875984888237794345988696328130857874593400198286083670513219472003325309456503699287451453436613433396898988411338140672865097928929723668828721161459966346947596268798282990533283430198563886922587348497118473538147534516765504725796078555086950150037244411422243567078554705985003171376934309356854129883927585989152126360173926793119046205694547523964874431931585913778777201661667222655718460381615523020358467179427580774024158877442022534277576278825038786710209334649827391655945250399724556173868418490994802770732869930020335263192080377115981123110283378193284978736444376427650599296266823311433182316821889695596701800527884695969656937460085809580070825076278883078481569341731151901779603577113464878513427643986108110598621681183801924254190459742713978234089411407567882782651346904268676034450316161948892627214422384070379067012972390525209863870417449721130768934104737145694280635520528368889207754208852815112033802402411960044646021407840590245131886842668417230156491445356153098847387046165748443254380285299259993510837198229921226405445937547442929920163076423354118636664951984459019218459045492674398251373915683243496091217660956983388318625903779733235464904905685034762562316976715869974882420962220835108723177828629425064930152013817127800300050169551237536296916350300482571894641018516395554333707948574252518213819869446494590269723948273735656983291268691578797311576790913529924128002418526086566821314191844714957944160764923570522921640431652417993522420771278605704420524836048210820847316875552195563136725215305934947316639471221780614909204301461698086353819572909279569745645038003739183816966451048786792757656121362433771374861031082496153506427426677324618354693172806772603529182954597221652129904565340302053727162307763918890069979980112535363845075919699015594739355901344599622976062409775337826232652378615908784150626546615584146138903943056679982384122721206530395525122276354170197102483381531599795362256902451630792202824761303918461413400380811881792651355720813297576882445549146692740339899336868114680319394779660682808913041414339038147319802103954412805176559937891598644428957162969912948952453927043877357532152556603705439413578325674276160726552039879131291953988053700756469783602273932056632277362278529670954376792721278201086655545236612640612521428683104770521928526577592075906746240329579641115590944685081368438912242473681613676786463718732469678473138690842480923073014839606285933710124430758540626888447160636968247961887338086363947226729486795792569719925380842736176664739045086493570142721111302214539217000179219702294345685520169768654771988729681602581269640418701284951149245597758246728868350901293483831294746248801777687499314351878391606708668502057181381984601606838912850227660357107232243067467040150569321534748684676892870147354080017699372237535088525249748963724842663802411563389906676241997756440355089211675295560632507324599789505066724336665046171266241175528607207278608341106484713128498710981289384547385705987515640845812761270417254293022293570392259694363739318618919587490386117082204620409927864890872404535643319622799922999904813263093922088303329599310440472017191688380483901709947092403040755803209691231883584453256649551690912635023012541043541110839697924182404595834436844013449047917921243121257820341605061101265073659831803840403782547323405644155153449126762422146232778587908917470173700316755843604858502238262174355611991294801106029145223839495480227923968811217850770529158245615432225191143145535906066681379002739848454920885077384551813892645530907859690652292279799440685121756562652190455871126509005121753797453283696692136447810134836926417787235464350685594137594307653801723177967161896908023795760319956963952746921139259409549700122246399660217932119933903337514513571241445231010364115130258898356633579292925819866411529493223207809808546834966580245913276775005657287159539206827933037138569135095936350521938069698360321036772298443960725098332980879193705638344367118672404918910179833834583075011192964295446499833328976638726344306315272149591414824843924434849206167387294060344950946373392544495033628503374885586164454572304747771712680551260400694430500393964338647887641023002973173439300310960712844146210904526272889733394251768084076196133161116676201335566369030095647157757333141517511570317739191784139838189078066065219555166109665006421903813466662586208200472983533224947582538289782483390561360164193491488879464677551814118054839834655345726477924134081460129182853475295273975060450976530051731591016256640919897759806789351543068613654414598976415916933436658852833793684266530423279547707189212700967198850294797960136112129833626319262428605420034036830399127993848828537005528225833487347377062696960986096291088264100008501139440360085987077949788795682083436256949192094898025596477866784260688041036006433044020555844305664545778586909777907274239912059932901843215371244431170081329478288006998215379888642006240430574745141467446810904046603849461730656934942987621382260707459087406194528824352160516694356558704005378945540347279280847215257820779094688692938342445506304348069617018239769819012118244161322798718221944976509773973831465216583315610093815955146785870182094525445203348057296950752530991253074063080585365410938856965074916305923737360184087863093023035848219443248318439939376688690285106877292371495733050225384149852855219124200128323577870380031784263916861134024859386922864968519191427232437144628593018404355080294186090524493714130288418419045574409199110710884572854751890168212034575224929766096961619733928586074892902251808499268263242854152540441238782951183320627844758676769198967435306302665230235681958651637217865353407176873011190777674748143107755048314138741035933004179361931911637870097434746299387467213120814346006383223769934855644149531656705269591653643169885282880813451566895069206890868243737686774705469880825693840580772932411965722964993552373409818618483728378021140691722828042314415792819685716107702057531080967172482004087918338838755682413731119987950643541683788234576516523559822423783448605531252914004795592609193517922973431668671663561698059750599761980586522938208961075752865954352948297546049405187831017184306812846677988315238519529813378234547765643325332002165017106967622443369032623729059089772694382355002494660224436907441453206855909495803273474739858831664860698617066302527063622321089299246179456020991982946872663798890502340384097292643822159338811301860524825274067273534984438461262656411630548736599333647699480799080701220249856332268867846002065697119206272115928992227414184210926124567154725847274173671571291415769105500037779011877312066159964887799143078178520991817321333857518570380110247464347720776351223850886247686420500948856444072751457845021207665284022252054066336508847608439054296693943252022106768015455629460679109204065756854362779489923209665037544189769915353912051518102991975096448027835521184022664827633424843433745929718725511250495507221684994773138540615709103076943270055723667293627076229187475836051608356027400167025065329743393866629980964236328765365666265854926146369819570310614136478570927352172978350972712943388727026781707010127614133536261662370199168435298940125399029918294851952473123982005488512614711404676136103361405498293205495848289177777024247299513687109588307130718131786760212903217258482181865746799568975951454248515299207275755681880118832590910189577918322379433706431086006761287146604806145157401763373105478331685492163872729895675613497914589829621240120813677512064082459820536690067723020134453344351131063786161952961020946811294083412134004156500671391947753567579030741823026548879690468869018818858493297940390708505913150996344923413797221556159399362179699397829310222039286292140613847933684841456418104892721452160269366405176995490732695329455560510674273473217021410347270509226379325325924388699838365531372110990989583367599062024666561377115870905008697254215011703007645010276301876075046767353200498098775614102282454828714717817049522045275643716002368546228599734187203108924759899447730859371161177342577856743363403903803043007088168862705819864480062810713424758135438016897338713868353503114621289742487562911165544681180002810044640282104265609729557435107706163008863097393683552470511709999461026966878891780537159891656848659047686259197430559699436172090454090918473787548033561964312476368117586848244115268271669498294816818881025656676224780813682779439986491653432448240007608695570652978275539848293899007939343082894328898013201061819589685841913182915978781937559617130734682339065413728140760189693506623617632772637891073088191958747047592940903613225296726758673862699685325889144649709323681286405782065145258085692375125482280678848357975572913071828191243131016549269570804876049502728210453683710442298801401874473271677306696084439025814550184107339090131516136749104560308236822414899614894661304340020755569715051432164266368115958237870110900067472601935762597961975737487185251169111817729694883798342400360222618443853248323463681545885669345362139345338346613019739181616012525879703289678100257856994402608045526537902320378606305073165930610829642672657526130355064519058411280886046241717989045190090516553797250981702957571239371306714693449900240279350371190157125138163930946949370821076887114421251689120108866860511277062930855436537397534189599183118433950379575053057611148590257177890772790108949741936590874577087009728827670998778863321354096938289487833542735587674778488889424991004088258433671843293369620702194471239172937840076789950410968391162618100900258013129986206050364160146538643198293741929413471698988391992069714314048450290680280086815367016381393629661754171755381616532919466825718611050954313850550444332202729324839298526170021697774529775279196414342731153677461010090273531455877591306396036932040886488049147537690452428079438657586918400864815409494055368647085757610277065691530801518759399137727163154460422892857347968763399318401760262468676864525105715296896859933157814873383623728278057206650297071437943735597962968826445916679000473874093437374008311533415896987929344464448072911816976557265792870202639866174494442591499765689333281202544562307471367244854375039918045880527292430485138108054943924281819931346638595135791033610707737502184949810510155045433093685470306454426059683675419240812373552586885461786401749771476220576679222107500481132810704481060417295925565286102381530115795676572824772135790046917442917979380385404859550874941232689938464375928751013280598785582759759206069428831681140861130261667654268896727051011568734395993477808724242512566744922456446252321505550718911876213669006099336095849194101460009154818333435345789031181515316903444739985079855977595070460298823349134473355210607120931379970383391183857508660026125735306648284945354007644365751942863396401227732037567541681936840852073052007721425408362941209592793462194280574004778523556012114668694060409351941389332649105829787659844810107098410196530080763994987669622817534564852585456200347953600066853440099510768206807058356863926747144028803730196301925496634048468894358035074656893797678012667478538978678883044684360734854149767805226518470294045504781693609381762781893322606784565579933455603121394515249734605764783906008116805626730961846804373389297927980544112796892224258730183491643632707181267699024708362687223190876616779241705369960500099202514826800286396308171014809950289720117955657855699343245980819992098649803607398358621354021761433069125306005538802386725251443986902859331773334453551226248159798550430439629912565725097760968958470165951726616552884279044449757368361049888952008131512014104725225400118137754832582945639471958516866679808609217864700812803086487879905206310718035343308486891316227946030474089557602125056540555189523047580002392836514003295235521124715706184029559339779236860368602176087135504363035968577401984281893358583997678291795677471079787013468874248935290276844304882975450567632993325196194568940741625345067740689844357553738570411283888298913202459063592232564837328294205195500265963725596200867688298346442675558373054352384560289385926703663800028517705963137385692621308761436323799900111231905167850553133788020880583936029207350632664321846846009446858402592915937535625839600429260041198671241125028560366113351928227103270724310062042347158338842240631049382109293808608659069264298784084119840553532072531152484059420946806936010413723116454481728599658874937821375485158152313770537586846924299473406761062170857077245429160060247780160515967051712812166500651426944293428433703876263869724632842385520660429192354120651947925698360061936377878640310319525067500580318656392740068386263989088840114929160657688826216243481198545020847859258732041605656104692388174335944032522165122129116052199775708980496877820178504114180963493068692139551175579916290466981984588778761971976374543489641900004417644941850217866617021724832494943909707508930878524666930271483351121606922861575454361077313422530877912612459393000189752745760657401772211164095383627470455291304078740764961816298923909626433994281595571842285243769537165720544119188152581300358184925680260743318821260203107615476129778049088509776498191605577382759881270843977866364979166221307290193125315779464192818419368907963579317787768244498469422263967842121307952821666165478324123288967210683333425333418646291252128718837373245852950912494993193579978843527186242643907335301833290446727168192763202281999792806186096890435574226290391296196049579650838658627441798567500663238581506410840923060023539255376618609818962442885677258621440179083128988649220138005090041328796577801446312257647968857109312147329919711388446290479259163060250082195988766497313251167419492448916276189516567883061870793669248253982885581433863070582408469878527873242239905107539447170217203610871191142036073718445331022770616844284218385680576833520524674846151778251455313713335190403124383586739333536589705126913687989174223360703126774696139148326667607651786908660057237592453679494824132250023099103066357164741150465814277055919452349418545824069276002615968954907281117757534675460408716162300310394055117161219485925392120366347019922373798121083054970748123211026048786375035358343871394108631265661416596007953750096198216467930754387294412417605090480644437281004435665184692940009307540241097986515510281727485712038122745557682966428823316234717004841327145619153331252613920753104177183878317414702541633992410110369151905300106962349469765053203487479899040641498230315955264155431523936084509153797507920643450638267651525530998554253072478918465580268962993528522645297100001492230626397370363381011258984262093373137097736403760898944529752051817605141980188114540564830185501993852396556186391806986477115489327037705553121602368587173076406667225954312819787335777653791061792939629115103068555702198299538278177450824574144489263441857414522323857173602798670850452811119299134616538216083802212268418874001139839480713331851781485193161142682077999683391586827663114278787450081743619915297005552914729892233026142674689306208529568101688867338531599132842232419797072835018516683796379398278311131083637871381663628788756925397253828100893209552564068376255964980653524788190025899826641266202788260004519708792440287318229484224866093523890790081031735250507832520684360284116875360676746797792928733280075741955937397405263248423225891752402465341032498475432972256450459579894402228516078575790715425817927058052896773946420504924215496287733232081745822875515248145522173139800856682937286941846217992655544723294352481329541880040237487585151347201439766942396383131129192977463227192694197108270625677187534269010805739797281959758953200992523347985213170049156005852389120425223666069477225208961578736395228665198679075025824848535971906231377478951901200371268760058350112734657317705658256438263244875491779162512147025151416423075926615480169300749173083659373900231509588542415076081233820545807962711315003435656858142291674694653711935479309470653047641386547752657208795357113270434728864122555588591671578899797260468254093116256250800200958813722215319422198776453694937238851344351713081238717246856641849204160650197344695383082038713050063060997707652283738210183159700822446801945336422350397023103321653615556881092921717783816286118174025170291836017469231235430593700113596690945879409846399896919746761990143541770983406729505744528303537724621328184132558264290303767303835238674092061173312195710740487770806329557289783184232657450530376221151470241395143058390319203087987222717851522332002682444734134535561498675871056198399812979007025017754004997287260290921614784113804375731851200533114355008032750087452217285318784170792635781583100404699260551143001419359962939702351718662967451010875467312840592425561064875162843162396366913658975251455023971966060784533093498383501002364970104609554626134961948724437394154792418467848386047846155801080109803278299130208469938897773228316181835626526404199073816385906060024484039941921594590044417217817089612457227027760134015342594862483629197147575198970302420580321160897508724215038008437753985012573526497034895403175499186702780868911278448549035547132546363298957086225083188717664334972039132919481466826691119741632119433997008233714930042423854708818454929198473620441703583099478322550305207678446334107427138520118126606668428020587630825630242358892567511803475865112863599297645199716487193209413577635027759700508992881561639433860367072071186118854711628854346797659994120011186720457122482682645395724717438847319047594160728321440732189252073453862354290138755607522382910775651992316312892042463964445430675807140441896537826225708049233195695190114752440950202960281223336512350597678815585063883620296517695927662664332017161050383699933006394539962884911561833104815943383750431401614687113230017085873380795435491026671087995876171961693882120336832453304166636052602149846909422143688931844151046435143764525212678547768007554403827746737118511146923214185888354335604475082320816870012326757118310061447464921363937492456229081061015540436534487920274605855808450176376966622656491129353086623388640500320832849905259231322917897112151642428912279367434233042967563283606220953793425838827153228288536023049967030092471684488585919604993167568091368994141150396068186303754326133871016060315834131787472726429186464955130346244474567162913472881613839479494674198251349169781666414306367491113972414924689120244372773085055135043631035083364821278942128631213592121103637276741737705936702777086345051966238702700424074989785413600655843917696390223908055501521594216776488767011049551092014080880964005275160811629566703556276463223463530157421522166730493181485528897103187972157426957550025063173071465394139716114921634067258457169606918730768542943743066411391392424055717832264522783839498054639186075147542007285268367130540075950423447871410258149293910997285570287152794084590126691138823027501855182734369965210642066312612923714767290841527126533994273436488295532890735174386483338525140828545205399455090568687367021577882372181175761412997095753615303830303566281926991856765881316575507001284621632143841167611396792957434749692134239242879523992240786262436958881147114039712382062994703625772833862368530772962090234460267480063551548697848571626039984522995643850657066632634637876524374239183045238044877428053158925828470165511626569132408088271396844070294678002266697150481134421502207307265865128921564607803055146669997365581328237857035912966490407876276309340037695676925930534406416406107624785021107647567230260093534139453991573069475756676907652035793991576837644635441027649744359201543071566546477961299785244799521017014825392580076284002138477938785324721994000754951330496946686354406307602247237460711873233645457077442192015957498784978811796889619342337910421016119528942388720351945645762729114432626317475656324836893433803479978925942891202484234842056695521170677659222676859215064404939788907090957613603433884913284002241397514156582522241261483518852264483557249339589229855471575569472906642632037405935946195133660031752860646573197883523606766353367255253665453651100143480166373759280857760272323993155083652792117640017404001137395117436967171599616602647735615685814316133269817436163294733747644417867332337248820588121894896138600392444037661236171653294080716124686788069641082885795950511827196092281522090002178770610116739236234274027146157977927134872762003041141381010673638700122267992479328425400008912814066410786832920642917885922186659752935896637130061983053217331992544816690261709547255948821421863325523008157438456685904624274747529438759814761415217370782696088319673212122731710563041245646367415774260001942656291713174753167722196727625856493658029202372974411245740946276520859435428549169991939708919880486670649578585261627158946281232817855186050276560663464351464345296731160699042692259463913511377690103782374098261362722160232373096889491242771711116724385722251766205282950371048740887281236022353880680894038215171769803541250765300353126427919781258915185352505125747012642101135265179392731738796573142487843209443546828249977757343250147952104083320027733764134943960417564168526042274428121391788484974564851640884801501568405276592612582540891740874343070371793525629232000564085048860359792134098710608881303197845758302215310674107249207529437785616086550222921280127090828903838488144465830229830066465440403297209711708253874428135699142817702986334521636245023186742876447562878165014373230742020450035635556644335047555274566162215065305699281141654940415810916566224092582908630572980798247681596451716364315765953459952739776453217602845683116120340321362377144528497768308147425689199192097678480138904538689407984985964678717609608127845778027618943536418770290266706171760650458297229073203588680150434105612618515933714553338403892049354552958028917113947471144212331871510331663743566889324239186907675414381495066541249586722143270807616026226006365902839040795219596764314793475810353994315881437351530401990511817692547519106654256348006116777522565238438707118627899003953747672603799774669957467616099482242718493402746765632035715718517727963988280540977178025185313348888980143726691243057789737767908227276067563669680232494901572695004588617993141846684778183648835514772463576369183482045494978947276970898726963318391398496522688105291582739742713752445698572664452265977710276421928763872397705482590168255114425949737034978677995499325935127373940331441145064430704748673377265937693418053418972907758433943689466492028891184125468563737019133363094553658053655453433191648666161653893719831136028535650523869150373146709150718382727616266161818598352521269652924758756438430122049740412207330430436838367664509762516284407733883817130175122632711948413343565286270338781042230256261172721126690008557560310687846428587320454949805559154108511419651506035375836255293090651513339724552217613802532577596411059439074063517132941105824870485712249827316632146424395865205105078993108799292137270618680089810469800380539952883236261390949189167872163040993732457104204863375175953043571278862506697077712723765047916323670284219114570863064261964407911360949318886472914071920223890351018899569343812972232613054489040258750699823456106885063486465477879287066631228761945353333126391531496987291247636451707552986962304476780879257342545627732550559782895152804499700903601823651470162152080725500930457327384600479547719521013640244171519930133650189497683901707639081968231920988588208897658442212841227083453164823938335835727259261480813502628059292220995711742519051406002869448598071588314419730872247286592861015729424645651566031571299192288720982309354458623020506322215696238880165575282967736144656841496155922718962477928608750097718735974309301862565408290864152735689729894945670487548467463250197327602811768916771619471246747296747430484037769408590788435469833642902596498629667482637307035145375760616190007918906626822005322827312510926383750917988940951172955698936750130813340011625782091363215428068361915758156613628255646930796333515666322584155038372528242136145771192650777580308434811605398348556948880825908312877497079755672195564860985766506740979271474476056024625982999452785709552862026300455857246949002426171123040061983182491394936876207131881654208619379430518061275672912349754657438286628894635660052872002200464699013046529031280584172825963975197603995792936545011365624112060122553514225630137656257463873806842460724303586351029175847004970565254567314227991324405504474211042642778973251634818930985139807563917262011384746234574029961873183313183793971039026226334428424731137421824933196925859475560937339131935141159425441665278882957700374566043680984035980285882597490165362095282850213196285531003021632751433704108420318294234429051531141321712053407280531403335536671538826407192295348283238931097188994739954539649917964120305264553784124799376029414314615176063728308067538536690278277998398215052051143928038077015081235502811666579923399628448782193415808627468327735839825907079421767838817449688211097130168920082139812358340229276262780296947604866476044843874506913650345045067924396527835227560089539164371779310872066523109112655472680849636381011114563143835853165139662863337712326970172243723532654237696464929934586244185781065743097058464031322514141867886803312035900960555781133742479054842741245578559434856548945464712986291540312490701113018450317170443880589197931969362675240334285817059637301371075322133854628096246760266239918743059199817754333008917577338817869251631586524103926161922796580467190975284119922639818804510057439357201156131978009796837214710783800073619243048191127526281094765430346970424608866249795206874414726204187661798812773555301366596429003593092321669179591953599259941749641334722074177514185555525334045328822105697376409461030025471499044107314042647525678424045719387855785158426897596793734830281386877185032566396302187178702455347991731505136612129956878348929095478893607782462894354189560815666366968887274097972667578428809913434283653480884193635023496533345765346326216517793998451526501462350199042782788927693079239638069671525893037462322624177803241775682507763011762716504614028192689749821756299806340044871513768891572385461360621999339051236168170722759719644428378155216202097929754886526333853855266550699853447400479500736060334210116395441810031675524639337968978727943704472570671848134442573257206158832741679797055943717278762957381643118901821011494877800151630067186057981541081422768011777207098889463044479289392292704770350892315166734306173990513681604385029218559847517093037823965533781380424140904198823980484737284680252483801757519304566394027751743979657016447009224811452730514103689636371573977814321839524747242797832925997182327292655411812762573210844589412751184640307374878960656218473001351625131653463988400763201958091263535911951827353729352615215273966754175780775221989948066841141512718430476981324897444283147314596718681026134882283827856135154959090214030844565628825990428247181605509096911861999213935938695745833343444545404581791586929036399917015131672582458395905267517705382508043974387436577657744785823696336815130696986536533329177125841478215935927138362058428473128408468707836125381945645349327955769436491182886447446140806837268003565561889361922688383614162894668685905849205428255077413476669510668497962832748009936823532668315303872321197200567228286741037768967694612847555537436570957599823252800663182191665449126390643814570317991916546524171814801009571705560381341440080913579919476162056074236839862523903609695596319444845159071622830403401871915485788158577082433751553229343393672673120154853215382284914298271701272795191499642319087153807479775200560152354318568718920059941589770461016438012180545027438241219683380660248457210538571506437604101390184155940784393526185397527155946610360269722489069116508363254172491683068655657603830550260448565926813817047224623794119470765892154236749783539061247993073231187665729078952845785637417090495774557117036637751112223235030812604837438074452959901203373452180278699275424523221544299833470832624886249168233580174705265211813009624986954381071358161311862904331361393064161835848999512851026306808545337341512803308859069524813270193966460903356348017202372784926671282034904766587106309570631577178730946942722378892506999267965712686179914595206098716047469501619292857770815199842134701432658608413265629486699975806199539967196953184463332508848169705882365996059378399839500196483568467260747244938443187836817721765109567476534291875811494632028442728147744895129776813643051170608198708253346901499009742608168546569605695569689107800572016836947278136637559203666274842509020890478852160733538240857529753611750395809381934940270950247661380990999077087282436691380147849556563355660796710103448169357142457436850154614954326346728547060640786883471257793183932293098328933689436647639536243619273969026479379646686553196677891833236741515628317796030174215495453896429975927744953905054394127637684622553243384746342462407780015479269027509206182493959833053899312025718069721835544987193096876640667696330680261836332484440457365204359013691326670790487916550627935816663240648106603481517178808782556955128799932707743887488571602301059326540690870870530443070980686282053788359837052041116987068570174185282612159096160047343783644597296767397051680960275422972103732982885558401897882088691649166774182460129294259218029932112083136870577385635031417290557898482870865114704542496134993731614823981982104584039026186152328991189742459324158560422526500860307467559721687482834698144771384957139874299940075897262580323414681771092198119181426321526807875052686369919288988277828201475875053738391730265001628266157144422646712847649460823084409884578234482028246150696241224010454989804312268589241260189017367463670031323594805459601370399535708029906117705313996914278584861867906631564191089687974005937212106795434052672287219054245994914286206549283035976220154948324789660207336484803896153263980616699369068770855386988181140183625144272271255085190507391726624017869706769146253434007626927272299083288751872138314303837532395751844709414877951266265976537842621401235808558362588764631397457464727413981445013224971707605372484947257914556410161590277561041666770104293791738264890032829751110762126472766942461720946174816700112651405433032659137394607246047266579745716471847148085356245233006993924650311875860544071234084160280935870578360250465007589465605146599539219851075577017089883441768792148529075686081327560077673033430058949320314653023321805033346950140877404271421161001414613716713452576452611994625244565407160452728371576352027937960402270072761646425622045275257967728568213134336392703944771698953876311133937708224404495313542474133331986079002671474375757416893048498599919155348494959560840270439797971764191389788152055619088825610161500810274924110761426542803080630100470231086579371773791519788640982053024206135547987857821264478447800686947129943456610321060684484054745100682148851576039519865050554724745616177284880347305764943884691573426825665587548818009541875122720221159380549721924388055840938283652857676627469407461576109749221191199445984522541039885169021707766196537612224015396378776159739685144104839756233310719137525510730907934090450337210225744866546435655649679611618677906105228373794674875267872000556338886148894807765525943775596516290965725043927178466951574304806727153163183261558894012198744412500515156522876208899000828800854122580088544946886258108286270246784675714767712225142488303017361773988165476769645826287710608764779617025054713307748853643705175983020177016392884925154941657550590215835327532697967586130795564018929198545270692609049289700305419207570683273756054965659508487386414594011816066379113608874908238084889318684149577413554401970253531401394524720630292786408381439966945596734354231893368344163579702361016572266977157762579404797230560643453119075511124101506194158006070029449754368356458977588838616549572596075004805373066503482542371480721078790708410212450574486327468790107794449740728883159244876176901380437776223919477943291453409866385318509769396996283577807424492114752442772270390848240028507607260723572365247178398325282020316969274197958462933337658530737362187447749233262545473004523626299547117889524247391640544388971033031133260372047698839789990016766875662183563692529885323753829021536879259303996875693280084548172563285171650199714910511296103106630750754287654947553956198606092966645577788266371027416728238533552771955738648502908844686778313863054080437162640772487607112827329541435499032032223120151580516149167820153678746259513037018005649792530581797246301437817402033144702492351663113642220392952537515862500411200377069710540246585576050263389699093686571337372409974457712062857611728278625053529772426503846178193203945699170142413285037473260979023873511811143979992777578460387330547101196833931816277095344303986476549139726768780290923467324565579499669070999913907045518692174983932379437349680257178510489887697629394454538956518997532593443294821895928384852975101534243964073964642717834649609291548623903886787261847960872821284683564589894537335688147753358639957431347877410746535284594102250562043716208518782160007034610917282509103913597575090821924436848767953273188248360204327494268258961278007946986393461652932170579548213315321011348680154431262181400696264713606094237863504878486636254558956248298256146773992817737956962287975641834206996520954382942658370243349664189667874261279373273572437297814406101782417562331619815246306787245136909212018435138883512472056042749133870272171494566303998852183966560304167470296340938115934068460672466403787407078137463921901848742954389767562387041310083875225158290332560420537286345784211165880488890835108070520896575986821429332177796546159587814686320459187954700699273541001218452388540494478225371726877134305322013768905004963305425766641451538745520395901437769713578482690915186598835295848833912964254899252811114307392146883301234306590354943597579108230591410291961237063361884890854914312635505620435658899883972793197783610476668722604036909604068657939016425370488587251336598290738236033762451919918492418292203872297003023089984334942837516027913584219160585156820499752134486046049499341038677084055689541835770698184229059301059464016279950424384395529889422931551126818235427565168328529646445878097240245685612326028593821234426298645628649297421352347129238742862610512691970996114647175955529450279810634743756073753663815151769643148905039507027089623056171560455401147392445366198091214334035256620478156553078879917809993001333756185032127299085402206366591415335911549025660813632590964648379048616584599945606708093282650184030531949986193393540300400870424955625479973838554584147135416783691161405961391927915088822450691355794660290468934884969863223725574935233232867297699746787134863624764877365254697453638890387335953108833539958212389372836715498370670014834239475169510575132754863815335188020344992812888294786862176860074518121704508273835377984899702978846278393245535693918676175174836998410851003671727890565786796368869159982209381921984574470794623576136232949757408108130825934829492624485742906270421046090489405728813263156956004145577250854642924549515048827162942450878955413175087081087785544611456383370672877679741026321503714534720521752065945748414374666377189826207844974890739935637895651204289668175719500305907890906040223396618704970960748084198313701708514357476211821362269540626393392035387348010599342416272497177914123104453257621648977103224121366646730423451629807684804408623816046783462628650363800159311333085590904760901041247231201325396813031816505982890246229585326135781559537419923997321031529608695777931957457955698312479964071428353610835365507142745749788978730360155216689422464445253151051416620568901806624968069603749737299602956949819671077561831014702536526213291221054105790290210991668570346918737094252665105297063738618486661637060222521406762237577763505533758987880787937812575004993939372765877041119288970420073957764545100662658960758620314545480905088590140971776997444064605997101851884321126182108220851940850717897418938857517218674334248344882717473091553410806119046823910997673261828122682207606651178480067541633431291929727645276625084441530430932972242217938308577153045812299016117102999710641503009098462837761231234743205228090982158439669081614130186319764074622394789924104541215658526676918834493377743093895328741370845288844190389026692188570623332704204445733695701187486226608102328560970746608551823267261292618832520771402095058808740486581468254640195410405302509176765307011195470274484852371507789330852341004966681357770406225837983172844843464418286554000731870058429727271207604592102051043681703805704267058924667731795902538058276007571653200200909117376476901424728544591658952501753208379954369045032580427021444838188198303720094946509753191228090867983892711716762605496379747147636429418821168870274395236809978269972781980469929924941874295932052836164912895119899812435541869120883850379804703048169742129248241271254541009214799381414196031810646001684956216982842069141016772327184465394939251137402838344712005657835679700584537644505487600281099842509955290835888521270617047178878529064514471020034116427874648401285110829291075972296160048522365995666615148261403463044940551681948836814268870958286411893566573787921460602101515618474426827757302470176879773190993398158077741385504100676580648136286028438234055133697153898843600020598400084007856763659623767156071305030215931345995834088437710705291264441091533527090080686669926035969287448618880861351535977651092825805192817453604122399997152379961191040003546732187402256527583497326140709223302055221198779609408558997518948452206364812569738489180648066467976268140660016780369909238899721190731748802735090531973069922573437217821209337318107862463782182525433271769716191165674687718636265310577095118785690143288325077140768406620357915371223033646263992822588103990870703837878751833244283043055537099955598461288208926384038913414609363008641234669972730144368930036309816100884227024409972591146512873923417039950333393250891015354966002661687943579686926374479839832704460529177293095417310393727652255919263598129858238390057310841100552578730114821601343165285488160907960269716285347258606893155498418978614448384354249146562143643108415512077769410590131056715030867391385609050192745260655563859826361002315576588702528389787611764867297053603711198375191882862943161259908023389175391901532047179677204188267558760012151538157220328190794015399084131382070759712200864332727604747220470810992903474283737789043864298359796317569947934225017786381099287434463733771377326253623377767921832181158132528403461968705751920710854135714540241548347221090265534183752884545048998045156892818078623344422220127506423059743222447831071582868002422034289094502606499092375349122390442310366937042626764795919923030130906289960302559373559804758687866370008039760715619365161143610984292494338739436366604683347773463804713269519982878084756221083728015706467642022412112050284578834812834858510686886559729659380854257262348563906943429264816105822862203138954668663516273724367511409930093183076775311050254701103175069053999837263548369441496638620744030043606057000541251411634534842137934849970634779118305206640782090261095858238554489164259482030525248802546047305499175639527070613754336144434362923190581221101964131798173511769623064736950205341263687652271759267777902129543326486171370498580946340004642720809513233864420835201447900398294694152003760184590700388457210558015852294958286682011636465231611343434040163677339209929892537100606119928507170638956174710582506120667529566227779734364521107516919883006117276105977280026788758724524975193435715417656063967823465996417913974346337356212068482267948705939039098192990195592919513998364287209099353068407246700349423574122940450930107848666004357649621305183510351684054259128201498003457297546799782792906278519348607282985867309289409370780041033927103592028655942031645059673449419525980107007607673711493876898756975583271046902123237886714392851075218429843342191083943556803325918086081764772894287951393584880521982735757725028402503588821992600269253982518005350080618065337697826674349396138393351492070816751024770793834443245514711869940154793585151470489386366712961171094338034433485349360045313687826134451327846077472360604220588508944155815218311966733553992191409625544842818988201454136131502993862082737848424257526683677502755020809784669568832723368943206851401848690447279193279183365075803738888980196770550486758660986322010053150537193100864875658713886681204533130604880353134581030653893943896601614798385210209743861147222302701180254708414556682886367910456435053822036793958873431901650252538689086255813089218183411222683484895482857929833245714620119276570235312152344803020811265775501183985825365715685708786843645564111798582257256405983297133443495889131674376312843107683240958952225734357772634409878915830779158436178340950514384973386244367040184713093248577868586501282546600265052251994014022002786848402368331233126634543328636149756375665625639249686901411177670209609174730018341008316971542866378195584924654050504500476229712939129595990347601068752979757653967327967433418970687419906450180129686294666498689828690242384178244326138847336315132555626392459010354581596058880319964739585343335884885619788113106594627875100700112224250131568012900943140616669255962186093952299652610865827760219415008607824031909425200696880880404514234810493239315028718477716078172193153904525742591735948998228396142047199169486065864053493009772470097472104926159744821328540722140860910105564652370355436176699141116860643378232197814459254639247120042159351860679345841731419759129516656441604058903463319706891656715375764244525279243310978405246858200751353586760789567745006022746866949722086763664053919458566137143385712955951848523860059990644707882796659366974356638939738030125208906981741789392830886518917442849812875964655265410484870927030305579821805386611729691946363943705752722694999468698701422765372387056916903244981943847093269708000802127536816664674931536806093676442975626733566148660308351981698486053007078629510838201857311950462539538989483665517033774238196151924253840213480083686905544470338883355040865136110862896054024257261678067388105970225774220950687030825122792533966394109882708207379571812671069350385480239703948650965821873053542391172400616780715371715492751613741961993211702921462109041977791963184022039811736011007446128795268954241049839351765791690368828526868308676266823184804792155447749099535890413530862753149933492962907769020102186126475676922608055660711694962295002837265930973608429336766214537794990922076974114118193893126278201287601672171033919583876908626341927067835179264009651013819085195752633468306824038282956328445771550329752980864758036711002229352977838270822029874711213335351404954044290067037355876422089085382254289017594634547963799811561288420035067198750951887034033398999915648866310554844150322504796065276104705526270510161872314694315851249120497826927004332158119700500255825862368122314665201600905677191183047993877086100394037855893930097246725699744293593140510045116188228733039697062112721519717137379513211042626547059834633361440880240668720213436214183305415482191967301767389240457982032187415190426962697840061188652248059805860848419133791396215142553118844000030593603373101478353472143221633093281400333617179038418201527060392111014673244522923487203981022258343938594171171420477552588308247716536862556997665282539119869787912738930128935067469123585902091990031883433496075106242293551913778454995821965032265558924769606008776796760142164206477518847451972376157768135742385963574045503385774011967013560604504086058167245387978991715328389401743539522554803689289200174186068793312531006210519283275564847040444223659444891223891863258505595078686926155543153718523923939665702127963794934479241983743072186148261401325869869156013624400891171762116728001153171440334180685063568946259875167629044903293204447123104960069844275800710871762487317964612556988822366793183832472213459415621468940268588839023355956733480512508766036366735409886144994214043236749546449172634821049453911418990215043034340461709121083965513204752863069121636372388973158744261003217631089972606043519767431827081535243604291273367518583077292095483142651510211708770331692235819119815294551329179590083207487566849814710031809705471530976889374986799192952788633692741859712180006993189509531218218521536740471332705815205941791757936463936566126611279151721753428272230156604475931340715560918548554810573525759890519004027464926190669636942652292498436782394859047401759152842734835483093484424710778018641785144840848609959351915219979749955591869162551102092695289950977068919717207124165395697884692597401965984227333306417722781844348288312034650350359458615287620888300671366939188290199708888217005875030774936737282853585829678522557783938175288538433578678462374974347988226056931538111755491533032180048267539109836495391045570649460589596282280405286320309924171617869725710838631122376739462028242974526397722846945244143319544745612217162036841807763862000841922601226230011239945083820494212186383430415378053012780841904636809065319949686711895810075185475076557282865974496068301387367216352560677935487730930581270817320228754593363923956364923764995436353921755230086403666349920504454120630551360566884810894302094984353073080017966673212232683853707254267184123471535570869029351903459648169322429896055071831022982273172122525069479602242308958808606068278964691727239593351988826406856859993117328792326520185712842433308404359535381432196597563142380059228841303890560006018276375117447417893674228638019349810554910352809703230444555526604306396662341981375035480873976420261190080752823198282581587537819665326077746613327712636581320925138489517013448909471795292606164481955013699164741767785034453357684251745109966802314840265257032864103540836054707913386641109825035738767771178891840630715231002802662216512728023533669837007087119766020625137810009108257100585301844810430733061263533072514811843678296720390687483134287106960362091196530000440221409032469802203459222798766030181907353378559539439790443763470595421420552773019660680494642866849210564136756876961904540651907393829900766156332123923236354555397376398241543671195731374548539427843321275113739346496744682594823931524924733623350669870922895814971754934377246787088556775290689612262723854479828575193008167464264115005364498369823027437466107086865779185021433385756125187073600463736896504230983748951911937243726384730009650581311843669569933384780733568997447543593464171952135334360310081682839112427462831570850839232228161763479005538084582518060504658612245104428883422903111373319300758709483403342239502166752481230956248362047483352979243783976618188430003808637987681783036179198144102690786343628607967040769390162221215988638703565678163385561520015789866689739406159967315946777940345112798399185500380408648602191908364309696100800774402796713840671678684754320170364886788696336789657409739773120902874002834278116578646463053339123796649885985641112748832371188008798633349329871368869107933415402820237471672163040237709069950946385136639940613055665118479524541748432989090571769447860270791348524842690752185107455175046546688362595202090323503827516077620510067106103091825807860720523994454513000659914695844940137900901218914139696079372354683633070689997607505177514003273099666731655650998031615356769400190310892299312432947597513888620816448705540499911327851384800343880875345984013637732639418445490664645553933358155184020611619903706222600679691905750315526637990842812417700374589888072198611285731450694278216382552191412384734220858333005277750103646468811783813396076203600311341118430899824701866815140328311368397179900441350159277525244209835393888157965181201702863762418415611485079616478792976225102947800386666275405295432558651475607821573191334931961596391679460134325321928485582757461487949433874097916937901624324862833172047945168088994491218694651925050979031000930996648058170206376077231193331536416056646544831476043899039924220860080278809687015800110882365393162391154583361708237015667439625274018486095022923532086901607763417351087817187281187391306186882498099017069209131245942029473168396023197478268861299649397118001630973545270270354211470832750596977698316007474600125001725411456179252439879883334761880928785766385743654393700526872658668205663167584463993220087140334514648279211613788523246269860696879550685226607939599897237176821741518221519154889274575741123599910065693035811535327036899914272609060517221740483343835821247824077811906257241904410194768627062916677937249822232389130662996411909684691911036058385807818424276774893116607266698561241033090756116326237817361058934926196537799267145609861499017754071606028390611489066408843451064757970886656791256398467990966645436949446354409738012013209615535513248861527261863225063879377389422751580330364472847215200209165900805732690678641230476702087652952554524684487747288353454770219317704688619143149058669924462382866558313850170483570251993360769920556990272820415761703799735655794736904099616026352463412600159170484438851582178129090172550411554823189138269005022396888760937064826145724661328430422973097843667518446862309627656127550334165217961456667396008433720559636333593069520094626272337119588423873461002834227356981552222827817209413037837249553708805017702090494740245997644453590792320582142483262522281364641838162864624095480297520929979590933063002387884738126917541406121456088203289178122321497400958560425560075760940385598059939238825170344430805766941554673071037117740316761669597073818543969011665465165297074959792361881459327592798339704632086244331148927671951046197713502875728920222739072610587238985441098440640718099962660573307414843328092723280985857665518011770068165651761376311038944452846829927768278439328879082591457700143533030562210863349394813881186289892660178757096170342628126030146807304566516117295776659931694211549236161491194826575011969649996176357750167300778184707042869925127079095336606276803663288171597906528131369732409195320041926531965094284265952660293144153600856151916010633744628677985866779400011006386787516747105064672677280572659187944974700003259159264902797625424404529532375917447055426167044152619612671076742729236304069878335842689101883175195622656969391051103034972475400074595640580645832911999849259313511419457724873046516897846977008508873363060336358847210727796777182425146705497880164676243926843663703046562239478016697635306964162005272190268956210878094831450296634662064525158110942888540914525490880260534823394347162026441649797415628169520687229225321332622860417025848183963194828508489759966313941538343232430702621921973658619566418973969555662550630819824365000487197278619940422695142985574946450347855587909349841059930211316610588572518979284394095342034941143172726733716322870660682847455307297489424202764931498937897368263348701752068095367485180400316564820438618365586941445091045728246323069744138160488380504300074692195654024071382933719343904571160812576265012195617531337480433534062177513297630852826567214945338429399397498846445555056256527135608019017086032831079870318401543463243639925157537725012065660569641350847822451964319479007458867184999077142021166386491281502285060985346166434221763261965191813810845212998926259043904150913104346122426820153349203215103960376186198195935150007430789830301449847482174773298111503581982036847158838187440465144878079831970745685602681695287475634849686973128204245686657028114944701033972646304533281274955165799638268588752300709784932858843793564246807264728742568377492523999895456143873704786948224010069692256105612026406094591506055608843948601207875275701383928434597634810787761152132601690413415802904083798090042383910395677615724832822185615929856048071376786212259310928184548354423525143536240626947406139856047461393971268590444647734422897635449729779994222995536522066404426180064436786572599082898994323786204004453069952195321204009072158449714010352030315649107127267465823788628883682516524164063742563768516699827470452650215979403604929720053893527581216761018847586597058304318637237222997615698706053484797355655067053588631919629789643167880286559540832743811030550943379990540341394362128369677434201027874413433620453549768535431067292326596901568846126203517601049326643900402219610145265566400542356952127331928016281020785600624971270616673721459487204151601635092349645485023821238427416212660169851335843564690854471022965356972496325207944815606026589929582826228004129450217120460309423362883832627994324998300108262940893251172668618466676930740093473379099658825890248091033321443802654363649835443896995608842477328482216192139063317876043834004336146869366635375834562377386593624622748074386065628285992099997584203712088771379335194837753589774452367279925148275266670232663067087404383957717950309535852540072051364830219779144279997646664327155436910622200027665346708274978345274179501664980287178300225872676853255498802306936801392375364514627830639138336588675220585480961383344222719508226140842107098047082217764169129231678445485229529681402790757665467557299639173434860046456793736882894555374775058401956135663672302487358545382247581020120557044002805552466657946076294693967490499409436896762923687690297016383109275228321906285297750886011045093281819489750683120184921125154921960413305364778863672734534181795279485770845585086069606818027657474313528796222587132895287615466620872046734489194473417616304658413111390259469285997277501915316192873056073671666586874933874370112909200026846015564066144502130624849255611189590002832811690291546979340867667509717465062853231152731681975690804612419658727957724828235149736329762826821439067822410876333354434832478711967519309323039672361518524955208051003261852492020322257585118083569455149832183113669620365048683760539888166844565552684179557118036988524288834323171820154711853678936062485369253199129964588953308047943173448920811359582040346733362415867663620958523439963536712667327211853311205725372420733182709785042509869539752508475415455576395170650172968011900391878806315561500352743434881218491206692598416925243722169123892764343374223335340420741857250572144210243004372825529805826348925749116040144101966652296973295572827441194983463636715739196089426462293993199167414414007594898735615258241934801960311636329280238047605638525589874764336661617160346968821364497700555860224746245514933713956520789668174218706788522306359168349864248477592058385384232709763563856424926315479526946355695883706349314798880342202574666687343361473037024858899882051679809240218867411398301833834154995964251112750532772669338797144695016866625901376938885386527394877691044557615717658569428010817195821845392714403834484292132123747340664620584983403956864145203981265938401380403304542185262642573921332727738947893997324301799765182099112098015413261742368198030671671421849255391948308844117456017001303159972178278223829874665832540426031070176986831396450793721105467327912254320830515274058338657134652615673286539171602014906885232749478303920376287701800915533447160494393453714115846161679707114293379642278151608047845070243648097057172320505122482563082334682433596858613494926801574429439138979005587201258511722161893751996485657041652157178463684942959708291562715990353570183789343966794902939128796051146052775997853786276593700682009153759770976157654325632859232964914593964431946559312070575315243963782608497144132187163433792457410656381463504767703372724919814203880674364508154705316257011791415360814881709596864184615819181324780065985107080426693774051773426280722172230405323232693734985843224462395797978889164945704918036618917268975333992007869401565742962296014515479599107355209338747872016538862953610367247040309050749151577834437440087012842013634064256326718173304022697074837196859250222353060580840974889580691098072471809759180789134550622948209667001383453145007817805494807955979052087713974096138041122042777144274617262341757864350427768009158831982403800755439634156914824384015324238005083506188271144638658460096622473724203603182262130455497100225566003215476601290075539115906749283121582546338724830685830691897064466405073538001962771941825814228842102836951519589354974788825202321726558866262581703892708961728345284857537845263811598376066536260402947075363845589370997871094959059537782949057832458949112847780483304039388534043336012022945959403866825551751263243112840591816309949101203863671063210206734909360537405475515534173118271731971151446673854743961165985208068247144404480813406546143293598804663757766271432837688424142546562712792478244428145123899091755862521502553368409366794929014497969905955861816498763923256316219579350934846187003007358327012741071242954018538787369356914457631634101928301957281576413567288938172490076198197054060942497005933406941105411503409480013787017070193170541806228705434543287530194650630324455133360497400101908396258780627966327501911646854017937136273108729040989193657192542409858326559404407648863128327935293557684600963648562170531540316505701559487544475599942255784550090790779646913965300358109653749594212839113814070949339099428189383492035150155969148862918723407165952291067048345108655931919027892022099247515621900643512089621244806515608699846855144722568793938633325385742863092832733600481691985060385338731167446299747017681744791416089004905542632013439514747702076721115963454532030402363133565437884385775664714371197599984685341363373332368617752368455789374829957987691471337768270997204430152648186467852587911858909450218797273160472135586556489795992968685985181145434952645042598011727770925032031571115861360452608902785829086853677948664834307569056801771907997890974447852707547400485658731453102171862234941794751292583733582297763616832826152012595604419967953558211562113695900034935910410799593156382718673692942493524739595083436134897756869474376048334560808944615077545381736294519405961535201004284037666437350321171017839671167900954146571081697326444375725435232391416205304383016517579116405248120337086195811934914714089154260520314084550476336330190634332728808441954096865996051554761283995229541670179878403086540349022434159922626598309355920859982598324917155351245948599027036841002966423685310004324018709301339823314631852560861946191116104602102103694983299732200051966060377360219338025630108283296886123364724681038537229177852427272417664889115718202747930508798322242704584327809635330607758988740287726887174176899613753366252220460174854660582389530457579139937831869609815347417921470942198624245591896482165345927882547626792048166497578160373543791536867305282218701359153354565872482091322587807908909517790960664642220097970328860303553080358899000666025527568853258814556170048985036021732275352434622309602670538990954040903912200203586025082838793147501302050617678367268999455790303824911853988729724397322925754287900108909700231561139366730363891498456129898190334416386338440771409161974304180276007789958790844026493025087438681219700323784189655631867990616173683673842441244417133254054916783202104794558139755437494429232340744687918476835180947680493149473436626863186373187582669360732027380171274707730201980408046565472390656458740684071140764045714898767546972759131452255748933855803482228515319741225462160757366149407103375205929877519685774780078904333186838326415522140104167839986829306283361142850170079892589538664769461718825005150724044261292380553851162959292629462628641819165446643084035620011528389772899095870810108588292727586579501823321648118478507309173035771638767173189164278504890583094448807989215115423916003199902928759373125976019871796700240566323677697991531521956056551531823597220784270640263210346864693157616859952795773337012558287339686635814877185593560048999290845933855490931258293269145415654227613936732882963974870727033064645226604759619052175349757481710702522086628145416226868751703267978914938452112151784208926362225552659202288818965390750213196778114154692082411504549701375300590254248838090625041585850579146156048150450519202907621308892459111895983322656847676951061377820855480287846795856787166796205807844817503755750978043402861973211788286593782755903628067654898411007616151269811781014396695989944896549238794469023431893870434537704431152674532735591926784508696924643000663810724137278098368222177736661605741282122352908345521020188037364136285684143122637341849666865943279849350620113753173139757125021077084944210604183334047650147559253697920049214753776652720893064173307413998123569355830925670897972998772269583530113178236462725251979702080349394706362297957630555335001675651490238097000455690114936399179578758399802112497930820725240315733568194817735611736860573736270180113843900605974885169898364827832659815436357560005644419783149608206596390203666995641902711655284213750662314784960487719610103228023817366020504399314136133753876386322129228252211378890268411073930524382626508201693430211944626085367999526836602391564615631929125631540620201639339975713106982468182699728036039226203963536916927532596416924373081497201510512529800177215989687654110917692386754621812029701142811761377429993254924342018248545566715074139522806180213500034529981747134548196629774647162825499851995625342404717163999482962526287182682821637901684506632990597309311021774355027485968066618621041507899348176910034711458136363815312615391651630942604237007646115144523995510481340455352534497168149954404172734699608276831804916463480600510853015400230504995153888750437864206275050508363296855317402658484845530955737874178169567322860493837178341729838877625162887219385221621858192638872998687570717367363502291468521124209806462306163212200780102518772933660088720626537946161427743429866990255412599915792173259176695176845520364125475342570345258169654206859148280770291888031401388250117183263928588061290026532236596055587777704248886343213693533248410390363793455695763202179603787451478231724065699145169066868164655249399361150051427849472429206646015360084652148714237079494415076640255674924250051342895271751663651442767103558709582176928950420271355414432190462242488047711437692424821815392934333995202350997614527348066807883246163033018225965767421190691989639839732443294535362145721767953753362220389647252680277571967305921625685349101028756421887698468407046479614761432677833757629156259934186897923010126991135850590024486010552298586664953121459130166618960004536808671682977640358243696444232254622430989403364012806122042038467885014485000319498944935792349479881023970364672640773154067370321501413829891436627654909460657257166239717181609118486999791347762878761273830006555360156281586327345983177546239823690575584575117673228038517935649806402116572796818253972479540060367438673647018470307791528150208267658236831950265098549071243525788405611303471686707945353051593190625967600074103711466022058490420335403590220316317610303849751383563527549636493918414555572872426767138537882704556389228085717343175408428300334852727032072447011333375322569150068295408178281971905755849777192212922345438840486710141134159742219157810994484174113646220381556195913644408187828322322294417183187823754059023349600998986152814875097903036437706874297200394233459610579063476251205636191068688023597927795110348302520118746503811902426847346545253814939158963754002312275227834224213043455001327171420451054995314913545136260431532534025827472269376980493066819821680430420010062269865316580209800778098121456464375080682744815910681177061540945287964323160531519850289369434156759107310290469212833492961774457089278231196117098838404132534747022743949765700080637837645372943561326852283564884576303203476290733971466702629257134257955532204629767498963593955359589957104488860268659805851010374821886993740563221466759370917261414231735278600531598950851957035337373782448665550960998298593400508658721332181662613358574465555109386849102403796619346578934132495621984783746550234691977683902539268896608516678704438395482841270738414837843833294101300083754548455592030091818264058613380159125051898788573078680358445897973489304986370010704477292834786437369808158695424312079321238914620720006704460245215774527641775030631988301494975672013300724313670076055599760697924832543245367486254883687241414555320386200032618037916676106641111785019026088742381322777058969978290211041498387960831912283971096558074899139769659564729536619668191000605827037577761414477064388500015031620143470139075432178147875235373460047824330384161959306268453533976415960594605156507931963426997355540254390511809547840506690781994214318160300569292896425830658884203123315414634392965509790519243197542076219181221975774666232632738872919807459881316793944066116968779956190024247074275120867727248992873448652424052943575595391876851610338038980299615766863481390068763755530093560923517684187952144500492356039188676169050858310918338757359320888136354037218019054860677409726921446436885848498377561725800977277933071800336302138358343545033916641192145558568044099134912446341674440698391055029109342297976453694899128371559843907869087117704343948518047179187850721365048596873220125969484070024848593246083646181883045012589727445984343394600056773986859340572756841923040528301241144281892826633335202504814457437043382052236276249132535310913831342069856279924580033672599777189082436185459999967520915854527289885130301748264013534393891352263711977242322383407664972956319055869070050055475136971937968091626507184926677757072342879056958414731971913448226471151103690435970911126062623518338044500323754627390870075352755546232701188989046383557285250762585503203287123522674243710953736928377892661619359643643275547897060769271474861576202490018781032517857951960997402490121752682722915413620331839630346887891492109128699074890219222801356601963129502603569341302062050265631536327650505244032373526727726208040431546095831452838056490760004602672803643180779336852041803583560901119578705864176200467769891847733243509868496390431024370572282098899964372084472914942712205398048364137526906714990970238784019803349078056934336773366420200333926495355866526113279224400412874190961584970442565817260966722646597320210264341354718934762403068642482644235281216920841340630753048367380196350548733215146992479602121051936961990323041629347005825148864703280284976845918120017035312529490984044068660559066603813379067250419394172822113025114316420419982760763027322887169029562211711606182559947307209388863791605480807679451052849662619715550993680124183266327569519804238047957322320716071714822724451949890048242261269202028644006139676237473536506906544396912288342827470891813959146767681383188200350226511445903340834631598108834652501366856044656431531979977529206794963699415334528286762750773572331221549470042415595470659562279751232548280849184926109249495293457713669227864387609569718686542832921305805718176591044312275917867809410923594030751343668006098080438657098549482544029048766057275350218682187576166829906164430048531981855949502262017535871081022219932413141063541127562588037205493386321432173431499055751152071839028451655537573810000023249579025984821560626110615072521925600282675352282597965137626850167189510300144742247142000386763951603594562407663319553097340073491800586480775345735182524041217132713742637550517156732519825691972051413703776050539964371417661033178687556561372195280347657631043644891319686129358146224492929524345947357709040072163290534649220420965159431477862818906358206045501968129677694166652137037111019380183160741308505929503401082666969414659352430220212657134164786453390288018150713676684761194864583554885090580205259565998727985549451272070125771370895509258389107527044091215068942023000792667306939383586922071319141772922243995612493269475493263289856120954659897607217922808515903436241043454289776633914698900998245320968420433108612187255165099765365294337341317646338994395317337160591432092691959391675148309122074076103006928646657537470457400615743981148518529137318715373461948205683119891979080335914928861296516300585812202437455106228661172261109040554321088918826431190183893939356668455205105035044483928727679847748759815061682288701249140385432678984838049485924259686449914414692477112469334758272451094903580436016728756426452894846426984697810218850894078202823920074855091365216845694596169993470340079111116292028551926214915669234519266439927992036621700262555632490905091259002831870704566806336036492079931194010479248433691042095206924326508072880650019295790897327991185504107544394787886870828654703096696546004554803662966075806693409836789574874143420074322672786792619283492002729732932705321610880920077076480689481452427357524619426974177089590402097830556029977485456480545165719440808724220394450612110627357039029327038809236961622992587776360229392279228648817999626443080039272569253989886130297704460572446042004046413154397010208032933222073987556703905184657416044722373092892227320272148676865015842888042003790250272498668798381501108407912405826829772753352569381495944992751148989763727743424056026637708924136047311749527756965033847706871466154768630431023033431222651570093872078265631366644194884675973411975181702403688874697684126198278514259660710374992366729539533350783808403336185848458733270671792407021001746053146492183625967178289721333131841198401892798210581066972641832982828460198060858055279665839165431147655870240360913321471021120968278311990626506627776502088675245957290058517690668816270534611182248054219070011241509335497916845627072463978123012758265952776189697090863804122763221575103531002310698549056954565484327763738571838521170753889281680071773580700765493755851905712578566020371922341914455927678044457795767002283291912003460592186580517205282701466031945685956905400035044969506346014340678795783171585663795075088978114932994839848852926026676162619098131781466306283389375480745429985378738941129201962170623075398042254399368645290217429915392993364615958933826994225706201667703070313190074358009242380671759757521255834564742048499780872148727285787471848849659483842174272084062854316212839862535182460937429533519584694531918805491531441127074571569513854560568279000330843859194073432070286234092620821154596495958629987679626915860434198039432812479167387980246187494491414958128443891881772476185523749311532977683178128342350442163056448451781876015485559229850729305609037667186820121935471694939839933490387229230189070646448516181384906290335187900509518669418008051927283038433675205503899679061919812090325167372839597126132123623381271673719590125984650436111189253485208020509172512725454605734087128245116744110218738298472652237912825138347740198258672954871918203646161816982322575229229923256420732677426088874055757695468190733192064626451475707982745070038382488738892483075061617812343257757013731424566328425677587777558393902040654891406330206665522787086540998176571643693264707997316681733824307287734022835691652796058051788267473963158298263131536346207445783671725038067218804302260521173913558188364479482786942801549679360948206563687008467767068178174488654238536072124628507985675786877383147017454678947652909644178868060963928260883425740655919964974810351033490770178930547426507560865762107247596800976512926234365379212085575812669377071829110868487328185693520359938394940835066925296491952890262006026816054002248135037839924473962630729997616177652350665270291019183321208739032985263078064049692688707398694502692764033731148081566068658147923091993340219473695910084721163216405898300839723900035158128362128846360398205135545700041629252462924234119294572132606351132718778410367197783564520412430452436430743640675252080651315665896040149287075651637574718166958633286716399476442936390964950706227469603231832250140665882663041111642679281592230619489979057350464971004442483447521074805939621451989042466807759154006074763434999217558834823687734795038391543704268868922451044793848888802169220569259373962731163489225221344087888254109344062681872343059446323683725514179373931599209712561465839328106629053312746124101580206310907198626472024632730951082956194585065891058118992955465834746285025845858802206293444876692147824903037499760853878340029070878720579973028537797880107149356113579308117715440553344451606591631186828983280629060387003470706665960298371757218675036628316650558982017530446443606802535628442210726366865207265385992106816029416539344070248942852972032395020390654159435203109108080517764166216865990292057378555053290220435005841980708270598572058056385773676576410379133692532411808347049521624209323806123036539271632251998232172495875059914441295556836680870050995164680986169410069066882831499051097193951216513814679631647974761656166380336351412300457967498985362980511508716001525091835935368210189388107251525330523881049049506873791033789190841455763019394567761166325876578695997207344533610548231890417673896515989614790484236688832017052126190046563056229482127468002368986691156175142069112534486000343284510202911366632209800077688602297684663945098123043302419067016156474586244999109464354534981159042204753040258019418741308520640364151732902816660663511092894541496270812779703803151926796521769041090822935001154764658131487797919508267430458893283396276540804448686108447168000699917078521278058339613261174857155029751857215480335090285420941930886503748360448255259506323781309625423055399756277433732329326299455076693139863333000801375533076984089703156612217609498827394420044160327670059749486902622226008771573974282539839015565801707160447344509616483742529533558235674800117456397075220482381604227258014043352020506191104569297525778810096164525223904642676703599738342395839056821751150130773317986894984923103251843142892384257646090780898682976255504410683326455820573022299893170679643741441448591599412108986830737641554463156594256375251561182809379549351253906946325323918031059733257826148458189117377257755413050102921225810701082368388091330980982774548665390231351260447875757069286451146152606413012796078195765272102070695921021162410546983172767199770537458829200077469014372697229558579730502922127924883777997702332444881621708172629772831721465428351322523442325776544625335464343927135377477828785292004253497854547031091034745223904785738602639365044926480850441474610267763557630506125880395299805318719893926582563063691789823235422837530373588580713055148734034766891904890683649646214899831538485571420520728592292168223982529714919593583990524362540745478246255419737193555943710296902947749979146834981026211205095134565141664101652133704262886371723393476569025460340371566601942246226198661220586373687051640943341526282294986424083498301358522198680730019516484038780555014623120051389093174077804799311102509621206995787107188232254286417118650524930570701423589536374921605813709173187048784578602505234227614477995754243854347309152509324609723862157790612019399768671387925223471961808474268775199590643875457212126665130552546277222662658382858369481512212309736944052204517203054837051537821774175527065424277728362202142215003619101371650638780654576527669030791430228221394878447493885314146029490292649712363666140540103425153388524248849954589096891821550699167655474075105638298885686205806259534614765428116966601471416897155400468581575416263067236797741352048297742260817337125689564876703514061893067240127847338822387839655623116499223098349382101259268456335955486604417152346093231455252524141956123845055578297111606045418378253224943173915965574414392903168242833347212155630103393706440409381298505444726014955701621572307043734431731302460749402457197814741709652706219500090089061666771794965812486878558330960218815819411746857034417597543460732886006109473527530945217504131143173673146044608551574378691517445793593353693085690503775057189565111813248326081623117791656448277909042146064107527768494856703241888151828902564690575118898959007421945959880000986307857685540983334719589367816028064078049507848164418928704399921183191411575328429703154245971293868521374757652525057608947743307661656228495212188814497487633059548163146964618004405018955516797746842882610377835260176423193148683950382973203024580687480851645988149694355256633503283838471205838093457348668447730983153264320971652479822530705519871279419275607982573289701123986034119458619498067948791858403606821865371302875930231377570455379293959057034526509537432547068352397337986394816493488076211633159213425261830982993794616883651270060592026157677669365714651731187020884944152765278947943105823311537281181419615319222408401618116070912521861594724981619344150228681510820059263975218692969688239900973522664511317086723629173772090354395782686785791581293765161422432395255811484309967657415526877636912521020629133111473592196411330017794649898344274102423419187180218830803637263612578959288525054828046462067862450802036860178846420848072241750483551245949449435933579418785065607183883188675048549475436203578532324613605317515234504922879766977671713242805374712309935006734323465365335233550524675992934366594792070312111780575138584951154590605350701196200221539323188396252432672982657647331197982662132511813704339069584592414460921763556825493701998598675188290294216963056969325220948825384798969758026898565168516270320844543177747773902899127530702891150683530482193456460949572768487894704923071127196387809254524292903893563951468445810975209964659866154254022313536492273458114385135339753150522428773890651816002529082055524210777185342110632039565841303735366236473144767051794181411960214872474245885178338232840171628955879034234846116711669023251608995644506987059288518838666475739255625692919009124222256247973396891891549647849726002815146115435781800998529480100688688618501110317831890246668394756698574789294356528537609588422719223333347980547915445011138619183312588902714784390695035945347800746896223157082565626136367996815344832366372685245675608393093440391804637609373129693660873212187143616321818710713275329305202452749966274185148183284376343282686864258975373435255170144064609958209394218973753199244770195168639200740503707052465763743833503419112034612096137018133806673249336449964393468622737946922026200812720053273913706223513210300198805637245992804141752498059014873273112559517284768861992975231448361271693265848617092993677670735839095035042591164158507614585456509867984356813250469653979422966194942653543606888398088976138622003229043356422580400029133966037760816373631242081201124640945652633683570682866493808346265795370384279816461318364431972223204147587163944896512386741858632857401352923379899050496670937276116740550780825081592392651821961671458832228920024359280488896654500976640795291293532302030271895967285064967758360105630215330540006717048667428596170060422005116034684041557414982528555497129260491903018892244665183525443624591238865741261971538795405627054361925042832621840006998664733450996117884335961573260310636479097629107959788938351424053512291232009184635412131291067627482507351544367398135755139242060075891088052170192158079850158013006778702696007201590173083307977134756089624506251973202947153252160759108566875637915186435685202521924291228159266290308779771627911105149861534865475520428651369493561588384518130596420993919400811678840344430230616729326268667105296499404835865665514680053629343896590687261480305110618436371360867786596750508516153752977477134057081118548593253508372504102385801901245203103662040238161160750119396494649410471120058425342850030303427589806491104886747752666605271238448238319395340055120015563497052619009575115165178873511546702742221694728272042773317025727281712356123213483420355804925788628264245231185455548740425836426267436277202321396206217083872235880393522497499153675341144440510135967702551961510958423998036797396814801679938765216266990626335800378590557795904608510380163374180051095600174972017562037632142163088181903433990870330179020591372256917399445157418168352423414844169532020154630753906256524109973692885309888770464042022001908391257989061035519768148092842337564522146028258177674166994902737215902653940983891325910525708901156998692710375636675385527128197600166472769262074313856037118456024366374677568582044366402930958928367208499998087798749285700824856278667639304617137064777640303538898145262713127334532466540274042110196413535160102511349197406374561821898511168743874931049668321320955954197322490847181621891354546751499188375822437177537097377948372427118668192200308131831026612774110863543585933642934165296068333408094821612925346431371786892312102104759946081836679235177538986915758970534464878279119246284466535526582029860854479602442603917695035070776265491509582516189870609810300414303284241421054769213316571028905936032114593713664760930334560254313345163355573346412189856809267445453475043630631140186969002394028558267931012394801367502124914994785766150292290251078854214198019645533940785505659872530049741562357724082229237243089285440512505136342137298610094734528212382008981623789972660678978248343353999859889727751549667204180425901819631860269646764206847368866518954498194934631382071633096571581920010668310095158851630832409005512789383030543960986437847484997069540818572950109220401947430915371717328803312453051853556367765793633973858546474581824053950863679717025848913940083791333619510538713479283484993716957774464108923752114931196308593854681235850522516067030390413185330084258341232966012550298589979263893915488089020013373579999452165976495308674336578584034527535142147060944570882897023205368833186828870928953675361742178026835257089264452499901944877117019769484454524731041519224354136246695562505759940564669036903871407181182581434726409392763992280676311166077219889651353901224927014522758877598057481445325606353790372572640518945883542946510108232684518686532178804909020040106373272358522153120412403855923557015840578924279995076594111166801106830981541672058671170734649991176550751384565416193119055604324208171253501102461870721058583193758313307807513905369283437041555405101398044524216616954375259566217015664997363043044064494154668564554048245343972748959200472528705320876005172120177169587441910268558538230076256502921427269403391777157003671971934062008384460908895146594166012678339235554825313630929280839174815584470632822485659111661952267209414034406025606448673989574310764396132492551341017480050480185636297540817078261469055930885226939067270363162835344511681307937759868280407952122738964781153221376957380600113638408581550610794809555634563053273484348161675758943229179649400943015180600948859726683006919477893685895508738696020934893623994093547138000315500382606279663165019399652214226289015724247458759525092604595287833491048403264500160631765407850359106613801662333407179634165530517904422167210673102647169441787917769413911983151404490927856649627840113042289594695776769482578109694616631835583865974490267927981760777009104035072335425017262959063488862325616433278130940667171309203506218999361157872237814416236069944576296816234232446835335641944583221788975939935275624931317987718761665846145522702090074985395650886626440526196298013311475336978711465768010558873771718464085035174539002585027785135683973100448040340902938663026934706329466707396942668261895675124083800471852641595031708365679948533411206848952915396266943131969434637787382154206962857251878506358220321666608534512485167752280708909301751473634101787633663995241536343110003339118350283590711427226539470369661720105028907070048416831371791526460113302758349426383685508691581954672168217156378397180182321825618500998398338436947239160630054227924230200062152584316980999545994315154313940752143027422068066298811656413923180372555598168067958888693182601675478395580525740959707958591211545968158132511738637992890456361330593941017030847383131086963767268368517194366148251265243825710515064872817953300214560679007685195516674854046748638370331246984925551924884290951749835432301980751176445583321100231015041270700208518094746992393986533224211029425040789749709390449353845933013496673776114069363263991604997358070766890499534545782301858988614505695337403713231267127953186159913586121193252130184026487157874120405985078755023940725671184422184442852775067347680200678924155693588925343425550684089257927389831463888623067469519210231969720956450249548124006801702647449289154533628608560670304895255635896620203877171535563290186638505108379380342293831541221762962475609541103015366515689745950646545709133479412390597138671233930974719005783285850661421586975533574734369435380713407190193491017149495323791325372314817820004901073530020366148869388858700672566040986673930488049733607044595549147598274079434865885796889469719979525026911764573375811594198688560773752677933182285522836642483496238390788363566899082832782644888718017085976094181137649036356980306907041967022145628791611254182538570068928859198559282739583444308386652919560770898249646956853677497795266200599907264546286421562813281111079147440399205938489586547850538935666622252062928983506629264000294730278136830039398544424752157543682852617143865125005164310767085116617278532063302949935142045887084494291094706248356459632040484294032858229569877951037410203838159586881608829780832843100207953092053532978150469247653598133926713548584086242310954415030565028005665470584077004671228086299689620035337424057848541408813473571773295453654579015670106724939751618715989445521925532302577323786838473562376704059561489507253188609510297827693469637634161422485719635116219581852268289745158417757672297155655059090260577284704702122731540281749491714120063704429959172740622485219538948348976667263516986772374826721005375445228138742487446413734447825033918923456807581470165928410478291335386731352369085406525854339794289301322548583256703591749319175617054357796116051840143670163353983193189925164272635420166922256021072961116187366385797384890660096094888489882939660022947564534437513872492543555420773445639552507271822457746629442337234101997204635586336845716457434872946695662754296663163535835918818431477026213056288804972482657420740668949228283526593523284034365650419756902234064450999771937256911467449069145768592630160842489643143587215313049871017480153701243119497881693242649462789994715146924899357948085724934506051979393194869153027511806329896025644609044751248675407093279393851152851545942073201182430194841745000390175327007531950077257558299824903447361978396760398559785716373666303771310184907559475320621002649355333786871334758999813178035730765068385898620259521860770626678051126937503632596614369294380191146782033982547710436397117471772958080354626632190177888664054123105611933079649751763041398700246349421862892951371921612399921572168951901305156112367712856776087448962181745547048704409828493775831853159918397843159979627293917277774838185337050347861444062885058134655405300292944831925681685671965303826444558867860197213847184177473435390689309701634858725787952386079196303140117474178735292589035591359781636469665905251238114877513584118034413075017670029410937954758538605923822349156209431153958878103982948144212640154333690938996363717751290840813092790959624067238341341942666786546353445523617144716881971024778699856723645312216612898362346000318100394104632158360912559919197251256741145409298207890497108191132038797873734750332333620897287210763732626997668340567649019697717790719857975552225010276402954558270520861154360508774580210003012113410778280976125188271166403027422511633164107175846486540921458036980802231042845514403231316016462207969014748197787759691393848781655433572596086019817932792462344511414660797974460978604640711599116070043526185482355986184696407062455833878381949347338526463305820482555916363069959351271860028501919873508070167048748135602460705585317947824098491820963258850852896650543540507477743629098150718357294071826934344368167184220716242690138256489322212665103554769528250800115025766744646308393052435219199819683748913224417909435441002411665079538373927818457230293768053205392717343103638030877268558160460295000389627542171757470120016898047327680418759054178122730565250913027805376116660754617427059309215009390137949190905183719125842205279388959531151854214936951443850202476747621983408788740168714268097376374456995755314642130057539153296899553926998912808749247830633496003960009687817321267968092614766230201374116219360096031297116914041053851411336891361564415260814617753067832012402236159313260604442088653740409115653754092999994193019949974932364565393293261643362073289838846027185132877735285202133850774236328328821147514962089840858685742781318701085299955784594837245500766291325576816692328286350020510279618898470853227399080545511437309429362386479294708078128170878470127150554274591473779510585576025969673491813298091287238954810913504152000330298115742225249245857841206185147049809348127993097562084433418516888447413348857217609939028436032308276770979777882855271649725298187455636188968379644536486787294016001365600775524593378634056274457671077027019911901745089666959748820759660111695676801686285174678908949570100468594022597455794928875767035014386196217510755411695050745595432359491599664976120198997586221770859353597834068142312407742318192988582349605854664233314428856891814436463944502364794755980228250261055496532128837342703753183065376487471621290743951581674693753534438804085321780786498100026548895170427332356711893149265073254116412675005698325246305927952227158547495351442080175464539478696889660236974069852478664321162397985291676900553713566572600771882377079025145714780639181339737813518387005820814266510461829772390840562699614158526370165074512421554802147478039197075802522996695564568561192432773866592963766044837628008997608858982836920254790462063451372342179134310709408055913935110520598967977211276898871723585041257194675523776776803836251656554012735544368543421779169414370523787490736967510485268946377406836379049906821508730442831656618755489789574371014227386720517710759237352461602772385455476884829310379668237717203588915597788589806838684128761818615124745689106179020036755259248293636056912666161615188086385325515248732876885286881326349210842265454587487840307939686606530035802491614878971533369567113744503742062059986106914818848108633216234012348973032097415549069977881060071045174347574995059344241542483089351000850407984611205113094205943146676803159393216465119329661821907863125957162503198275110145225166643713558445899265794592707787683628782832324954878641953108345102843093773308539197691571169039246885962077908865893297295542685795912634394293504749538965350052787334973484578924889929431678898642202188148467562830479472257436795229515884156884069455987379898237193659855884972059471949831687578123813730173258103588478158238639373650094868310139303368723322545736311464199808386478070772192940391181900901900503123673983669700431034766056779099566471631436278789089131315010538130407059101044851740417386437296216141176139345211449498348256462604635667891229793017426289470077786162515094302463107745426952687242590674263369143604268372445660097417268341012146657082254636364294102509241640522887637225290619421224353260992126608163345016129932156413112979641196212810670293845015888904614828232195974758341400364037751074317833914385185602155869287517816695976670898478280258174382620390324348203539965105648756233220418419552854321654372126767873740224790041699391443354947812882690732864200143994521258917841000673974523488116440855997733174644986798493594481714629529724629299794037639172546086574106784219799805308799705542675891560164035371378636994240540573149488034044473095699830942220370504458686218287155302059124989745535647677403922201454699791247890317256331173164757982894962486029587096020851037523867982127905196638547348959818882372281127644358736186123877131637347182440278556513001422775153326594185199531914948296902074913652030554737198813432809474374532995964010968514660924285014091725198574104887720046985430624301334867363863102259249618830835702951072115258155075443275586473027795054997896663261861018326390665500826328092328329803654904362468528391402224315127356035175973207933457722423224114207304651709716093733229065158013159038759944840093112643283424913205630277341612844917208604432545432126583236175209547465068488653142119887720590531425662265259854575180486563062220887963791809826686465828866803178179329148819936854909914303741511168723823385931785741682205401721270401474386372332290964101787216107143303964575604193004607757983318633350938773130247810209308962791066067472981602435056859130060757160497841752877060827287128811752279845373460458994233034695591095284513324653341965383363930134982521025599735925502176483608776530016873933280877719584567026420367739321081514761312337339679944262727715078825508649588874525020684263793937040292492942884551286020697390552919757741039159206861874474871139927035216727584373444929221358470777249387511923260366648034494628426958549223891146965987063191357279086747312854043769239150978341224995874405318409264266300363925679338581041665014962224793415370593446974862522117558493575266407671553106002930250298545912410583023851324087467887040356251408141340331118611735608407883365787108445733821577930701041772261507693806526282592991213736691962436024291871197137095842936231301770021382807567268656288695760111086017255200682409557835661541162707480536814278286048975474238128559005582264535516032955657943721186597927411241683998519761407179689734131731772517845890248119853923367027614433637066180355659900868466807187740179900477016422322746694233911502547157534304013698603754863778494535914944827644161051949283052050889333731131884045409535749310048689191277420845762105508413258177193543487360765397253016219056939212681446954401011219298183252843493190482127688434670787531707588996711639005783968516775686138605355867636136160870165251686092896966518688103452991057612549232868297675173399595299371339031653419947059767008273306632689832851359271930009295920384540040219579368125451527018941574671817086999503037131299807351626339707585161049534169675966297150859801390628093904525447340084214574798027397475866509961131870459612901611894257080766390874317337193690834066387148338588537704477070296199946497940069763271149837194910696166453842000922906675139712540346049065713640259221573207689040141905881357228985455797867809647834472163517918189565284750390478923360627989435421443660378184282999318209784846513618492263001687320308476611911865083180994629880705619939609916523562755980088520126957374042403808161887829175522320082472351944413857756258434517716238905716197302728789482546368055042520548940033337502779361017930438084167644118026489227344586822820357475725399345420137174424386021695480319295547984159753363635788237794138305782621856548847743368026027536936768375676884999398498356498392343214463706652190825171137325571262240486243712553772553681993705577016280085346443984945148763265760612631020451878103637836693398009694171988781840541679194755876210863052510937605676558423172423900482510633450346491414670000520903277303210110074648142333568785384941440542372600915987608455547458326076092732034915037668703438324335520849116972640044225774238244805409449137554462496339659329684720447155613722454934904251164310566828222736904965270153546677486935919575309612311497874078400797956912166620512100937579194563490925628803903095615801399084184702158257728632632382088659589225988382428867906423465359521180077822694738074738163645048463398330977009467776326192502036876590108629027932497928098901815550134540932627540733867113910571350353854030833429557158348510858297727499438692251111622310815214961915267876664964192534420824639919824081015433943551467344001283490449942838214494850294931829527988895706322812595315737993165124933161848248340000097311121297252465061000001458330868496285216034495019197298738112563486023135175881181594203479261556797805197119229985060011383546143474332741227222298271614520630132007256273686455793861674223803314611950792451241618141338440380198756922331829239957186493959749031716162784093497456717530677084298082404808742677727536796331328688736716252841219050372177810305538377261176466229617561349492346733519954025080766523515889555245445702043407761830428795108878358000655573612259977201484376713090885106254507658847809761557426235586653655702383877919629241554042329855961308240585999055917731064530453366698641072681628531610296910759645357595618400394508159220566618065149653444981946469831058940634768093755354509787036012586601537313735756576724537774498933112949947975099059222192611215775474064556485804889314268729392560491511652549126587365857216352236734815017964187620932473685275478204049409663892545943057773295008421963503472065879211107189770135278431881814636159139685839792070369763976342343237032986211526262230991386555899085682088598716235388579608415517193836721589936025285942377021132942056587856336268898727967167310884715580806905080256461678715286848180269684249732589452262748108213754168081840288002797480097155153921728377077783579531850649288102801960281537037551496168633809303259415608027597099653914892659944176043417227195026407052170250246106136635869052493258720375925403634870877966543129252107660784086379621614228033712322402351761462170198998041167369698647108387742915175503416999531424233270820702566087815275852398287929792698783053550701434604441264273656366673342581840896671338024943793447422424028147466598826547193531505694980335689801831780375606363543865569352149304494762171822324506769567084706612684076096393018425136307415395764208593728185302264463582223521656797242725645894390314902210148025171359732470412117275754809887465183701419139343652336349323717493829253350267671535413531652106763556436864801180634312896839942681133620087259161722112161346810359622501220526708671670608351645178246704915520790129512106275782355254227279364712864686474096275606184353880933703249556010350905628548218381485608905184344738857764309737767996114143311480041006601997637133100231096950517441264171547380828689861592740115648399121575353730016696043781030575300309102936114968417737221724392181611911512479177849023803274130166840106626931846825256102890155029452200076486034973685995437151787013869403127669571113232374875920889673231215633293532899034865738960467615576887245225672678385065915542677392534779845794213643533905294186565080331472776338701004087371760750728257926226717900823245589583498643996013972607094549373430458118709706943409799260872165109429292887707448610019690252293843388182925184535385044527436700725748334400098639804608511047355323743420561456261700185555627845952867959292899507943783569279724542553377659393673501388669895767361022099181686092145203436099930775711877968075034556223483648733073684086704644311772670223913346908751897481289963546195981870183071179094812270257268837120428094168872033134063284881026426954755509923503050705703416896176716531442645080559916080935094074655091907666098120152814308788637809057404835632795293989499741649280828525977938600007356369786993547964219718259873033077235044313538208343841447588089403299034518293033051724089798160947135713322916008860806841368786989383960891209126752138960585682557989083079227794207406217045586924192018646424278157770134521535514603909897773744136109478095557596365088939292324910380271901282449416740968209480140699807133414855164731991248071848850745930926223246968429656855136078096639827821786241548705608022585918356625357733805271631285230190628488991540727252725476376007253301360231461517089033807280811744012126140142772714676764669528611874022162851143199589664110427455034274522717641762379660049914877230883826284940732860908212983895628823866755502658611120159495154982595445913958467095759425429591297510939155145971306247023462831819466920062208210172628402063782396758743583840745006352180108760379738125316037866419680591599859278000888266017336094824762546012441086817950386776556227765743824491626409593271394319096020216709795171303946752713881858506727256718425341700097328493391743063866750085082787178245008674327309688682485893616064558061964531086851581070074203188378163123370306278238747045402151139600148914969435226489004038323737474186058381450868726637637220516698923039620295844412761466129414566909192483928262922881814153987551899114084818611584970377332525322637438570374616961781829211134780286197221544642629846554351400207509178216472909639581808131574459466817114220169048373572896662127738562606018390274341340258552998084923903095696456226196466193852847605737865939107729578443558983626853984653509039300721183910042934496329211181852869567008209018297817638650870857117185230809004451807648553226705382683738280727289822134283864654049161394699151854269161271355468567420426628010598991626629569247516353679020321873719377735932195080506496634874702211102894801502892660420149936632161360827357254405848480948894272293656055283952829374147183876180310893347002798101744444112377636074360928810687018201890125269283189062247384078057890492748715679422698854162664232025670344845549186719304129334325095396431266249484994157841225440118569988653377142574053745197433783957431310238380298494988467353488762562245303168966713407214051363213380747865605984693013447944107842913663080799625137439050215672497245018126428323207059494536491368137556318268808624663876606153036786418787941154549143686942120637609526218900027492039074685936929079956843629265126242748485119746175510234528879187350606239043354185319160520727254418946040757833204830556110600954328727124209255427391253482319413841867510219030158728358654698880270119509247360808050507477616254810923119318253804848030000579967291824887669201385155471469472344024088052863309539611691307648350054925696328562338586053917765394746914844234445293764394934508176660243523946930377329859795658246905627474406260434125442187714088723488619659793503837119674602224908409190088207879003025579024521108199270200746696665579326645123645315225365663173620172344071998297122124926360837892949123316735334342782131735695685704044452515031006064121798586012288880204958713390073767533222482561910902866854837247063759907462994965680721705223817398409530297557400252057238738492935829472614566250008879957453993705475418678832293348224811768133005809188240186395509181144868991720568239536057252527639050347269406351392235389244819188194767725946635846373461148034750579762516161634177004849595095866101241969016450306779407606719122066982172894827281028949379704252052251872676111306765013320489587010040901952990224841425818333705817309341824562887603336151438850217326399337198071933434533937681680563116084610912260091091790615365170140906640650990940560426611208141824206706276279567152934376546677553374179111203109489456710190846908595182454575616239280081466631952721478134681255962512579826637567929498467064782949715114216336939475879871462475159736568741858117601519290642359007097274710452241834094584197158135945487958521428932373868668636738565790919363915085148823641633795408475634744410345402024251391932687339963204732733524700024842868992088149291896766502962706807195457433400884922296253913828922186947220769926815538676861745454834520569103598842309644501386597972828667919890994008938483669537382873033999626231954557470093528059161525373376837686386979533711903774088166993601867209359149534269639340246406445379850960471565317689155609474448903021263932651103368445426780748179601982448589305085766234175756337896149485472166561996442006625976836364813268160729584363812498370338499328512728461725416595739295447882112906958027680020934105114567132389062462085589465346183513537193956313750921325049872732634867526318538231032815997683157648103309524435866632284190157949566174168795675158335249234366765935728785391305675515716608911487779558843984444028350819996332739360795311403051278051495671508405691811061942198993252858294099240711674236557064071960057745960465039525420244380453591978562192780308237338892461326804074476336175801396822004801761615544893571877852837056803750322659906081929580951965644994990410726734528849673334443407668741149842998707092728390228046997589248835617772382545643903035673823727690148996567734941715469537945831036524914746016289709036200264210634073344914606772606081376292454379699635536114732721279730030879522537685541360841641397195142843389968928917002200952537880082812185232904222498727691409881228352148664935475695844494903240494309803192859675617617018456356864615635608385537215343854416321637533085694134800954159100649203234388273018420303227544514191103352690804071460219502383040027449241345183617140009476986369514914862124918845674038385160479134831429966787457103048033416410344858004400441179056032443498499180609306507548246772413336747029589216961122716493722514232063391732332268283803092792791251131428621714077197095275951799744678979216613419621585980566238569614110457218269292127528768444789786991631735947561924851075162098370402122077840223817005827310179118984428061442974687058855567678761519356776585503782687366416904656497303114622839507054737093028671681986267711615017158568357327982517628401368663234139316287370575867431540416029659576163417451894380957558247475756834882394544374387000087282850626561288567202844406858895642736152179720865018831444880889579413794438212299325911826664892641695126195164842956958819912453821363350506394086219524729238996179133120003500513213015940870320792338686366322342383171494934913971542992910472563932297133385381855521507483681953189084560421723441058866004722400304623550095334881265630373680958829864825688225023820485249566685393018847802539248896504205230224277853289747901546536473712916855264807712833829527873935441230295023776721325215923830533330073243445913432172348392881560112839963275336002782211365530676758065272806197980753866756020289762475040075732406249137091827236568643418284289638863810278247812256885655434023048378746836695464651684009834840854885693202375300910039048834788264155097885605019210538973095797632005082449657478625718664351152612368105717988194830191847717030883433660967852700359329544933331141350358942665993106707627908451815782676856079545206138120682955873364349858822027134499221704272066024030754148962737636132778874228553337537121927038825861728446699655253770272525387740374019685579498329288110019182688220025847638969830495211542089127301128564151941581859362305047888714930499617083272260256889273041684944782694740458722820884373583276694336245460180549917729406375665281975979986753512308279162684966107298168283964571704638823592665972891893478155922596943073208318668694465787017131995894798401094469638639214179229860162244652365555506707836453479649073933986520994895350667073208466631666975642926479265233811420897844543992363541514593939627688314832953955459668311491334270691544168670384519397506029304232290753252200571414284806084703409293705186820681040715924626174272256880044351615846986270309722651409675747072202400568889655908540842943535066439639968908294361591820332282135809800217531860699369718284834523790414961495241636366189682937701232420134480308288710842568964216835186990983656032323312910392827541765353104975904144208956221948790874712324869993680457020840799329118342413645768827490648385536008227816947724640796503562147171644960410462553588595591345197462368313229238397715804417349222405703707881764365212445213446029826736614493795556209231960916573373377891432480862278401457858846928912076315293185628132671434021971358794723041696379812625388348047641196294498451365947265143933539623860813875936040531963537503161865938995823772196980506092188171944888440599974560264010809477475852310429642292806936375839842944865838120864598917587624452825089064806077312299834745891781291807069886833438688563146539339569944668656989294009412186674038460658382626139797641559176470697227591830790176811972520874567776246804153706701139927852151490696094652494905266648787894595149065214051526867078297880491364310379320210621486106602307612219544099513378442100066352642410656513567376233137096940851445208004415759173175186533385209712924329387982938583391480940365899256090367331267646037293871890952690334942515774202195262187383677026619393294874714235950274000811966981387418833375365509546588622189448440156493573674668343857293381281040097918082702463904837377786471255166187981784567553703761780737467872864288995948740773827698282890937355169221846526011629102976252393603849048676685328793280296573498825287428314042391841112423288253679571415810238558327246113711533597659083525857324398795329872365346929620965610252382808209476735140112958073970450860553589932148237583974223243758790406455414638699220880601842057294949915250734005239956326497549418462248601181489136803690486675747674293953337825516111935419651213888693226006803499596029016285312813242430770559107397047469730332074380087012504811965413561834043189163570333101616783898748100313487518910081992548767511536120279680516142443246904009850297632819704583067394172189841281288532318755605904270402253820849357226016166039155652480491138494848890697765349796382280761037271494213798930645365521095577842787524814804918856671128545619388676683309753808477928883115695212287038714592957388400824914658032779013849663292323557692132375806061686647554097167528618225075346610059547239085315486167470567145508711463617189492079455704274619056085991392831830965519751410553497122933937386017625458032791452725046796905130044827525233869663677226875327246406351633142092776808224930024195085431598968820956145188047337890304239741198091888644748561794038210367515500699651434721156976736708430040170856939677547744219001696852261836292912925067291805028087063863178239764206240522560065153547742210515645915871425675732220993078269285450300507928575849404387301507082079165450753923129871172671898118002435572937158300214080408452454080460709900975030648641685151287204899532046838138602466718481725159162212406000521315395620464798340624008845751903998856709743807250175906879181883438790630354516012264668276997176659147889813794589829542524564019922630672457138915233278823222824212052748280866577908744120753304663693030598050306505620563372639065890229039863248498190757503182407249237274487476154315303305885068014372015785757102520144910012761279038463732160257172849886889666043295003284459598343874599615834997802570880523996823358238271730009774844920961114945060919166004112562544154269166319711611715824915391915241501057483206057657823716486223715202224759237024404939723620896483297350960286383174961202181096629244014299236841109044257848287387999599236655345984844241659251421411908799757576281383910972995896707506449009122951243781893455275378431014422364692422742563129902901951177230151883804907108748377980534047857077828338791750551397318725561388610430522699323043809137206696109346033751229308388489898237921768419442680553952791058494463073734839745229281888089628085253855378574412681570379009874643421263462325417493733126532906708444221094653887393345565719266459657415582824882630141956425636131922492236737180111245576004467952247596029327630191092210510110268335163757253685083043002656250096611461922340231899731756186541784721794473638109873524022036340484839841930495423225923047820087829410335537223137916869013407480846302625333267081175718936491808432261104357161662170736888521446725908406443930177243370707421134226923038144211713752021181751508839157946384353921945115841990618159006183898280869523359991501028785060205818576319841311288148906357096057585392626708250885067191890966012839441212204559449918916824874410504423963310804012742546595179382046313032521857212481227605154456285441611654700650645142518486896540633077250981902934325641010067435131347212393612995984283551081481632098633238257102960561035076090565661683864821312108802852815371681634829791612911336615182507516738379162644477055914288596621033563242837980419064797906925169066766315501701232083093680337157366872643962712242087806294438536375619930862649070599123937115506771591992541392784286950368704028986901471702961096725455029381401266601642459095350767103245264189258822306905255472359631947064842778381493323904139082442477939995420682880424933007551132570882491201327657392547090727348469975498169238364078413907284521830603113370841813554260369234822895175796257979806458253818016217530926856590879565435005004574248500518988642857376354385647472316108477508592460345905235330119444342621846695932992291660975758671416377799582844102823744509246001771329904423399365323017931660545076391019996580734020783462263191174407127263419465753897440324790724314019609834831981671677189873106861750274786256338094297522570512922650988367207779022575549094122369566162412013181721268791624553220253077437959857929052469612309610822198468232595701678606713687203613607355207433638575889942247528848068231849089320666534579563297742057989506435002883101851974027715811460951965970862826641764534721451136747336147720336674436388946521697784203150626279729403989257614762659273615567461029779850543042197242724589671902732877610559473729879741670085705389994926423288304720745635182530563985917609463265348176235793921774218278103114861244961990013927026323781217296668074430815100233162057929126136883574596512076322256111608461554040611606542875057418311498529438294708819530431088335833190878488146631754612562658658870328160977245815661972990843052933173540007114625573179630284291817808275554900984236462159021959111787465910671841025009538068614831041717464387193786688398847148989493793312477461134983505618742523245327450935705332107402592905744061224559203124480864372876882548429172780538508000556426700989557801709231829218550817737363269796064968284343067091743953148502475554732672127809426452268463026253769266816709027425358124036021237317957414806337040713733973202965810568823221584555153956716050255168203321598348327513383253523050388733097531361313043734361525598422764492961939287285731777773649101107352576642516779929803346488575470473114576280554669441871929743882416813252802059680288370110914187155570285944991605499795178215598683887666978499863656932005737766446113174211058181971436709738040313419037476307283891879152835183060333384906581729307046963173399686348959802315571555420523544897449153960549508897147584275627634421432940150197563663267468767167140666315750972190006622868200455394415093467315421548276133518131882823739796770460556946009440770103398226243864344028325861084717206225768517649781964599688990268604262186100103854298073533400387138176963223071371648477346079573853831045411317435206746349596139575326836764418390262472013365116973465943888639314073632328600964981309663380688318998333929203812183467124487357134849930856370423729327901849001879503952619195192940477707848935321450460317305835422593520528967792102771431304435918789430015600716385467970536332469987410118866615912852924213112029669883860803700972138357854410820073542261957265349356085577721387675707527120146314478960367611802095779639638278020250069030398611578353067309655140578466410249556215719095706147669794181131333584170337800068850436671343526744649439028593322197592165043759694342053683784318333748785244436010786737613974426712912002420948517909407110339820170624293451439841731182680902315292181962414189289589134129855343175235380800467194934577567352019185452654847024558908525520372006545187541599988261298814696104124970752043794380107645771797923019075299134842001268275528982014419092880027567557638638065722488336558836454420897471519242258154395559880815853110517282397459503781959425603522823256771726747417566690770015977474098252834919908823139375694826924021656104506642159462358230722378021661100766727638313993133163440855449312195321406318536480098882550897194454532163860093651711095779109596611892565369526348629352699211656748398998872138834760241069558841612988399360612075016103900139355301925442657533675427191902684402055716474385963569190831561819341353356358595261061791954211155914250365037386546398139855068165504126661065628368626700262875299322629022596172481639473718528939020952315906612460991142660825326664923186655679023208524471703717827801932764387669651834116166119169883451406949395829943667662997738601672495223253829594512150262136352380750516508522248241155891667992673717790319339038028245540628740972603838360742316082469959563856713789885484071882228328714421677044261181447561362614059163734864565509034686187548147756176101112974912206552437619296986142972771345684959993977698233163686261173355748491436640150314228969315662088797445201949911062102488909767147423291289303195373213081723889457666080972386713504021430077249044121105371457671708888936797894839242041704705608200053414852609122509511793197055693373779969060946096908999000202021282839106178120274446636036806514025360125370448379955091059837731254599918032100905794636520781282177604684290454310077518604196488802176601322043960015649798987562987706011046999745494136972797572263894237249106707933337984012115822648174064575286532361710837359780070269067977591373913831348251526258405224947362695302866044455911961089081827015456441965442695728578704134104201047339592444575904019088311118018538649216581269730270193135563856676858092060383401480891390491683043725887930640881160892958049534824689290136134681969251995910581387306676723621260620088910892565595537598664035095386147731951577589560997335280265394723217916734671105310538377452159819562145814994562355940247708728932566950756417586304438311066760755501576763761723709695266384280097072035825966386091843182773446691484046361351420176407464709835658668375614303161793829156556337155005166672330878505320683145424501099558688966762182023934792715369297777995943281275856837475190907726501899138633772936332094480649855865060963142414210046081223511410649163583720046845588127099149448484401660633559215626983308332834371752568762971083977564448191576402553720089374443913389124992523453126115653177858696546669755152051374597149218275180809037958842816643612984478202667706043687451161819587788191302632696351037398261582986221730848508682880619963050369944072391963583599720485620589224746657160948072940107129242760832313392590799294857392742070054784473236720449761548683480030068590341098330518530568825493484424993909982577896945672602424866753179920321682233738629707882831039981790674843783514663129392177545393475434533740511190586284613329821768630866527502551186724372884897469124125756598982261210466271328209813069854394431825545199073931876479513531959529189840216968188460092398935073529028017040043210152919456488764963546850309096559518371436756276460862443876357530147768813054703665191726004877588024645824299507117402714941243535284491172470433667038518010066337413995057686629787404564015035265980031204774711866127970113262348276641665159623639080153599671357295608164203455832225831816652583635302237233935626925740392793298258846629551316290434495736721763800464796921227633597930209310073698840001005757070981438633441608439525456068408240851908876351386987299043640492179515311130575909198496450852394946856806227991878698790324657410603861665133355064194544296783123084912894330122669933199727445577270645146498714536001095137006051107609065753825785630473647775424662111671174986071655074399430075620311684704303220212903148554477337384946632041862442180683423801760768778671595518858987369257817479352231102123873326512815240681276449441479168092233449903012966242015297705871185074454293872719263288963866678721754715418411536546320885292061742372678855090492216456718274610862449050667258393131079100307620935025543469481260480428518158406943966619969112783360912463029133252256040267598585722974751736204699401188793826088949260170477001888145777029422334517183417362553905336558689507233040510014023277464242864082990389971225285367728804748453410736773253816049400559671982081745091728817523302702818442700464080496584684492774482308812500054196009809250657839652299102995477776233896521514148093771183939263125080254979286460463206351085202025417081795169605431467126582425154900049451323314184103432689183460268026743673568025727172198221745860838798278467963066881997595184904501502886052085066659504794801655643019358302702491182943038963796028923799967663861418903310159858648725333610321364053929078483148108691674717936656636839084781139194210251380146968249577586003349477545900338368517305236388075852339690971701199493576000300671628643897645744284901409275321409742485539568716057419075932002741079414043257775426457778265114938310080675759136986780091306080316605143535549931094623099469200987904467426235034034868413062985019312136692533804881933095617923597676240848647822711480756333462561544375630835855698451567543977847448006690560458886013872282159370946553977992060231176751530066211152889156291674454190578654497767776560657083285225593594507384799624412174269091136312032223482674590260407942617443071436449553358923321005468217205913101215308258621861111148661677429856102585109941859801962656841236758754971650261912238839689911307040864178502277595667552290478302431463645336200217059079366079216805535896993296457346250314612553986623652447896875855889598013952589833554952980615415384323892740487616098701271903052294165058649508220646794252928129737988650724558996328264666905646657776943655069945291716264518189634377767647899901922829304741160309965966222098532171024841383243522420729257115177182904324055815247560044146986779752263105181096399246394859718660398469510436079384992480611450302009196441188913994915393592054639738674343999276616027089212887275193167344567841770116941911258912649656944162739658796736563937127317470769327126979387246167451970888673431804430375486622307587619420003111942234099980196600575366815874232485785927267660158646060576563928089500286038940872229070701151961916545412194033831234114202734686044199673589891100995261991444047387394111135898557959540118890034427080169254753202788880049216807593781714483043067647159081308337743907686835550008215293064804568409076273789658650268662754662737364645142412206451667775042919974787138567564201961243481350150355824830375829261329697682228373006456194537166137322580226757907002459923410067063491156136920306182829610295106779180089562998207931122575603093948068772104899971662676632141496744646061994610500655341273786988723139719182874628448241672945498260618365120752782204973788883072108059941525476458059946867465544499557466204183716662969809306128636290277017815576367453085170258528598237816301624309842061083621603207762711255894792808767872113824608762474313136278769435290656041577259385013340806838474948960450712339185942144773921531309275273784345870079969475019499155943524734445879904256069455677932763925220180816399909538829269235317750287511447691172773614893321590155287370559308826856197670136678616991937954493907943930857446589334506829068172601672607571834503441307134631505505604841913579561345843466518192268437168076599638156616959918596225914684276280194964219767327050088729298905116311200307419988424880056349163088802853442570655550704080204144561683606148347781017220299858997919796901856122537498635655313557210531390452414030805862279997805940105361658062190942175762038035353839992603573042251926777363511653815689318733386427898142469284099844760046457809433097325779909221161625285238638115602470840015222928393012171740532469557242512140479036576050756499495188552531171461572361893621384526874569775958652308182868399177615389180849390061054212551531817076403194781835062461313612889442733981798950897196086756160890509212552123760874541962236748700392238538114952130098824335497855629733536502490272678787371911341288910303288305234746881149587775654467319447929980624135386742448621864132783438382986778361491303601679731169083973354356048726243614730870817583126623986595568694299459991143836431227425044376999419975252283508714171054670281044279663420414863800160521985556006767862943226170202274536448566951205989499158799669719848079296194237713922244875898565016525399824092234948644099739395102275008365077960396805026346932094307394983714069354730668855625172788410681594665898853971879651682625826137347592592821304592316733739766256527206481448710119294179962927174292555637191637227323131065682731748886957902773103381095536450056990138127056164027678494853802172959447562383619027239580285973213278325935546516834125699200742824502120004479731050737890092379686806022028524419220500710002019519211466623323754151016568899692579662385877784991888437700391051346540091725386416607904518419443500974642046074055569713631643286450598784582241983221497882473826284768738627571459729450161845559961884194049164523323160760111797343420688866695627033469794627159349977646259272885449725112467807811008338722141799583082686102172576975256078361385760549669036082741368022864752736461227709099713351721527644039169089382390043398921665228069283636374340848096218484791866345894833897992615130630060174804977867294767164940340404373168301028509401186793817989626950616418868425323712211367548266347820282264881025626957681022391354463036574074628644142872691817054287475067478062933488278853806584726660452869361853311237829811025202600833314316286107413567850153899234957469362530469607468670984065326067675191545488424871656906787012239675534559056184357114700782410483968314170286618740205430856241940405148666136395728301607763660224862961037840047498593788187950264829456199033383570780308956643148603401901552454091599295048552874166528601023747288472308824829250689280133425478393878408058559591469226310493055177594274923593525520319981931492280538567198431000005616887848353470600625129683692212047377460918494582007903860734097350344773813850903799055381313220942620890314387223818708435942363886518790997929082424329818645432501217428154607817050542351252381369172675042739525384251682450718227198078008895881995306130999422060354766611225504474429420975060108810031490955381015664492376949879018016559106053460379163561626989225285686002069817305325049535448627545399921367881092413110097628543155729579034826688016114416173159635866778911299823500622291801832516609283723565444051304792866007725368114485887643075712884310570247977044361050989419957359906176504064715114772519177011502045841337330351061426577750218208621235186070779868839632480592726138020986729238868978201103222716495058938630641013541268578211513718185945229928428547343485358925732926986667253751593251220891671402985458779272192315992795093594431179690311396226930616683493309157236138070109211761518130376957815867503414129499618090871182105075436261447750094334872448781299067307769349002233312561406411948060144384477399554680253738907689881940139932602776500257086577446533723331092253894909630855121924013951221486672262270339205850989424803967885362939600255124719402013210774927790588069596014582722402086987730106568810434559873311148908050120176528717580052391369341197944562769797664682361268393819901530641561313033386669567892904632595078914463842763278078876026408572155280286680169400402565308066393304609839482722024486237724072925799637371443586109800624645432209685976239216501834344112929579480286451271521864179563778801640825331546292368103951962035225750909618067313665850201045761807267095908511379991850962494575666574251093383149480670781815009611722425036147071373281193220492854085118004301295302308604225737957268696650959300266359388686587279847416979323252587546538171918018101237538729116780148842026433659829969979683762930958028801771249113871365096694510982289190781122444852177428201849759405486564742172704825723357299826126781307503167480920680680626954232319047429126973758426340858798681984130829558718115373215278942396104163307190298630459232525562868341989959446241126745663314774656914625039709126144743982350282191869686213065327892645697859298641676316040928401683186714953903101716446902611147225355826729133875310861470797778380572670613029912118420621845999449262742331314130645401360424587586947139868038736656214328009260139827934178447051137854062715374567453724335000764804708753635629428809875722898503441984079899912653557495907739046973674267319887308116992229352342947887298663766776556454194258527764084396303091111908147438970287974722965608820736959278510430202602968232065759412385179029293842392644364504701270907226385999490480778546324063989060061005568102144901042224097020122512334342206655809394840889667949696120705596165600667321916268194227562394882872840188646167350299110325379829181882688203109515773411525225041935922094454329214232591010361049842756412618071863538904239125537178826210759722269230455409868665389012318461377831517466487680211690248779743400623599449601976137484458150852626623840719314490001718595635837200118634496679849043608482081146162682940788282665861744727103966142806722788735044284078855161461390486574173047373896993592270119093913352646796576099463128226847061311560710642299948546883283990519690172641733545307883933259178073200919844103449596190998107780970486542131805705125807089804798138060457010185360351261274112153303986775220621652316946374422669662484152148019564766795101280401476743468583427085300033216865748219883745205143089025924980556655907611147108795139983650286668085224460995009993824052378126786202386898512783976869219877872763013447716691514652076872909088389219897748080865276868285037660111887621742687759065114304754361232114195032061186851568646230176485757817170592446671564157537777323720735743760867697116336535099387311580748708909392762698915608185285609057819703855789295428170419583505626487803746138301960254213694963420703992186260629120720726182827871363796222354416427111306790157096357940563575979301573433066460768726365911903856860593735859471596051701282896286444939298981760670313925943372754758599102019118523633533923374244070813109328094811685863216029267181849662166516660132573042040735402787158343015047296471304548056085609949262678340700286438303565151077686016834631680931836551216645514680531809904472251642342446398152411915153831502814626656433348679681399296788113635732198738894060974403082317713204921765338203153049279079147847202178747232285919275019365821675025655947286961892351732531487360688382525922086297855324915125455417237995231378263897411378496398874342057161198373309675975845565621762486630129804278408404734494847596797482493475487194896942850988170843802381727020032368871972247442514975798431980846479980595455317352297127776871455869329630479828444251035894133615463645358426697022030927321761554537508398767602961135007506477801423102429882891491402234009801790695384099398101948051403800114393061087192593728850979472009138084753440893758380558650203812475327521130326364432385612347899549254758323775688858066942220062873025470706577882712118319935100364530326082450708596276797748247015099805026355001452578014084782828126528976402345245231863976161001448660300619254197489553952192504225119254315951202338721580745695789052865811649909576975775435492203398477985899239086266580065258633937357752171336384956501375081634383475813089874407154835887247422760739096758051145129913718381444787506141323421410975953033881916527723091824985331759423823350820628048900019217974278049187234209331130107521386151920861973341083120842230259589837107432237742552240990187962655094803318293452208675427432680551940705369812236594504509756295385941450601743507569244290188269034420970444728945879865802932751278478199602174861425536848857986461050475001010442142442598798575701146917106484608211157295662572533632077780738855693970443073951678427441140167235759954454200550638087289485947452743818250478516494552255933854669409173012080847539247460223473534177620308368542870352633717539431584502995249436307915230251720284909018936403840195875648849111569095939281884154063252050183822248124347220897454358062888728745851771394446785240878107003435756969614356167203944148276980948426257561176363744191416141961349189861792591613821139954771146945798036956564537856386386792617206469194927299653657690120488494188995563571637894760248178827400589364295893219500236132412413744149020080384233818048113473254937086937200212122719373494185373443617354463960090657824057998560436850540093621836973623697037941173718775449519788910259340198201042521233778365618692144683493214568422488705862192756001141327585308460675858794418798582295553619599731653880518376429751422289011334092447794500980055169716814900502378674474269281840894389744402394909693497171323566412462518857571245142534501027496027921660677342386434883800810511778471706422293390109101336114317188309159900428438065264852751936182930314681827245974006687441390640789774490016018005731873706053584801549106451406817600454689237819958511905843330942556403120397412235030911526463765663092836811399118511780437582810130872115033901223296559990949927952654305324418516915030262475256456059536600783427233667501821484173609741818500906564677572558292474010777643225156537956458944096285491659622356004041408654480048415772198575230350366270718238946148302364536086838476679609835324090091164586518131442056890855932073718557480029456210322207207936875712895494924307172128401684034854889268495268385780679795409846456631445397478725006275828132714575834244937297742103847010906716526612552313412860393639480635365037793171951662668688576001502965171766876849309202686056743509613794020200580003483743259875017606576537977233420465113967496200073999522916168809150346697054388042455007096071328027759575801938592506615959360451932740897521393978300069071772413805577675283210469075951893541229886142572971857747914227383946842929720382208882058682327691947595561977754545019804440416580715900366426926130146357961053814617383212424737472741534917192918320856462172822604159454868684943317020588831276138003092795289713479589378375195245083153063979825862410075950976104711929422475548076941082812352860846248171754049938937828867470088924019315343418508568648406390847616664318413791878306399317760143966806439700334573875720561423164262995408215668674050421400802498803713861507064342765460853512359252135224487698359894081897836003757599534307120341248324162103769264901268589199529965824852869322651580201455732939516308360261239125266856018830835033755375376006332382066998019707069188930928022996392713263247278326643099378788478137763036254821560567119781783019626116358534910241671496218716693544339663201339408257086911437515587577424760251423128406475554469573308908705959684442188547087576150735055375684239233880312288173609410308606007245123912303156664524940056439718562138855051087655449484278273577034054952022912580549273917041022956356553783328385982537015422303339534466012977422628520098954425642322804068864368681797764278737440591171650372227773623882562447500314253629215119042659308509023711766211895547669334494760250325598401110245391376914060291453988979433634854871022538619110333920709418772796434070928429951628368245493650149034671120343655333683319505631721261902623090313893166683149940678967324169929272944634538859928600641425637726671562445581547819856884816784379042863045490498458915718415015791427923030154918565324195567492482206132871072967473740372336154761897639176640877623385419663928908873790249908216504068106666343212779171870418970413096698095878215229748871708028909289159358940200367792360338313590519967038169428829524146294288187902257728633628930448793389356635675646321772655059379913339665599434571933934108645494207333772128204324064146889363325528481017387958626836448741005612109269858396174289609906304163044639319910710986827883989766516118458622871664557861274231105041838804822779314527519125027643966165956996542178492803888389570172832154672048682364175335739718689640550274057111658260921407490288972695911421710115595601924681464666721119943109850116180791859344486305084566118164817568108984142028610136785165555030289541951309788735426027373493165758681841907574843171972675134281163324346230144431791507335686710692612875751116171023877807538174474725674894982165450387025358271887977350869878369378435912224420209454874598719359117669390661661185775706911045084778002972042248807677059647159113647164990857953095395267184855261547201530663684085360444306448248847251500722014298670846996722102029569068272790966215686442983504708388663532486696972859877457890282332106518843290311905292185137708558689349703579422527338021708359680886979699795569333385260368712013632939890606928512268603355377092716912865635929686995551449844532140558933679390070878719284516777901468549867652633891401434429275001758850386716546524529556708379290489435848431324709150541603972370618298026138907669722356133225296810430008515114023413043647041578936102819443288713769399948791919533546621460059979132787138278361170927883870617354025230131769325511968405541211722124609280931232576531322055670618311824895181395978154659987269052558248874712158709421340058110810045794315023099795425084442377061631482292098799295510659935196623265191567573179801947449869826569035591262532584355483141429351264863113216860953183393943315196452679710814260872462332514030019915553470803906305614192088128291167407720362487711150523015563191914154385845209453147977847028884875972108070865208313105609027871322712467353452930965852207568058948772922204211344244710056611416731366364994549940769683553081157165958865524033394786357478119222289632443500746207401768130503793024004853473099730997568025806459855592564035428149610445639284878504635148538579121865807242744459027921753842236882049717789817693905439960938716884601194664453486048460759683743942171230521695536293572068675525168500594766434487569043483500393838158175674721877463363125654024811709934309856804142671141213563855453871070240797010032991151549314267770134824037670231720465991381916415951401248337142885487417313468529884212314219335965742667301002941225035050156348769621550559326541846872196772101651572567762025915549912868207759311096089030769504614485306147772752286363841140110776797653217697546231490159488192316223056676515597478995462614750548912645089749447794892608120755668025619719052807325533663570623122107892495999383592751685848433176414828704796774394731438872840622230243016149280758851339653104804099358192833916531507448196729310771672602379153198106496801598374944818838895399110344012309664110183067196178758648539622127276214463842216977262833286196394215876844441215713810389842749059166428528674153467855542790564726700673849203912624009936318879752645726550422928182733570157187240079008318721292381395982226705296539649923747254623816466533541506258847652323604629742672410040923510435097928957685999640332372308914143805706571102167307317598551276325792073678830471789536700409549353759347526589517100510741808791493635795153394052212378936342299956915836865313521556688295493860366544083706710684161370619661251825276663961539214237665556121343098709087358444064937102296796388666830549574819682751724343375046201429858231003743320396325881818180137565637514408349480063919252097037438363751716439745411272848967976236680269077753210324669805516462870779626615173981814724039031254507217370195585874044931999606600359797063672942555600892563269404702286473940353126770863737635294717290015849311092596030056747045995952607294972221503115726742713473000160321417541609434010664107772287098905411682430893646644915725344651837232823502378888891615748359872978080552249466067008343714235958699821307093994523720181033456619601129183810407032928777734639313033987936409913611071621162082551807501166893537163244912216646440517957773664986099740811651257837148370007092864838570420450196704985380087790886236086319366729246663477929786035995130827105873702524438403239978339239270684505753376778134156122417789396944804199829567458063228011693509792933378952359707208480125311168251715213736903425590275332269213183776828535113218133252332181707914104959730213990951246672522422307775924823792819607510899631126270481423130544051738626298730079629337541315296488790480327347735523042645055774303030512925950139006948333109267559548789952872332652061624303841981588406135057235573616196895094190860454714369548059847992056012751632087920083781343987744144502618113865525779196007231994871198095028846034305640031459207364254153089674952475701199879074570944533779227559472840047737960104841122613668643116518213381309704675549438785564709204467901299017606369584756215668438436401975269221195036292115086032647268246027485124354141101541474603873050497209934403548899054787790778239530432927234195665574098728283339935922127995736694643208787652855792736413003894504275868650223685236753058562235817920987762899846714611504318965052476972477200703864342223226522703043142949237835787064318264473800824516128616800654782728139605838489651229293204988021210064656111605851269778168080460740353275672638163253730421464504545503773568962430635524738540313043041720309613760716406497151497238253464583160782594477257845088199634924456207240381940979630799146572275129165011630632516000208570142985456287520991390603325154860303909384629603765278108090344161899777205512833136450226071619019944085368302387888012237784243153087710522035011316971142988043512274566764841391395722269027326201091485757531182546262820044806116754531602620876776315398009730934945315032927509679008117469841953280884119249245955967838318651091213434876573079244747958501862545478432643598873656560671709943591549921970432991458312124087461644142070729143038140931432436276683652162245942087558668902095200907445461159888765248818216486528378108639893548072035317848689838940755194363555592971121330854433672226272928385718813443124810249048996840031649553149594687198249380441259508354986048864456053573652580246407233562725632983642065999443627245231892578803947877241590955127759424351097910550966442458463850646037395563794333336595871244304207469177455632920048072389758473657004029503786046197876104420445249516480107616161453269200579830547745731930063750131022011035953360981729814993543769178266377815200569549452693840233192767349308813694913849930784891205961008213501890469562410012438159492308270700526792899889040850230495897684057093349865876210140764057181620730086462913682768293655675840991762012738402165214035618132293561153747257430624236712407253028117299838202762105618701769350770797788710100301654239759894744519444338948906189291225974674329900319298083648950067952902453288540586340898438788747853224888189937118593777233050838196907553852453272917813291721822056770032797183484151524079813427553648013491423897945534021927165672112612438918719358822370609627041209537101797093339956573829970478954811552820661275672546288026163016759959480398918176680333194672088287456471351003132332361502701256756039495817959840591404707984375203765484743685349951190333762573066283075745469940382169953549523009427794313242180283894064909164157033024755635440570837099049404172224518400179461464937649018619177687531220929137150952508793465186947162058221065957794124569386648385067107060645894461275537186558172355822661054652493988887778411263259608283726070068953594493591959359533847185227997440703577833069162328404479343627677838964898849291573299010748902395947647873673979383537680472520767084120993151652485951411353854065913176163861366026836420646224450353340213050926540119471630988984213920923653500697293204272862185090463486513915475743781730783564326051307233168715533616393243117533856115428569401233522895886673698881865576056317756679459285383175412096422421161241103431155433860341080000504117060093400232255279221569685415257561844826348231797664925364341633927513659292477876558492852236491921319118416921166404942458604510199595697533058297809396230462075143092756942480164176730706861874871964255114465514648104835480197610740944152688810987717888721090214705605392359336275403660614209773033884351682651404791307025465090151218978188961857087505658186874813220104214878736881073493399200372288003710053307732069090662975184332160146839135486932867454725576062607469926900901113589032698220971441848007960443952385467009863882246305697910846493839396736831205028353843122122025994190853008224183239451864259831334531352386892568642124851971811375712183941675855283736405691880211438290084438571374745527018480206918125881559816800566531076499005690605123236316864628826475348102519654347324771553563561887758426984810868292529689154582996224888106646706106238591980404613188906238164920623319005757619397319022258593767887403288454889738966324466427662198264452920225841816742598036475106210191656293077867202081700477550372848558679748782578364767533721043224338606520929050580613869227508754419034873441046370617355843321897038638397480093264502227843148095442467305622177394579471450090612309643257911880046521546614666283939987423784945595933334488759579748907774167517278386866436923471328665005239274907074223054854700209400769965503133544448772100847217080666464132902724319820558052597797265677596354980633428127738689139274961116651008787339370428770305399467618054134239103283066180006194718218656150490458206137346454959589206727705176695996330576872009111051748743591348125494572314299083298951683711541765884192957620842765697217717083603370685136515571846950419829564556719044055701951047370132117151159221797150722758418479653274023213767815108577998812148001502756651110927138942321265857506910453803007063434843421182584698320178938485600157617504640910212993139374405361544374689177412820801837594470826463628113228069566337907483076326284633402598765616231560522800590483461085121819990887453698851886108915393466679331247125947281429124201405265194207710532451581306411894505735463093351324682924228591841938617952832999211214727481216804098906090874465554885095934693693267691772670490153966762552085351775326708516646756753349207672971361501491612259870618952277571300320547248688036810454195019163321764395103276407037209805729976229432562758584833750982474249904951697090471621411290713722772196737424052688723698845936418479066402193177159284286410006745784296420236499078537217959135161322301106183315325689816702030192885446551111261541722713117459777780540842800466025108027945478670668662349157607608279055152406323309558851457812471840030679217870169492770583019196846237111324533922514732811415077619743463264476898090588610230081668888202380822731851234241510943070003994666624275736205801091672429637326742288139062830656467058054761184642450604909800160695776748558185177388472587368067126360357814724037638884577882419282402578171944812082046516610563415096153971829282034467797124438993462409213979757973413042771074504254229003361817268816176883365324756548217633054760005890128807293132856359533554147191681222193641876831441218425471209865445767337826371594437677321469957493062477849789684772731255523218162981609968570329085739846071901084201544263276823721874584963837410771004898008826149099294347099632108549760489112281370580170951206725853678562274152530073449450650883487855200997956374498874781671263829872959053851011339215456863798825889365587020252834513261808155677563892644325578341093332562695009763513496435381040826889797452704358747369486799833908904284804554222437947391811520621776529009997603206399256532714292040089455747791208804287128431192127420671837601905890872555022405045341906492387444880038113368620076454702049730907158656976857096767236266332729989850610654190599872947505036799621423109554958999167919061971332992396592908157161325939775286127550157928293227005829515136693676968844355175333308811315610289046413130002806067427543134026110944544826804016517852679947259207819068234989936780541432610158420212736906325231079747551005344877072259652674834837458218452365221600888550310137525986744565213449052673947269474934146472024937698033800323152500148990105914949981872871405826107403856311165028303814415794603358602926935396692414698486128122887585532838052316770753387184086501774701782394983039047989894189549723781610467787693878043317652413085729033546003936140010047124159066508826440382934854367267585909134277210822952422243278834207110531683665046492464450514772189618934940475061828698686366459654107459254570825306633634627300617352298240540961416529036064921164889839140368909834895055502545527564408592367927449607956590806342032378548849216433331012612088410399578727394004225687798480996002440001382411202775425196881487323132773890060061271306785760375266084093621880692604130377262584565151896296912677626221292742428210415200347866777096489049710437026550480754027746967396602595466060148825847496342536850444414808905855429657899672256106874133745864637775712082545860307060344888741850304901677402473181541137973700848588944546014108592703533428783906759336067609640887602116777277173747762256562343516640585999635208451874787795454236991229966275828169166746197429193665239634806462687239671470983688397199037232345845765317416040312834343400975521276036876877341495780054800873721706953200860012240122434103769526736529484114955573502936781018181090602766140639310224593788023947483927373344415358517137012844300488366911497944590193609918822156903037139787389399737905344992853826810543532924237429218339204515484634708451496561187666605228837777296710781208355851974746728318130331816099595210460400385753649436669061695692933304900341744032946510687277262255427762805131988048377370147838907861007559464178862218863565902215521477732827541879553361140932288442531481705246577517619943725804975069514922153360940028243999537886877091908408844533854443599814522892045690889974243459723346049822593301505755930393448472667372129921135835529228767427136104769547159189610163978891533121250634915702002454682364802517104111616821451527775670727691099984364029671975200679560246756842970793242619485500966205192067989004932155253641551191557291809623809913535287933081651171413600737703087972939680231393887974392216106737218749097446994035640920937978262106243109958014536180064997280000750128997073025328353236064657572290157628205070200336139822025659597793963651718839191003237166143276281664393202031453011592156431419780597486977668416577729412927736976849373601698859268611451223333031841368241175246796975203317408582206475096720876627972425537967565933190792697107166223936451034914200528292001103652662432140565359159064611079405708712359753306209079163497333720304743236109812609781343758228841153978273993066579089193090944036209645454799478063947905982343591171651702503977051821670694110580795089323042833423097798830915333416460237974603768483797372694658699765255545616159863375918339374943929686691874114632044307860963221001438543393672912374937710637946684061223378691291796175414265419204131833889873434615448636457144907127464418489892127994117041405856971366463757205400360328024884228931083385627999792184813373437327629522730920454921564037272859621478030879465268141276421905471970128381951624650986724495451396708600438578007144192512556727697850512879188457328770565888596713168686218949147651538573357961591305286532528216828091668452224236625614632545944533453484665494398157534231870594704727146699625961638565613791280763269953091335277856143738101530265053437008998370872909092053399837950316724085336430320999124924099872202274507693483416580600855725845044300918756450744412652341420463787718202006681168221197384300686640340938706163574570913120636459241034167265093304211465704044370533490279576163535845781102485917752036317205923081591724225630022322056040363444440793153240591035783814905098635983631557180075019260923183713575356464957703906269041143200526333585194494557710605108571749798353240599306598830666054554763478379378898781021077386245585699501467362187172939550564730222197069922346938683143862073622157843872596206155682409384469360134104572639063372054134270893887424442223343414284444198808750150705478038038430424318355061655252268847450211692048704698447674816002123345644871358955228652695917451286793748781596605813172229833799045249592803194376564220051025365198678442931853657517933298610380197718939136938501237269664673456889445826755201462318371491302817343408622320958366450173899460189599402294508053438827504225931262784998177714590193365144383120510354668231910946133215558879254400920908232849007237872290779780262566723145840384681213969723036346273967249709845979052320204220671475901767740756046999875499757861548218256750054900474347943854519077904484784107360662828381768621211387207758006617494367800355160360329076830224551592158545997286714403838012095384392147044583410266188532936725669953628256914142394225309926831178113179613493790585274363218485102266509731109848697740229977820836043085339093677879453636387833050538429279302213350297558606816652146593066333247789193036335823648407593369930828748641548396497904755898087659571842459384996410313770901969932428947179825478121210976711336066593946879772143473679565770698821332998553341375926546773592664470507292715575973633093738947428826279049061215783747485217453545712122802979868423526641819168067213370326326291861581823673159788558652189593759409005515132478500210090238878308907057090455553720184386482859958215807395923957618495082012723577564335532115065092280296696403849146434414628583631066124020206184047820133880538201447393409366284301582709036426088149871941568429102011931041228224598858170700641995799834434865760445937552755788038349803164386717502017568566328306687413500933541454860762904635181761571539829930368593595862693129533814209307858095932594750653027290353750871796259851632754681649840324497791208597207562948222645970869470832090516436712248475986352908031690216716189621954995593257773920538832379915728187074018527898330186381650799110376217134100786177694369764238189558886424063267118879206837478745064190751669639513838697922385981976708835941027814926637740567358332556830062585521513969664855740163079171667367324951948182755131011106566717191204835545729209510638752392481843638207580363654493251742302393695738204799955021312087729786952770213782710659718876488818208203932535397915750592528024934952333772225389611499116296267433363560260891007111475478270947788290856544245278674570684099602673148450212812533149847194896134121614483611073265723106389434528548311438884478609122111342125674019233409916426084170510334982587114681860358784396148251970465753771635128411012938810312147122697954522585095079175929541609911230725693397253170154022573701680241210007994365906386140489571259823658466862991510483737520376765635320681601932598795934625659954190257905327115307412638654896765102168386841827888426453095691519492589520873395477029328839590863981142279458237876545601190974835775586931440784789461642408850820105689349547878595892347545307854393372314765131270613135190372959894346171240118376293288859826146910032894956336454424196567010472202096640981796014766306293469754297411442872026127980337049211139623866300287494093349490769398961921260420788031173628943851697280884816279556686646586579960096326610548909423770322839443256934306114372988671227311229206192109730785280540374714112725118500067062930323543105250532657305445610279695326889243827343470651791308170079542767519070272650127723800532239190376289280566518642602566962067251019623859841600967864737559018501384607680962653377872362375205298518042490105672580845014294157323104748634419940432285202322488266245987890091365229753237096882933816083737136986649042544101005653300809535628315177163661695248628932762919234304182164287682995706434795052134049868463907609190175743838935387448316771325454547527453645182361651988566739000829273697028332083544028721730576202315063150024485071874732944761098496381880288192006330838832946927782161173005151959767158088954027966287980843577903291254153481195794850890887955452850255569301934661387809645844623973657413917214085510331591959605149691654526950957795675258933546393280399153467988237778897394893744704294900017002068751558957051912443822509756062832785778546072978526400453014215643011684495711250796085580132620264124156934308543836267501384069761614241890372604061609709137559484480866090131433827894240903613879710069106517654106906436660705211161472808361786770301071541835361334224605202873123929048674023907018146294782145950833481059189155281627964677215263649810697883372358909372064534708712266831500568388592169289720102810331470856710772042541738722082919052243075302361924749829507543132429915619386015492965516085412839935660930564065008985682437460384932708173882109267425116390073611659765336842767935732588815964198849766781449483960775926635619178186204865021916721275853033428309994934089249193062944774870614335973926803500390159349378595706632829234392054264024101184551160640515866582355213986492338641167897248704911817106256318480389380480769242502593832053157643275115220785698536285293519537788748937032088225883415144490512188835023649361093185215181592756743104833438347427001904282504484086819269184438936115361506968121357151743365317203241126552164263200066725369255661460841832191397783064502173010653423745536296049504199745803182308006397050371531314979632946075203613165826175457095166625810569292018977109146009329715436202472454450309342645338699157893197296789738526546636251405493689703611024776624501841474850707481466697475856256112579233373760505191992915149556736539593243180115013862712339784534078655049616722699495992493345529196955483577078843417011767412354400289625903762185205619659278504442404832715737290351788274120460506708076469023272215107455322985103746739255740996012856433271308559439319094762674033888761895524347786262382345643949735585588754648850285144148655107304053356002005110164197357121895386114772101357702847205917070430878863254273589774364668841611952269759064739648682894726365600532254707932630454609488825020592048308146914103801012353834242745179445152954295106301096834511301886908648892519421357857196876272379350709772680941916111473148072342963038931308660035552070468587612424838155799475682212075208692236775351289258913604440188098181282201535426042243117480265505780644578629621496998465568283997953183370989843363799921414113545075688017592347424777363689582564353862343687477590891078283813458276842911068581654689306436342531825402814018576765228816086992025538382907101172489581539112265802324596942823801596521285865658376582220335790520480917618809660124714523644022596534653013301924107314208980916218442495951021838152285716996257197171094817377542299978891295808107357785405282089656433741546265971201881179920595975411131338217988224938946204388532054348360539846521085838586005094209503732039541837119842846175445817774841305598210690481210885062284695709975255928923589653467955437234355634505207364154960132759158028265131669816145154937188874240665984023047864164443961230336747941585408092748294270186312966301257535307862975838881224653570327073846959568953487470249324005608193414130881018419869934563915374293494362074139967700546915526214412494515466767172788865874543508657165529890455635579302130182720954031613649253223209368981738049490969277337801628215096272621949233311521489889488565375799623547837050563692861277785868216937468679650684877098655310022486373822901043449356782221719287660626127279063289062708241592224899332087961336151820740086724052992011934458364325249332606292846049559537765674771984958750875645099891858924095980370359521949141380709124566351819464011087899297624631303223857216974209577679942996043279503617486787842388838464625446096456298875529383223949617700923997201569994879516276949239221888854013322730546150417623836891712491652233725664314020530629466002913512476599592352919417556733140892312503381538595234818758604956118980235563146992272460540324243719489127235336634059759624559798156811964186502462615347041296262734213579887604225604863305720983501801823494334504030152005494761090612127246667373058596220579964392521103761556085851700792725215242250693559929073009614484053189372767826338616254629991777032064755967629423237101766132410701969518005492940968149900753114101969403914691305619440295162343080438752356824839787196539733634008942472348351633987921305823631319610902549724944161634672280968575780840236842560848303329824314442948120919218266561963772328502661540539288193087839497649584818314153828011977573978513501399599945550453853695426440162412914036757847964797539652924302681641218478466466276275360682078242657205717819621110259971084201286697080884285044646203212434507863816893054231255127895327511657190125124343158963326411543140373532088429489702454336692108975467594187038240173453772924674202659348916093665533278531597143411992941168750386154234935944972813640742637278125321615456250968469993607033104591204394364525260097385004901046927920603549608533875723822819738875253991570678605432670073484625175457484411412121438000098559479812230251678648632229737819277052314798271997924147499495445518828482748801605487157837737701330453909665675957334216588051776377136244271518007515998190626497007067771794933766213545620113492203810143800741450522506081038060008226502543120278138710947476259862605323712259219279884261971774125003959148404593088300840001907579281004407928882283743996021217482966282098762800411140810935400370539803015766184223084553794749842864025857365302273691965748278470734642934205089961437877208218810655462109701870740533468661235992946144190507136656416903523951254385126411985344312076020404633926364035648811534748720595682539905151639354801673020041728401003853774867230937796151587771543659307099095539342616497490756137175575510846888821242811470036668363298834068816923125678978469317126428400519308179556759831215912722776442915677895964930463319557181279138109497479435169942985980278243451984820403519178874665014691378793571647548586234912337930419665314355230982939334169634805905431141679421264911167533861002564795053406249055513932732029056126445032843286545868359012961327822087211193792907982657831282704076558911142726979764511241405909771645923501500690330987051289706235215966770843061695705915822973249826028263867170011586332026493696265257294112535652612875214899467983810255827114000385110784844327041351935609674378481840958227875722342572660578459438774854768944577486245862584850909480122877439531820751587550498113913547046656090197303062090382629839773405429596066016099411518045989720299788319421720046310329553929294362696358270338287597845241852415694642030009012629923381116746927957330265860607190390449880912147767727900860218858643853250302468783577218254816135747159869080720335640675961506724213771704971553791463070021229843254309704240249709619498785779129597689850000108196151245360031767446172496184077043309396518993325239627740485559599877381730013101283265257501355648052771534706045432315970488066191504506169588708962007685642492733077045867900416752912306995943379642765126334760174588742355971524983837701787565557413941651575252469056155377070765792819507875881162220160983229780243510961793087831458408876471634871676038478157783209218436698604948418198387774240462720788625631169572272010983503485930195995471618896841683121854090338654650488609293468564176827443501272725813260531055558211399229372195577792911266909873553143020747056249159560200999342248064780971712213032730695982425158959158342600977274424202191228121496971713523905663916250808585099227326576840017764263454968229364126640320664716365581371521877990958506587964411999438185695828912270566544872716133800074646517600645888452091141201622676047209844633585786278032366898180271498977499927282830085309982713545184980363351828505334202133663215796618074288201674151540686147178415320990525670372580440778723228686442783394134019965819008920951526177678893708164393421331382314971295349314065487894316241099727676683680731806465692892708028382124251715853513982634197734137329174814019006310592710007804183164635645926799156077108313604020419464844891569617887179508843670370508471133724253655496545909151991692989696711894562075752560138705923583270653951551465188526393177079930041362440174803675791887200911126367663734278837542380006048516013948784991688728784548633458687638371683796195655641462306669600080523061369062112550164440975560660052424657361328230722387865560930461992280498919403101223793668633124510461474131712362956679351470955006020196226141603041244907996221775390361631488989280322350842486581193328153168910391178239264613492373762336408815573966686715702816720123819008695136914882588158442705500367967019754860821495221984149990000075195142966928378747126532793951805516158979027123561652186485861966845271524247465157293847075672495346744447179615343824214241677309609504222765562945471786985982491244146154572631713527338266228614833044320832494800801457478938513090291935191461418199780190683407625340297896918657793373474620688262954308348527246550857425104468446073198881072407097454196984960674711743728739875975470060915366314041649289681970473143368623313045288655204651024416252030307101091405128059967708580169463532458749266105989072949698665513566715859828818836649725069772963104170224570665766476967990905041407608841609633933062788282398922497888738879972369030707483986184109495188596507903210175068044807528614545508751382330591601188013472067474313934702209640828726899412460799659069646334265070330878946763627335507445093522208631211271858571707667216830412118679350747432308971910799099348935650339653526433697786057602751646285751392855493461519204725228309552416627809763682478086788602232928481111794819540573788643562271387834592935999762335226598891757730942264946896260123175666806700282479788448298384392052692018925873037091619520461435592140711111043017239972590295045363847045957371573291772377834126319997743796385527929302860942395122349991144838493458468927314706869043989050613851137557470344678941009034356156556375635304242856473260207473136617160508924344937926191823071225825130984834038550710303330810347120781794933100004528431377805071164926894838676696578194790340576164348896987092486887361985013404719342013144617102016247864250822408487746058070433773077954673971691275942766303007892917436910162716338798619365197875514547088746890688945403068903414628746160519959140985172930808566851319777723903993521388661746881379098910523725180327872992082454565997268050903027008440077256693563796777815401360042485387567720099476516871236520243837028158406197571664180124603315835216501158646838432280912781780858624694400125973714251362907072244419179924132565202287106401735454039406976901899173843750053008197517130239471968056226898861775315604218358898604676479950639047161180201470207191233777312591950481419035351169747635959694564573929906870782170238228957443306233532971035443688151160260574334225500332248933835658805516900125448617121264012624932438096664853482948895672706052615423980596672853889267042031075645451895608429501542851468538794118337106805764460806802452317322969057806311532765462639430437131579031652554794053679950603441487909962833016155362751893052971775843636709745882105032041629398923888538926041499217542121977448220646631517291764145277841971515640433091584280982130568686422731502950850467736749773127490871872226482866659961059866174521841958356318435055093496677550820825109001635901576391071306165912160159725760689797995667811307966166164786860588584724786213436288157225065850319397427876823386666798760333424386239642656129529207691815679536796698190375556619433182796790347483764999081212574356110316741062411422114006015350767827262155354534386002507035208816459869751828879986968451232343945612025484206482124586283882923207318547297351746111624919769125296727400032482812176130209379641393625681622710025134993958590637462708256860996014247830987672582964603153689725780274301135095621074995612343713071092454909299901540618296418408991760903760349626061481024272997344920028857935522557253957631909310432194650253022246290821792753733973127096333363860647687267363152073811109369258956347588825353748081244041953021271860739072891132674001182313744442956839925057451885214992291097598850234907832496301940388097624072814724065094081574706639993996607428121129174611030916811326574048677300984564270203015070716212328033625100521912388016993681630187402606280875627186979005978052857698813228256267030611260519728604700323774937551242206691774016333209608498712395240575548812908585170483958825987589984951289801626437751904183987901585139341575997084574081885952702825933291054012288247361124696916491179083674644439700280883030097280456745071670638962612861334752908933969265643131404128261947002552327251096141387186349677423925147196770023595612147078411770092978143165070795050814017503141168676529840511037547007962618975195258311416477352365301864711813867412155002138610939877739274462814235266748254502004948628760793331978413300780681332606301649190560409653146875383286240861984876513020899213085758913306407642454759787290045326457909655597119643961244640489374442189428881435915424572792751877649155468001193105536818582785770427359173900320658958440515975062810559177083073863067396193295986579333174244278126281287216619948515143081133511443074248219035216472365317095092568075008181501943989763103647881626904492512110173954509838234384211506759752512841349934928573461717211230046695290400972475077966711804976874661214702332660670331595726861943023958514602915384592687544353102266005730809489420350994289489585639292444982773220501604703600833256436382361113675420914668723629189811906849551141706579839349079362229601376431543115897277074133091707408504047410354445244164506859845281765661413094923735970136930275004673641953932081777689430917357519263738210060254577920085777123487373619783828913481417630275452749879499445245373412553976780176545732753450971514680596805599552984399057400574477587923238750591457331299728448101872865690977791043833983839540772584274978188255638917155830261784003938885634186540362908913962894117075103286135802406668350959224748968587493243787050926893643297381988288054500077716775361119888434923513493669829383314757571543455506036319118092920530735858437144764064310486100334238324506597068307993878862756384212410212763123843149143740152273661503250272781094324287833910932158161179031835293691285497845666507301308179837720022067809948040562374509178423231080666720135483359183173533067524139641671391782987747128048958379101816093364226120185491546900021582796337377326136771746381679787263290396694972342624038402546322326915419671464131630140840395733832650239395264734696730327655797771554425004292046104651327124254733203177445625374967206623821847139491656699124965808286772170655751378044230606657441725477844637216730359567999698863713014382907595100398048111592285528639880340281396543981493261275447028583873933221611947882171629931213071437581046168738227783601551628153430509173684851757348983212445519896880168124293880541450651155169206718375953030666090938638084020189761795854350447472205451918437199870518721470985773067686402590380459282580793248143998034689488178471580333461059281824386406950242142032352316279694064519769979439148411708683319418920460341231429098753212415385765657354194820653417634486176575174257457103272892573118681069247631676685653131821479296744413679814163513436402109858318207215690098324229436372887121082806413730526331985598701035623634812793116823319176095181025424170716869071560330515564734142793110331917742154631699621108262162239042463248154165977899020638206708418554986140833816412397740020825350147748644696807092850641517029614723180722296532298257229962523324535558796511845823883247520434677050551359531589604138025005665115495626959773569520143509435187931035468555112425041871600269712295719567134027310309348396159867830872704521659142037023236779742549602328101632919457892551073271462745098467244027733210731707846494478335170674510836687381181438318428259730182491342250405604953611665457237148805391735013275010674183835919585613600016940786627926421965543349948326150986299678955231405374166656784217904534230794086448484920098072411600588761040590176388704339399601450849493044136295728469997627709453816678940255701469021832071720378170723491037745913980724291520610445680901801885218581459799261437940199187176531681110813816334560483196250825757658359131739373809758964424917719915420221430463554209101343450317768939884522284263694711277270024847820835257441295213138524824720683824304531717843601203530088918090532587483277252178378114139614974202785044342804417333458227507558541047212460170313437086247101937467722915248064435378830369721687591962080597068391219345241064350209987252967740709795738550917777765589461477906406081631626048065188918334632654112721770358469292293309554020733366024825520935056747684490234252272389626659141820156814590870413622821688792768227708722228570231798809791400117867923754243389565841915970635349359349936814146039349991431931367567943033491447461817149458617439544688510472439051334205024205053838281901709519904301933207345012684983280446098190687551934402651522622339421415223419393076662182963448088504665518814942717446422583193385966143542838502250939427022215538031970869298997867150971757105964857362842018546371682009530473541867857158964294231313095734474600045508446944569848032903500262413490751353917097801966349587972878669086861633679610331485447834181160022790284351710434426062458624966708002437271936628007799980118934315518538472221308903973649343771814307133806007373901228763998204199958031984945344485302981894521567069894858047707012301339240753685329140574984452968208566862239278011414361463438574454531890319614683441121974231939846534458529555253194275590190492455441184906641904340050740778347332147442593454541051253253937539245551091238949721954225106819961282037472266248427103401893543451012260203632975924225403056133724102024325924368050228036489772372815114817273412649636912318808634362929325101754699684326528770213164901779093072591607201434100046878530846990006536861371432143318033071018807152836450203066841811246172498710413478562863037828499057347812000418113896918404943197646410002120679909421266822699252360646464003353730658616323323595760907054711714951319334231954959373151077259626910277111267175117791306426631813335971233360422847590453378357160639492451761264650054783085981269487512521179510405607578036471906824535452179873216674205788833663917320127905994761154830408634038361960974062183255426241615246143984896403757104263560443172931086265778112642657969403638859310871781998477795075600801702590345067791669245957418862055942755665029020979195283022153305424530959930473569945169101922389455080210823272864156859857713135384074536048337807919923141743620812646664540267269508899997809054700042721369146115693589558509133045983489157392533031453114700309253566046153168105993556061987126247799574713307083364576410393951985960603989999536538604635596497813290807942975953790684263651678784567516719344010496404195726463168870619743936728689884904278845494229614195909761542971837393113163708531803296744775508560857179219729834364448250878070929957085321766818113077067065179467540941136690016284602273618280271633769255601204139701567238377402364170306924932834928238979216063946034924188258467005501974307836535275706713109808819507282397096377465395046242281810616589999006143981615800722712156432813368826969510522121722788793938378023058681126429988578239937949477216204393617405022761877172875269464028769145244390761675132432393942925166794173710927415086616968074058179640602880993365072265718572334861368236748806351660406721546567754295286667672497710907523369197055385690034210681144933499598895494831722345620200924223391587906486859501288825313735996169632784218505583806565975266199326133885258026726888535581517564136956795936673532890100033664986200148026630390718918783827540439575794890219080755901007815124032368073481587873671921070459094502148812840374928205347178203598532835961888113212509606829874265779394274161858924517704591348462151827509759957427765708362222234386092797894694929776099998720824681028035070552806293653814422328543939033151158808916658958154895381170942454824703839382436174728945942738196555003609561487913295319311708930504006021129933772050995698178573003525580869792503482867334082662058134302871837116746437859754396535226899189405814533486282576067990433017907465796798335569870391203340937729646343026814353473869168160283639357596717015629571287345877453628763426772665688750047807202231749169658840802903749534672612202426496058773326503004601985794839878595513827554857515274260716042773067690237447427147539438211274441356374612186514996974735397431644397054441313715777935226128962215610138916668973940103751921014473660519930656545272884251592696487085907474661420432676694394044167963667890333855483739684331763423287588709954350784073797397288019012695402109660029718316240381304296912498189630034431279557606437301772015200051636421603654260871759044533939677776885500243657851427085017616507500873258839352927818337016308535737963705412404699410662520953808859471987112985324458718013616564925860252778412327255746781757167631250508274982159527875839774329884578493343786971540420259714536751326916909837336403608135605211990671516966858899248121156458880692131736103636061061919125401741264657650889397726242365967324746296068939034722858036081172154784369089058177668840648808446794016203026253795841348205186714840565619687277278808954804693236547643975071348898883026600678371917101062707049370132868908497106685579192791238402218963929720939314172217481039677564324303929075507154141793761722681369831877059502102141894864000691937118420458441435303713502703932805234761880253082126538298425655433740293722226503431774530868179397742190968005920767969874150959999222951513296970821520943727729408070125998869571640473081430377005205987484499584080756544263824597567225888991588429494288804302621769372326611129795109771848528158188883550748944390042200746679191900278986970123037654766651139298683750428143912109050191796133400421823991915001356347927634379312723883245623895904117611552602363537918065570682035843490032726207064140764521771044988960474211374835189637640697704579576360182084021156361992515398611167013938295581108498524401270306223512392274747637114773932979108341291183987846188388542521481562695298091989659689660773990289155395706442880211321861310440432600513506910692978037948545777115411801094937861332684763602716020463730988363799855987598149666671117383800138921130271131864120153719444677681396119519586628505897644820918339233917850411315727777218266106550402449301524556099317920325277680941301207010010396971501198711251368298882548968376019040191971154595551156894556685096972400810609859121707595723365448025132008532228062329784657606981297174989225930647958401353256917013132656318915216502553533333385154625447840900711786044603081794083557952494143001849363907158367400192995153959401135098777167647248216516613435773423129198705426168801039912415136218435163531277044797964762543316510790454294044175916755677883704894335892709459291651926537114481446546139992839882190406981625981411205453232666316459773088162058023432921234450350442178735985932613706243047041398361261502620161162781673241731829244650791142352105303502409255381507873513195199912025727892536683987685336116627496265110453620537672508568756011261957896268102822570802708982197929956529955944849555382668710209753332993010970408864353394812833334293128304363999734865285265499186497405783858228901810336948644035961546181423661018641196159668793712747557223828288106349304290405690822234362052727879249083285295331778053287247539287645642697309323047691712426521180184430401471316785762094802455423174244278650101220417786238032041060900416876519105490323752625303817742373921718977610242400560558455915272309404474117466346016131410755980550067624196477202711584928934584798710086152675514229917156260250263419796294332427490043667234349824035242158358250300430648748613752272225285015401640091493693557115312776963480221339833327299995954314084765790394985602126056601389130676975177563128854002728014402593232339139626532371407358385999231490934475342008563161435827694934407095336373165248272712836585041509396099576463824481412825032449496042476625800205713893785228184343231218054975933363994422880032632865185910680035269080871491349140795310021983521801001193740909049572174990428826890521217782194579854086955432042763453001292961591282776394464416960631566279805082195779918206421792057013099506893890168230196382791677658635501313782665303584875182020362513372907192449652753391205434649276071977262195522555391991548863617759161488227436717842227739158980949636641161807134135075197303260483073188508886053804802821436376840729027968747450540789692407815024857692915865114694228356207665678053362398086493884610395690591117069711492687668247331782126586081779277236747638048169017118461057553758504610237536587337059526933392459545458098102854010849154637543164398166812289893011119181589162754394407464147679370619395951708198157818125449150778679757397361367073165248768265893320784524426764487111307698337543283897612453770593807588557156896575760965269302591089324827740891091882462507996117304724978370346333952797720417133124897546970653266266027141679725505830894534630412077118308228580930235284408305602903360178451869545657291169527910263707491250415639494433115596780585237008457253469515664996287926965734822200549927974736123267907635754278347479123284956789187814772042317340404546812389506280945997437651538221165471674082448287364668426587469695250391442845746115838809083935609199330320015032133537760795821910910076509242919334238488669190007927714248446376250448570260068468424747872762670125897434173897210666922481328016534851624073578565672044967764191122253030116397664148241013017298611722274139650445264542718857575099448321902339408808427264654551153272693793718806583656967658109169416520089488554583745552286779178310363212277968658795513143878138040736082774026106181309196317230029361192223462663473760378260722492633496362601339303198799679187992880759685703662306221331206377374241983247482256114389316291013634588108516674233240773434326033995589547430883245805792128546572704461725407373594986530511148141179744047411545484146804581118814396434738946394189632414581225808326793387923154864951033691365072302884441628539457604462465948009391280887621020600820964743247346943115386336341581327840406784715567311563827240594111752019887257035243119848168349162207099303339719231612956479033886158269398671140300166345156319628351524927611207212388430838403229163380321863099212194106082593817386208732491485863359236394325868798488448016822051331910461669659169972226717627927600500779428615167510712745005612037359427061333097119487951970758525442886229387962459343053579641983444565563863478929843832450306197550312576352647122569610576758817538147904867853228114720537591647798078639541000958790595802238772954091105901957873375099498996538558560757740141216086652107296609007360977651487486323645417118062809116098804088518558632431339096697735476470082194892227212484397611038067471622262207989964583813575386423965668580536962651163844714839039968931548916036083095816008908954327712687061936961390791853729161863918696061652466688648104165476902169637956456706761579114798620347429978307907905194953984310319378456327274125074201724015362882417917672067595289059351989065967234316371303693124845123776714350335855668065348385198077621555165526387213993631828416974460908242256238672743195068822465004773233505735414703592680274965908407289488984911091560844921487193759834315639776450892120087748448907591275029506724814483034381321741867727510529149629054913002336644215413353758245863049042523100759372771749869528071606320671291318217356006938045945139422152098827299438256134934166513109642751464676754322754069459736386821191859930200097633004071735366255229836379959391648632005131140876737100846762435642971149762313567592299149696912188326755394306329389052716674395512399065727193146965943681395990183447626074043747571052771290475683877217323412915391861459723482562351260469114680161106687938623487423555139803871439117276222166218309342362591583148253470384563033464215110549384393317459376312063480320347904868016208026730329095355613301777790878724496089421216891765038405125002478155242123329684481661617150850793394000639599115424650016818725087176126548024006206319431042190823674667206979491712845380077306378809880831517648393352857002721103859948533357858079919021657515915326386297567850503147357768944982584233388988062845758771996486536016205638660415497017801805916911424509696630066973078234051466916941706746728960088602428644206081917274336575016841178442343920767021464798880580915993605837631054780865794217150167385339070128745556645130469899196929793788856009889933626979876163670296053884015361088206390788044529229204044782110247508875787213513395579586554024182645163089878585952352034694261041926291012165386528728965135515250077198943951187246109132773394130222662517419607829481611522832803894612239733182323986850362749670545950035375953641469049994944419072114832450179736526180432141892591171527247374817440282491852977194001914287693198770598306566390390148722574765386899486604806260731676344485685157774965990216222281013533737491802829652087645015268297669234641119195891598579704530291128964003003660814416805850355377189895724147476392726361590336718523824084358745256201199080388715538630727185937924221777403601470022679850212700596908981546209605802292077849728401337724397932692689217609464175649088585136461034789604060636028603310313682141100477394416020503910907780286846448170479965120361163323457340309520645632136431025917929931814606187195798212317126153642856230451955340175255467213967130161665367608760826925566435573534057616892818102039908442251751955129287822620540498168556874366962478397792760063739417640616770669365453126072142583346757792778024672210667556543773705965878934007208399411412781172329475939154639270685460998227152603193582889826552771812314349395115740232364873019741490202349322733948196398608066428086387203890561280814677067475712278083600758162988825401891052337345072313867083837626034229803385904183793824175277987262052639237675922931582079612391482315336337302268063075734247622213725209166096233324006984511976480420181864283779911311569654069940308786525301152070720208244855201361594745392889501731358390402256801119692631992681358453050060528634645737079784517650725655674173138423693696849368332358464302378478213256979775215030582399218217069253202443888256477540216997234826894792307796909720512143318365181296587635833595126649916416717729340308847952199976671006108564167960682700232260482502208285523128713348812995412304632913169328003414271758552949406510197376182806992515152773778411198281543711692820937428070222388145599740562287432579253028441731096272468992350823642940497781676235253088490856760797900370397075688536453218399020335067389742637073452834733200841740795055330995344189678914202330100655038927724898978690218723000185378402521001903050897720065453680480955391122909004053426139747026831930131343929763372849573893931524577694223206554811737698052283762916044171510435349961807690691805131182564685534984476739365008269194201120303828170855845045125189481994111369834018957942432571578606466268172757526466398735787744953055558053802805147550972837184685954583030152421068967314423210988001616100340644546927779901737440772048358240871464854845150760723277385888929635474931512468846549591155109712216071968203955444552164682484896101202079472706642946677775785921015935013746027791066216169105808350629557878988918370247668510162216243428551303007171762204416569515650997904467054926866689755205213360524136296877248791962941246436036122145243276831182414066634943580656136757818963083931508653496767522047078776529099176993705243650028994729247052299604742733857940996449616292443343707245112247845577447417173876389900831551749581697458138781482638590574264421717381536274526473219534517971034561955454898889837128286047699114832064100519235106999036727638444374144658556582184730708977458282136283132220363665576429944312184102285392078593094921803665529501377150930449668809554109165360830234890647981455602576614509703391033508494040850118983783227568714583872442560111473170842179165664935551819382700883775116416765494585990967517246862411480075536752601017683777219133899602254345669957142174112179089075755088067169996378435854699008252655567142403686358181569400727300054249578232429676703849959784448595140663152378714958724148934323829525234115972633243796839320664029604589287869467572013506739386916442462496916254573360851645137815731466642671879633117509381604309874979325141513991788845430303683851459319116233558491052842958708848310825371083314757894434793803698096985542286427135132669324374347375052839397533710331356291234013359720869337941825105227523532402233459654265566411928890924590949971571990844748276809104873777638368418543879560766260956375859217435876970282360934176400624277734088416946803017559027399769572036651190350646567098637633565439474255258278987600234909121271276628377595977656781861168083758546469525883734099544220483588572586093969946864904291096620198032453727716737282673351628038278176798094930333085769718357322982332309863191390701935111068680701059012717275500437302082955122390257053112532066681769626586608182923029271844567921164896081168561389670061696416958690857754354053885442227414089157079443470943241177368806790226339091503190605536558497934771363181151758762501375427979720612508726530264591654953918881050039849769017968066276432379124963199465988916129240746352436330435209346955270953814244053618812637313754164836845943571988554240049758609593758998871365306948179762835022512467789066969735984671651753783897279520895841840403079670196821825610627452860578053725481295546258514420680399404319704766127089935073878526097239268693301489831983222111191412215755467694260595810532092037258129276313758372146933802392098163090073784070806256263470333570798308874195174957839464315311446958459837815744215165239097880074562623340588345373974103484298913022076781521432075587579143287808825724095732001066993691923706942535302034643874087018908344771399428397218000349852861270220378515119689236680098198852493324078038324859566300581292697803259499072498930189487671144159989548876375829724758506679879632135006911080590759458109487781741721426344717143174032540450510058810488253059748619941380638969256705506587121945794833427927829925181441056220411459368656397737450267489788190774057932999847401499692790286277880939961531358464755958018318669278056707351307386758798706699371964208411536392900319380580391375692370620530665756300606758864498321039341411856666103635797654953444501468138483246614152194751736494155463348978339046926648399472462509505663092473383532535289606804143568960546032532542303105611387851861427647864073387684954782623810860953680774642393987460535278689585282018288984707601670413627985477100279304185146476979768351319440701463586160797719266113380466815711729512367858591297454443498254708098193611476199511571182707376850916209961351128265358182971545037353263699337033351690733621673642999631436869416956659665612245969928271472281442117186277920542641097524832283228318359667006606926315490091932089939770828172486608327566535870926310949399966798634976708255852880931783213941177354252462189768241453236202668026226855488666836167336824565406727337183736998684774045850287555776635874960878703826664726596176110530885145743172354793125067345913012786591319032377743487651228584001710428521437373925404412704271313347342375323759980770154175117777195679854907108048592067993326860758612836295811648058156480372382047830728987912990813899457242022176911310969070085215968081280314707008135825519695417877150315588847917791933254535198967397846164510341646104435627010345943130299157759550052989391516486191733090483972935236475233073634057779799825166727695985011820016455685796577879402042716941185690737600465342678992875486291814100042043228591250429705791417997227789013148900174632133621886805170361063042544453047160665013545052529242452054855736490341513360786110428339755155224473017107008515822022240581885797026223755566035227142115506745061400187908985912934323703198014969702548491253232501991621928323389085389607961057516352033561764931787658695297612055525627358948689154059030114239547372291580630191340384165475993360431909013927656354268320789177760645896446551968519636293698141586669342622737554512322812533169478088050081749151432824256685803874644577539773119502096758897560523538396094182317677355085286693211012443836377199196683447902919060948877886774792719299404044251946219687803922229946561187011875022518369275784117151249518348472132230789175375882930609835626583912291049577620685200670794855608358748195467113707442541952683583571358680785774698201219541721862240842062020178465938805253268571129480131414653206933942098441164279441873144190636935872934097656770109535623724230038705805478626865447714443236842155664100747390042156906335091347439683525761157597483196669888818507037303445670449550577339278924481589230286094762981494267436375215156967675736462764013267625003086069247823701680414241503304006355352844552252290748003604902898862115801648224576567452357856163678828687953653269718933635549169538191590160562092931639296836038676462706620921418507102386917282539586763159338636280938281872137087407958795636924600024594102977291320625705081843278379268985288023748297861409966574918794097915324156675826502058056223157348803015603539343355173218920596184800441459232832445975006296232027971071274019873000414968653129096822879985036239118920706823429754946491630043292370318584621820270795631736080549469268691257757119697621713586625842788930519784589274722824067678119688138780649658024915784232220244722224774378217447621097832591484270916401872568639767920158572419722620332344309788354585825408794263382823232601311155921577158515210413287314559421605004214992653927085579138797175303275876786154288509267246226903229853213027721636042991072748362486482740597278046881320323895225336478368077004048816831830855561250489971901634297864264583593524522962353704821544097926094104055135463846722192416764286686900052494759718820575518353955257037002816303985627855856971743361888494162222786338331516601708432195978203311417990977818122152462075654655560828107480027585295647695352728522577300166402640559791085796847882353832704413174868858445721723856720568531707374345557205157293060495537188100794670178033721820330559540346679410807949869187240510499199973277090982130740252483553800055575224284533434615625034072498647016180033494341279884726936764343536107748663578064108347960573818253727595305595724812467186634600911297226925866583504809993257188490650204167868111593154757963550652067572059152910612041809062342741176415928627971408476855073849909782518023118618861416929543345449961510457352201371007527842384447785083345303272440187767482168909492652236304065299835004890692754629311149458202601062673789420844651431596906796189112990926841701555570060173519060994055326154528341487275159662826895623764261261328832511668487239390634243766165912034540959794251606036248852374344300882587690525091350873330956800351983969547432704114308039034369604276555244257154118079042585979522541142866373924662831494604528748541271400001856924890995672454446487610031810574160298389134761337271311547888666232712757089670691099601878809388619054940441701653405833271326271040618422814773541994333065414159767585091626424391650873024363000699878557601294642661160929088071951620206732920010163334838319441727980126881748117915670508536093745890929168298870653695900996949639303430607372129309907548841722011668450007809056318348335251905660607998786390684594289042744983424434056797885756198276501118349181110399769168663804176633471160884096133501109021723983067115967496991972816986910107530526764639618872445794860849178071725850660804676951762735468821673734782056469556622101843787256329381631053123411700793219045552487072417794181604645899515770681245914105029820813652875209524909060825023833242192143026902577783019319264704709573824720501589968451576181396937036596945713106373504780811138581433653014880122185785015287141548556585759844545607133509267378051040896102930114936976418453072822699936442253380289721797921284479045860047137099655998788092345213478978808912107052788557460638127232061680825902664332197750932100306394173003288054554211238953478566283923323942333185716990462664991457350847963863088124834949383314082349621724959876212114904290112231801462446402585670484747808095511999436900175603340975368726351348655598291156679970619974038626933164978532072214660637129365207885690264772043324055706668397773932551869844769514682181965060133376131316994872631439055095628606777190735326766911169645173902111395235276211891914708412428505121240440387462034632393633769268401740526660605835375818905051018009076822701860508867055167403920578804301259402336479220792746386160720928820225037333899639760427347222836817352997469209851815953159366134728883276637434669066835078134705229684673872675107750395093544012391474000021597847160477473871676033294654696929002699656314719983782444160460569148000523455293799575878938788804559457053688791977476617083310496385842024635255996222526225345865525292457839082139256055596265051294498421871151711347735180526581462273193714069315758686972498813225083362157568950194962272539243283786931273973985546715960055582279279735904934126463858229057126629512668678878999900433588971951419904266537643554315576896603575906211666586566053021753241339544614160954614676560518489133362876484290119348113233885034545642366311052920291965438496732660719162524306562762254430690297727925869455234356417721013634365453507135819692764646380554379462804425149411431401291265474684748635368440638948846294543877974841482091086402619714647755011677752000651962851776900679809303542480467022619270068292219342443469501866249444901267433622585680981070017858652542633361921496748683579054340924699255863981779788022095907304937946706267005023011840851127201305969865804638287537573008548698412004981310825333480854061148379131097831162424915794868682878958012045724974496706534629315940507849427320264382834473383960796160293626418814002555906562543013336753868809229187948309617563459773354254685453958439011157815877118677935506906253468742560283644712462441864302332433997446913731065562894308185584596839374250444707437108806338017463214123291977215455737028911181171585137456922478297842275030852646435806608570986192827864093477654046385099815571044343411832150707926292466725359518449081921091228839829640679548266690790978508590102686882000561856620579482129611881341562542836475356836136807747966605610051867353026536380557729180943338915417425100859836213831266337589499985450241256283049901808490406079824495299154278940703702031073285722493887422723727702026247089380640674851512736243430507948507722356406079787170280585734701001248486471838409457799388986432390584941928735350287112646103617650241329420289426641882964854437422140725282277333261568006723200709256525174426727998829167515543005265767299458464627044860432534224056238778634376267892783901655880003669381888080360710388039122294140658616572708159943201640104721620092404559234028373708349224173861572317436067020394082560646294567353922838372732595149092170954311900585316628986240300106388114991739288035650963060548692324910417852929612825951482632365764760453494232898207649723296492424939495032824881013692238350527942997364763124199809380753881132104643039864986306279188156322116648921659744626965461294140460100024813220926410929363943330827468097523620323686792350413787758499432646646286030445548007690648803952518887536356251447178092264085464554478591838320607295841903128687194220236965466253504958242142694254821077316283162268527036406845776060223534408133612421072938454766449313204226156193338278846499127207715846040827339680707814010012953099919739030353917536387249724068416896413570117992083819207484387980726315727117904578472436673734187822754813630202371178578191174103280306567022205251982112588187003717434459165128592554207785239280856034244815771423370395942075975852415558070308856036555594603137010242220339876622740713887375011661529022959249922183801407628463017331411147042839570499985571409948026614492154685366472560473465331537382573317269562473598040866523097169034859179320860587266683521003717913255840168618390359039715437179799968770361842545111506402829228429135040512613601499066840231255189001123846287944515807629024831301849756829023709559959914164087608755400102547993166103128853378338782073837327505131052032191715550842024267719240323086768038054629368480050221537894440786051584244799638728978466192419684758046992936424971760800252497139380960607463882025406414464443039126666057907250686066937196228694055087303917038473396505376729757809079710318815362763302847910484336791806947642129299334179390751135400816924886912786906937754026623397570427670110718353728747504702965724133565441005224880868349969756877299246274108729153372552369178316671634849126387455943665992176336626906159216824404757791469306426602521886761072799881816005820748477902329588946484177923514065219651495567644765621654378123353120968418178221868161532989265366072419747146035339947898779132479370853638765876068687261371639514886773690920332927053419364824129502446460801943646559696285467362023686226218560889072279171613651409323250317708879606637406717457326195811562876322507236124739697877400050591402414727546426457858690784253326726669992107349139918339228404444454843618667978698137299305873717048648520092106469055951855530741856624043169350316555851095825013130831395031291249369256255484227327916660009580350519318754099928379346103288652300255639724216166479216329152298573428990633617211070943959585193264282430556321196789447299551331846323063675471876212988977919221094034310786244473863338347275854615697692224696667420801335494755632190895572730911992257677717272850760734841455734762615044621333819471521726400233513100339209078908094505452813416105394482986644248582233473836357819245790012556874207342848641774795989676702036006974191540557122853516047589120521924696313233199340787775832398134897254486575740237753335712135886726736537807128216406343730637613494767845188437910781075351260719316777694371686341834145921173331891810289409296515180758474612018259050877992481374643459487140365451869809705226001405574915218996703982781880573020063493802584944646523646425795178823301841089025380642765704962597985858786444786599349273810556532900328635178117997757656733353305153086800976164217897319817430708926551663062782261648368682250482373922948932149099720241189076810595451067554735978311730853386294804204767389408931983297197162198293814364733007086076681081921958035343408129601956825059969046441953298351773530418303857196144091309947737396125372763591379020967722371752206069896695839884777508816132440642553751608588737560884971735100076012426223037825153567139259041589113026212598588598367966158820471057322815628886695335755775479217022831883302019678783182971655043272956903908463917978265253541990804537923464606141288370507418904201862488239734265120551381580259949402359423722791124320357599947777706867626582990293970955663351161327607987039356310425630419349021849429132712763192735383014292440058466824376815385076757802708572227133093574994035016097609814658021266106770968731054357162916521370645335797684535967810825777113746076235064144556954344372867071719967245363683446817357013218772486363262377171587789660711925818356670368990563311256598613521378845793922385747162994658057247210956256035643172334680296466350432288060515039246949316337025169820808919304586159898082552893054663027614856138074377465916931164161456142193221715254514348480947613459496976848584436873637863189194245096317653618948084705772719939320175050862820344250163321255683736056498851416795751376350924161825393408302586548467147458487595746571059766162873481496578723375594810855697240068285818951235004863645798996031158576309727867128181023972604546346595133269445044636673857941043707839286691256049863099892881280807243515871571159171314968040387726765484260394596184867676575875774918350717334109072558988135061597322150367180818018700067854314046537405625572583717047051086907659090687146322413468602522287383319851953108844689958765243409514621406501827777969184932731585960096082383320041523216660651059650860072470684742927055705956890119563578805837602750385307448010333521087307399297964561077764275734925129481944199163217544128163101937057696081361870575712544658305830779490185583791015518727963432042321339543724027946683334628624727857229620233354872241552291882816224169739580348737696991834491764978243525648108293068643326817967729899860575256427032422362442600823564202451982439439501778462738268190940249073518853928141017228735543189246477042400299072231232635146433702760722466414542445294759659815425324242261786202973998774749211872334214401150953013045620249137374743512165643982899047575923690666633853564727644058201241501307975673989690250763025919305550057374563563769088392944700896539195345142311107237236313954600451423069329319701148158388900676601980109259495187608439953958380673533661014836586189842687737928843807038975535557770696442660205222939987570763872948787280655757744357117621824847165461988969170325434921472158414385792455180405469167289272483914507348051199514378695602331915680390714505585757784666452409536643314645179857487033872299892681827817803159419570511741576937036776937724114078238319627193082225509875841147894368322992686102262993242528997965328834402519350958069836442778587228422607504161897930105529511764349234176524217325325748136831619151594052969774267920104902095521056564256940042760471249049166819642667690412558444707459568388233747800350494147993881010666467163660231131352902996037232009196966622535200348213934277998848514584585526080252536411321609167225681482836289352715702919178026598855771510650187138492408441650967435120813192000568196772529356937279551412644935469716047782997566627219368068827898058724611636576839634848923535633593684652219044064937365952080990964919398294818500858366522696362149272015274348792997629689351076020455327614178755849703831414034821347171875406424075276576626410383564303849640749921990189924331075212259209817435398515237638087620293171498009856143571419136871670851652665572737461817742069845025890298777293585285037843157169312545451542944512072455955280444455728870382296553275398870671142985241494604411232990076147051504405624938773094406476428756188285842019475193782391359366533892529615584546520208608113757592455893105747372201329996001022338440430614698231885869180613745111465880983327796036110905114084239633289528023775184768493158984297102823812102046586332824738828022567744029391890078975613894538095173696546352446073766068396492662297669726277322652999063855902884502376709432992701932438862749577720194084244471912059225704641549064344654833847424982519532038448141240013844578306149654271533104349393086726701966615658757605339295334114875131888961039594949370062942096934141090325107247861921072395572884202995106715451438127170618419545821700744832161417705658838243207335754151034619834635288262096319560157529931644435303695452230490887861085958114939038157689489874310736680464355223184247164761830083485426178507012046434249719834122544618483534699187384159654076754568360681302947738413288343366579829215131939569100199676295626311418383769784508745171086788784685736936286092899876891218931607528615584293488652459912469477360560990607881462925951439242113008573061977642508348280895617902893423361622236380421014086046944471628601122789273841667380780660332343233503817304596052743908549214740035234449035182954770654954991061836245099178623822941279226371726733212871290411198062974674278566303521461182564622271291438539874467394111256424387632840005755775011436468233139993767817705609730168151965165405239446328693032966665845099687080222248069181675089511803763726370103877408806104720250891455320721422635334179971466064312152901240945429103983538752782726363777417369962541166086828716954362990963741298187545989178197394658282362007576811299977328725079808763084047566967044260713058412539019084966987225696240380209632158892129939574103489864151410436144014899969570125762820948911523201365394723864084011931733604393200190481129885318298835592542821285528071168316719929169473224665124325880353680356813027183752258182759579165667840924935946095568921106659857938416569400439932654302074783655271128260347477995625699335254951755151419751649293102883492951625579192064421697243555535667343468665368733304855852425627790991188604102820756137452437519937703436884627449522462926654462007391188307942419915338230517310691623128593781725230139091804498375767690306935675761593798569073198838569011564149565771260324045304928287733586399665853335043712970852002531600110314267344401273171144031246726933293577740581070036510063287289053329487162048906040816839109653076030775768555046243280918395098029614225995202991252937820701390741309470110219089007935411052463427323040650126093707042987513898384423247413409441259294763034675161808623736325085153324102104725299105873596014407023926963792907497444037097051645306517437458839920272538469459014175232002740111299513086453100054525415853666328427038640019311948056769812206582423660394300960687370007798541440442775071400450169242757148536563602455458551793612906131495957164903633745599808903995811376717309343135976921798324518134719117131479340796652890541004016922378753155455849372629376109014317378496473232239446335095065766108591352599143713746777894976770691232045687062074676193751054702192754944227846930210976507027573043650237732481960370724361317520289034645718894396903855251043522365473241526232250368734427275005468017370270957479197991665248989199672824944173732350415622160081030943358473768941556565642847827122110848971983913282640438966473901373760186128576052321059162666571618834596615971103818405189140329454130412297385725196528239358885277140772274397985918536725841403495457079041866050916177181815016434736896559962206661527042112060436716008424790123618629816692543737286730007047481716250361900180937597576983062358468971928953878054697788711359212829811399654499529728502589885923707494736791266209285108629149849681919512085737659641378986084174230864248971294391609534530684370999328339997133356670661759867128706680607558267733921137945184466051192466359950180879729351707673318129925484067035145474682369602574502408017873628751604028880769264931498355406433145209371454760276298461643157182387422127382844385425511932571518559951847589025826478844906106317359231483156231589448676807594820376727954005272630060778431311496928852237553501487820930413893332439714715608454767214751687252060078833775493852154019039591636522983864516490770421441463372793420652356741041996060247590272004121704565923441218795556771876076481756419997600525398716147005525888273178209865875592179487648925101742027248489603040073562954131358882310878177999450313024812502809908291574962642950240617725166479996925806245579161250683168009943192975968921273460333967705111341839992743842536846439865267452868669420663674169475463368974027946456090107421461167632845552109604862513813735170480148526877571181599008595024842986919614259356547812710011169287008999126779520036282356814997852809195338136250923199941986811820681324936752325971615971683420248942838983645417721993787473142578097279266027149199989447718796968445867407326772102815777474060019662864645118710077540640221097041122118455709365794000289359202999403162285170794904295896352621917349538080253718965235211585083667879199025115632901157935799711035440325977629073183016647845194759087204879743203454461053058439887629763180618595564215985497778974636452636773978680855407719004840983444447976446779076746761774595059658568064729739147111828026091108882579850711229927185886283318308048821647611104435752765227707683917875879056372830922096442732274058544481038277702479361020086290969158016861797963209513938252349278255047735863852785381359167969834423274266259364248572824694568720044724995742052504638245040691306135895760525329954881430060725561271639730944518091576829415265082297519362896822261564806890931594662981291729566725190592247818356810619487422182057145789705393265111399963036002487100887578487620949388061487744053735641560625627948413960011485915418918935899539725891321896202576353595785591680721500562817899027329753623597154131879156387149769402935015988269762638632839286681578612749056723425497175645295474117924808928835088806523700657805081885055857905745555623014405436996455539005441349241656741135510078879019829903921394927149720494430334405142475460182306469482567928916506164995516146857762830656100143310401316418245732342250205300964651075773553185732233959788434892322101740136458142414406450073924391341871522862271390131959412762541484805568747223820740578065516758984982533348652294748142531620219931951253244102583927863685942876608580487655209836888777213403318066773875913928602664193789973977165991353008098166055377207088727392867030705225047855767741746588078960870154224261898410954275305386886072058929216895992959456578810522667150523137180130099419578988989611878870069982974096161995962734401910694263647159474651721923643327301440071649510610650018712226459231732444867885430806856908651478941949948069185676175064390923675540897122109374957497072123146426911193941057836125157681711923944089295335810450196743951421820534113185738846788989165562357887607537154835018807469938654869698755787351621920277646782826974621754810858211575811443056165278122027976402909439118163888681599930427164871924045971249203108048574423701449067598799980447032230220619813048624128791960554339117585112306656234943903862880375728945427051744454984791528064736321611919764756447751564061234936506265662449569405463865903459597972596624769563866800295482550784382920345135696265357575465488636459580577263842346530014891394806376233759272217825292952284653226455865704048309130936927858110600988406222254113707958975775487096629478113364404162328837518690031207209114433215669574105694259858356557598064564888257869367277039011514149031330739163129532360147953614991387299724373616674286579921500811650284415232501889263545208750218518915221595447873452470928668341374051964182574657439339958202800993196229507297156052778264241977665540193218014517654253853564082005964038365481414083173270015224009897098697723755905101978264642101931331455522577195036036237019199909253301816658982135699516450894295182163637424674964916554773177036129715363756150520799590683604873122484256922670838092181312953720971816814983748272682167998729070946281155180523195047121292459447537229642944079818322505607719291601019765574386767959794734031214853777571216476266784473878321867191714471977464750255595099275007923924534081249104020912608708658147266360150828083452278089919024138533323077033537990090206005679500717371680695479115381101061586914302493730598675561449067962582943087493138338924884098569108662252525815321476519438033491463446777864625467764128720038434263039233582921468081705080060269378057232999116064585572515128576340687666773012464949300532006328208285517107577661834019125546651373804893677020548340958798598938989887355746954621768158857299388601184502558044999146548550330302812800079583734039226421747384361263235952421001784866746752915585718773516356207015494318991359764499672210279356083629184733430666613869103791083378476467306312445301186194639013788786152312183358404146863708045233741543112582335864855100676948649504496610361934088795455904859170074769361178288517269305222950537604307396681788760537992623957397298322471077110268430632144469397981879228652378985475549973337144537504852931312999917421676889516587033273587846167095604410843127548438684409532884492910978945966546104624407765923422417755717540461300757870081572460021969879872924582856290529233582326677777414472196620701823384770236513559967066400987313257202747833764878310030437801347348269906388704494652251857638431229342579444476245344544516508902243018433972454711557567836706868479259358096301715799361893516086723180484739992772824238174310896649783139172701392076532259841255101999949552506400111556353981064842755014070250252407053834507811423625591455753700324215938951387641746963473527803036919644473935836294568169712580774608241885951185386931753291295073234333402072426741405133505772627242194219910738313908717805631620532679376083250075624397409419920049836287585362776678551885888537267688540278782703507689718879825416207132283599365057414096261603963055781914957814562922994138443028554905195602368389979954792963352314917673842693667228560717151718825318074197392752735941230332134555925485669309394038343206581869938979982336650275288941313888005472921794359388384827666780280701981038438356294339799896828587337969918568465430720771944710084374757367031899512347147769712396281376785657615719516958089407952968752826903620527312547053089811716819868354014117410456082609397617659772883598846236601383638609527283627005096243008714328121549712527867779995709552133545304852378115961916910991869214536014852931673436090929490262550266833566034619886499100148289912566437637722329446296748858742429271306843606544971224330320533189291538530139225860781153565942871860985710599387242561136739958052540270374789590671610305392895629184486956180103311150144438807077481235823960293119236729610293148183339233718864131693395285182836469518283814283825948457292735763164314306391083339993511426445945289363220039192508728817152496882009285429627432866639825873287473660123542513065206828723439517970303366896295848852617351736025557072572718350547787361909347797179880047504539077746619688725919680553717505802672480421297411198472124307948155823825928648412631287638946766286198298469825571421883150235599385964107640915541469393045155904525705945028953228233699464771879312211462113849153675289865687498665837144653839088975890189008394699337667355591530959598494080154569393425428381845788094043302741214985190008952657424078755959069190278117181852888522278642001019756771165520106904470985634128410504132738353776742768848228082750267692143320278205854215434670439259031965932192465609977496298540048116238720795827648619937764868906143182342089131986657708662307624801878061219451803588233775521264494367725284296690279999237691838111053970816132868147696870711828578774541738095548478726689180373423871131454377114094067047646991729822623657164931607693044816373655649304132824381371988459811948888218950508865597560247528094014007710262296592777485564536339052249283860853820004332358094168570323354592843685584623666444668269443082333381089914415161927642756361175991118070754184692229335200968502428193405742883438008008317259117456199460360241259806994417993066784330055162202277688419192060474271947358666073410667566715341708815384207138985168886019509074404770209167642716650336179713717406434864898892874745676136170991424311771303970071833515572649574721265445627093798976085038455834006478520052669665212714668559159830990207971305050214228942782321213333377315424380843927021630629683926035218123564642664277179073372398682038107117741079434540857321392147291689609965294394925739753098956020965923957832263629395383062359572833460706027224551151965675935203920146589340620871983574740527677596776795999132024869166559921596307352315873952457310275897098005233227153994611180198620186427962464361875236484108949343110417960092599320538281624546738062654664203245169803124904705083251517519073546734919463606795461343894980035733466957165772886172128057437936961364732114073693156432385723712836351495118072076197550648505611976571025366454649328593769851227714147699512718011922272704022948074781982725312756944745423719615501860303585150015394898953306644412012019244147457846620843292509778495627779933495739536721578188630455121717535335787703663277275917367697004609766904990720092016605074201503658895334949204501134462576721917990168496382889914059212918914335671285757381455428974010549490713413268851545378133895598124325049016551695040119994589506494404519700658230988403015663195739717458383417717640921307723696699451447090233019798385868493017162365450346119420210179652006595864202800652244981236070982627033145614830981940600857763104685198347420714879137898323135386312004655405058315009665212888430939788225280047912671671972687164932173940018333772488005113380900122786179748186423930567566514810945283053008344799936132051713506054822919313191247336550871287410993502920701308988391230929494431101344406331572618587838689113823236413658441904389527008017426882897180474105094547682859560354211989066735730245603590907722092151858179584856603820479975674509506228777118156666550814508156429401228396229338703885415059954020914257664609025483868109855792859870996873507932170941854647440491123712173612594210669727239900745078711018000707003542225642291992808048181213573861783945894625378067260882798999808616344007210612964566018571470014541185248510678381504544569963652103317410801740892221976977106342915694784242553416400384180372131122834875994644486714807288479775759380617342520877224989466715041949820073571354867031864791840623694830231463702024397810137988443456783489763462048714870724339581816648938175482841756183603251261180893222034093076629995146826148362784260802068295303756461824662573482475984208728179410236701380696697261104359457214540935886949561286192844192314721116804486325770758747921938091547409776427640280123427088593485197862101399263117703896406088153821930877379628139123499804787663552343677484701175317519229765738696586021462623542050290858176321110043866486979187906118885106230279409288258341998542736755757362509075426792451835623354214021618020901839501221987243303010074451385852813671298154772960973818362801260201778841419329914080815694912209900125395737311115192407026725178960392562366650180797184162708724963129547128702169891950401850793240696616718070345322305176971561785614001382860375569043129593173166639845544488834745122808372474570733147170696842526231786937162132510751442224221539693118961017165998484702159439973960698341448892172818723006927534583883121587994956806283323812412181275601655090439737356422647587764565917882908840939552142834138118326870160284654926271576829465761631925172598485501874910397370725751487039567022569536233540545580769772863600661703239630182814354096910168571020378213018690088728766344808679560697419418939462265141984674749037262122813944268299286210643450395988607620960348809637475748473853097402967109340081160606205560860386419291024515045782392450382126233259009054770980553626541313370755633446519036340039661430999244682244307143664084962650044196885656255318064679683527517246281357556693852174092448794869421497125613984361970224075144869917524179461257694280716809588542034438400191450409996410960564372533560416064671904510125319881919716896086409740964755141688075845279278818326648836847689855958168733612001788086071945974547718201978789792343236675025179769500175399063932003429765058605558868796574162771428331365322817158565517202969093489686957588033314285527919750748084080472531784637444677767905352617261967676144029052037146830573546328059292337171673527250420359811214141445746360657866438834830911940596401744983890439358859917672018550351740308203599966087416977440015645914799330606371543631744361398720778648288515478442838824683373200251603639072528253941524770747049255097671379062427505856944652800342092829617356137731057344843038187097150837770956012554262006759275892706492928816744230804404457399615974280690627636924734764767299652338589034083405378027578564714489279431098312881240117033417477292894100849380188194422365596339542819311743144021420511013421506943326343816841816636603094528451942993738875862598266270883203210747868113137147349953132579748271196937155921444050787816529673489595645980145886433205775540589990959416771657197358579837677269853961046396707694288591225880899673140516282694439237516405684760571926988527479510344216275111778437412855242878524538361065675187979742417921441466139414802149946006203082003920165338706483423713806833992848341288606827258051477259132485414536118164888875564567680448085612979863774531458944125800079772024717098401290007917948007632743962148228729498775766546332681951636329698323508476473206822619900538392985787911943141859200841796121790124993219951954467882947430761326987228718753622514225872049551014593307176821011735592157450397499279760177875844034801940349925796618760814833720724541870255122907987313246740538822596784183847936711221705056702660145573202606662881586326294154010676127074907505365663988788907241308444927242758107856133657054984986400130477396080652494953945990541531745720035188452006205794635189566281517820621531727306394650884276406445479229104801653390980083343749525951199051454700897714236966590123345856679702691168738334814550203235395668794693016625516170716364096365957615405854123599364677528318634787628579107882334498544730216285425767419649513364313028058741164558511306904380949349894525166532607450192988327941738807973582219467958311735071461111231223315088575788574577833645909698018399832968164773562003502162136187827637971474147147241319061132427780517345937961616122498242556423902101324549022159245883623180383941733912550704473866886187655260365257625775435927328288849488375581473219539789270472741586115662918896759932761281007458097137375913049559674672181299013096011446910324242445452530090085994351634507194166823189485826108454241807650655727225159927646766304681899358042276547507653210090061677494695346535856794783368418536624235471419212561813961506910901760519108110312134205747063537752194886383917116479397610326062758167364269043889748099477929276432019050850242915166947716780930125956631862434655417412221069405150323550561285037771398262641680531573468159108984831251693198567366001713995567840370280432051395404800297408870930901630202001404302915931606315699230733838847703161957214953068712690742210523984123684144943830067539615647984575081130510622629901921208538983058380087216688777338313282281830099907538402661557782089285399825959115647322611839895282106754618251393911249412393176911344768653006754645147710958867461378570177576573806938965491098185777451914966702957717293702389701271443086104383637193016335023300126465172033278665791888369038505891598978307525399121789724845390987633486678546096067437363968784256950275977539469744445219602087435322415736747179268422726653412977069490390256540095334790446971664793336543773153297970522619837090726431696804547783872333456320684714824629715721781828783530219072853705458936272850001095085670613482156906044232819180893544490030508518059955443871394263631821776414143113256313247696463470379882535307133462553486900717634419137796788564535783418133477143785993756643413885226616152303112540268170824471377497619862671468922410681323119849799004950888965007227461140089126315155811154126710483799069391340668005085188863073376627339580864247055245765838443595433573330695589353290812944828515997700157813205694832056263635387838570266790427650710384541255909394729482952310620812905477141057518096181929451281672352486176835354086341152429071927136092364214644149206818316576876793382892144674278655093951534018352583371435633808946615755955671652678486359631148507945993907543457678859156578366848582206654447852063493703366149653222464526782370737621435350834599659486165186558694681841760389555212572134766284955636726462325023431973133418848310867646620461406465364611892357213783827307562072887867279640650437138883766622343446454862127856450806539961510149312155728995051998108915049635178628616706996003562085846552498060573753051008842044877532759626679800476063965915883401172722036748411400883185308301389567885558617449667642889110453755196402486551905490712774946225718134628746813615348322054979470855513014349959147460724435578474799882836809646052994296892831359253360853848372284166537917025780757449606128971360200481835041398367731879405351100076191338505960510254265224181509338350760911862613099401168699603104269797659517902912611472252935970805783482987888722238784276082489920220067428265774313430159047520988479541327900741933625990825113668654716479983086213149475968858333292394688222772062327935682389216847845421187631932040083427241724736505554177300397981080378690469722811535177639207015886342566462026650264219934786244217703234683005732864375302722512146966564248270773117946892249929961341224148220956955084992326813764293953963694929189234302761340705947213593141556033978604352285410139706877994744259963237631891134432649690536300119759010811774147436828947022194097950248277621059012869786479585089767423961601994344943752497758679644397505271536822417122361187853692962120133570375531378716992405735935853720435011021157244628046086830442586925634404015136374252618267980660500148100970130151222758407570690844354248978403442463670496558896157810147152613140176956263968133245840794684301158171211077081089842176172700813118790270300304940185731023512660427615346819338521998116778915182993533357295095152867088686312899886065532175589715696399631621045175659042034967822191366014328376835320958193703467091437681472069760414650116247389937217164211281697039796990003920136718681544460880466106796441933169495869172416469710417947870599827791092133154091467293957296638689809994089422696147626472235701814654118791026808693872133946939100692853725751927369849724786606799251791792193695794413701300498582786241763282492095809937857594085476131170073463740273400450742490947984338058751885683919819105997431783063135385593270317973298376049801385354458281004956060487291495496510503387032399039429784059272948069323320808146290816550069902127554770105109564926595865547707576550940035686739575570663599915405338426261457928791324446205967487970801504150182527002366002458392847617808276042495276595982576367654013219874632954680594792693603050730108127768759702834610900432380302968711930903361120607088776126705264479178722418570809075230903221412775830224898592699056811727187302986984702443005518830166516974239040344168419674001507403928361990413009296924905102771025692625995392651461622278545827026552263630366095581819664511958700067640178422259378444317590173207232477860992306874296685908256257250634557142287518052594341893550956335661356466830245460953570453095237355391518463436654965029078306986183112516390108192444529246470860140155756494240484915510867339388298216536968438355423208679831431950680890616356168106406795542615435647579111137415234778555237252223205461886449016971584401659480350585356162837740000005892401012774077299489105195101195377697207361032884731052881523859818375229366357737437326109917964567176731034648519761792393085306765471602360728993617624109585664556792381294546941091566536155315671334348168114727296580709244180661321293734665799858761238879977967107804625353305459561565164643619305351162104058181037492112950443499450964856063318552423009696706755353755483222326338633437850865457590586519909634756060211292846156186000515145347936712754074697177170647890614238175840536239482166783016472430938726777424245822877671039466173304877906391159443922555483848907161480632676283304383542210134763258244669534124505967889032375251656006510348768795814866035280375651615642230796113856419640799450794599516323535108970888363468681114295544984505591891377098719696917986353337459189462147550598697402118463650992467890415040380420690920257547233617904673959867288074558627046323359914158911477100971144649627194941311531803658419640194925161243797207033642516727460706980754906094529250000075502532267701028879444429092617099768754694562256701930430500933362570711601030739343917996304766633051419015566222761312930796057405215410998668431660207891396100998118438274510376716192041835255899336414520647912481828162148762686668128900631611418295888651817472112892157693017632860604978317907407934323117527738969835275722447758906816360754749573929387973979474485174203940785789734385942908661953647746562750185803426537602455240812484310035478636464476743712337986515020688848657877828453575236362254564999064178348642451953362799360369610563694042210066012910151328318983106733147392644953557164723217319835947351724457845328443704121455767579014722394254216698122540676041769447909906654475331743774449605334162054893211598674888382826045061254117318956583306204894047372354315965765640346216848147427267387827790358202688647528824259382202510997320691435393902955124880267950034720386127878860778264937436870715339574961689390500140600523873762778258246078609859933903289860751659310572799018967200870037803795652261077917476995314770726272784832836446816868993073402260588856585431602877389564190088160726085469207582222430651084819836740128492691682677348676847051145412712344559769492452548656303352974276578161674817328057764778192323380578198137680858445391737523927852306691879632730599756554883301232722664489560312223122214975387152955916659779584317143522793602140082374841480347468322298717506752633283625396331120542812031235860560898682950866796271480120304344699724975242715246675712057869261189162881990169422597528928360009161917845390015631758288279023239695010429609753665826208849262096531686396421151541452333457209569595069123606166091518139263897530149651989337946479217952475156643056530103428478999341063803261384219660070291048735479879629235824222718660877911756511575953542138255524859199502639804013255085806764002745154948169791599830740846926829084680604241425136133747812904878946684676250995527594384613424255057329321204068709431613289660367849224737638891371878202426428261951436920312210079847650888121676566699868082987303983072019594787899337649672080357221269010649015378899359526674587093780200935974304909685592772025031524691578953015834778883533857319922747496981645814642871024445966887570903299501827496605282652300796053226033888443861313534749048526493009578662562023727128026064755908762005653833575091186594451014461016620781857675664353915542353229573152807759130319619687512137094482285027441824242196360742196362251784576159061484762236972945575438543128243111540927795378004867143268568651955394329632224558939671553634771701783365588900593214791803962074396473283200409969264789757029588856230191224654195057268165862981112995528345867188967472302657923542786703547416361877412738806281397468499460630076076313045212947067394945856558085353508020576065874229388308814407712085783057789257593453706204623665720227714419854583233184312887930116523047075001896848023532438428491481280897264035415518422306837471562261094033700408011296046820690208973734514476840339749495432998159042107885185084294178533991005085206434271684186398663716779879328085983487553286623514681039249219085697175218698121768946712218378252407250969311142417258646247511143581746676136579605658164653160668829618110402661192150838120149809967317377214553248854356389664763983059307449650444156757201578562806255684101423548400007617231078757695144659149554312071822135667608953262706954258043735927683541195812837984611090074517642340362166522141177326231383438682955655753709102392049523133313695041535578300759032131975232101222248920602209535919219138200995253450856682444009601289536151966366735309575764789005109490943589232645694898520177081628210894607686630350609211535378301249822059821472607413655198054877994543338159561333424946370692939585348793086667790265832260643219463312971710758534264618664311020141638985042694073115929221964006371409874337101656313989308882820197208659059842740524911414127848949873539158975469954711668695579866525572015859903227699255067016966370135620789411213004191697342607377085378700540393428680416339730760632284037387833483837950718200036239336202050677676345039230385643905175187702645848425570108255958668532135820026272872365380782946395478026992363781149155376838837757520509175304944896450363866995520916947708415913435390140524720920844953200853403120785137616772942776270112943807195438662872971073432276295438455509292224004931871484277052024103547357734287157219799176898049787300322934877685595672677224156148348520190576288707491413392630865966991315602416207499924821329051842925522744685777810768089933944199893658477006832847425010059388563728494653216622655015516132166499924543091477901207097497210106714537777215803685332872664599113779027165185026184310415319752109487192783020175790052654391327432795053857962292667315347667705322851214444101908802497047342936915826192553377739110936917864715639548631853322544628459331949385410829768804161470145135919964098951558164573418068174073200321885162485885519427787112159982627917151631109523294416151958646651434917231225780450185081198580009112068169282174779783527986172129570285088381110600167004030586657742555093753714686421426867540354011809536025804625085443694880486254422932034713707066461214131627251548706270371910729899109914591958049115683000301911114649057527655882576063243537744461316785750243399738956339252718621615822278149888980723973656620993695996266568537586415012119469820368813966630066350690020855245380427717573438295332843349648401825968038404374326383922340331933602478149823490369798662055788658417298643537638310627000996432988854503558523042059564458708758757049141798821897988603986586064074520941572492244610885950869867227830729227988849090050951963101529633121583977717516824165351378543887909223121550904118207532858451766834918461308147140367956318290852153708314909649412962567351716240061388581111113886933410163778613278933318011651451086803471250374704813833919192341909711807849808318952768403114194878530535607453342748009213312339982365939683654360727549794944049329662622675803918715523725872710030062502242503581561116055631485956911016665448359886888971409964053504396338469596378247120564725180247721619931374009185244759162286850091938882577756135119204889623902238411176546442083628204297961060004999430378848245687679136397742898730711862205786647682091798067257930749888827385643424969490680785768543706308103059649416383784476513357290347889511364656643675021356948418594669305932881312043161255905040387152743281140357698554634298472875728245979994519556278914296115858186983807343930289781062015508601801707223163081157741634118954093737945502492869754066347772764983795840992871773885202067476612689687455241661938168284983162236770499000980767618278208046135730302881308039202343184093549979374073597272675266450419909817926623033561633326328879470644207153061357708459876806897853983355403584301052194274886054226848395018953249605496353121510152478667724836221877541450492913292671646408760630029638382107057550830049010460397472373156342852792650203557436877188230561403331385181208634005253133440185428733012204625839529343099959510640472262314395804579488783353988124347339055014659486608072233328180606183597228709147229154639300688404229901759827609702028332130114285911329811331792689733219719063028010771304541339303752904075090599677625213062251543493031406099128905762667861536027175017264785502388345054921807551426915851267147622158037170276875733511236908939128056725917023504998242509531071919111313374849887858253368246659875579108332480793877099816567418300281656468124360935784299019630876629983934115893282514968228280256591213095454217027356839099392624192028705669201437199924341456133945542719861134764370016514946830848988893161986926386072036113979070617242076300666179478972934780000223690504965651320468194159327326503453888278208043664919435784554848170606119008478982633357196359227077261763292404859687886692267593858392429286457261648768452724998349370506392081580431072185707847617239115060048959566601877631724532690496209598581798863106029753358639264407713516763100164684754851663832862142933342885434074255319638171362668665126029217368228507615488537826191441185544682672313636981134048739195906664357816028159992968491041713099607483153293754179826175208902858040537084957022201148759051359148761646672383578791811140374103232200992462898090576242016226545926926352588707212534742314377678424465286217296370642692198399559634016537881036277122787642140570327056190795159269847234640180588877806662659681214355878202033909695588729146343665712049807716024052867323212819739233928398572235729162994163812203495148244242074642143147753032200777529404229909749580883857162696033347723406567293684154008063168592658783517294168488593579878950983014707808493074315490329707876062092562149392036217036891112098622909217234883640247322225186394470444252628666818347030198455893403372403696001968561765687103555439615303148629233716691303468873022764913066640688792548457230159456093601910970684617149203600418200420133964420032961287010521501459382159580691334503809049978714514093258855351966864574035090299619837332024068328787547301046610255286616427959225241592175944408168262528848299581761369050683113122388699213438438418736569477214909979799040313510964661795205879086538824700705178668417145321595745324421988093010722340390469485871696501097921949077330049236696335235024728607940608105116092184301926567236091615144116958130546405579735238569816631461715476172689342057754477389254177469746003357571910483312387693595954844729989238268433053356839848134203959058916625820542502771461671057739266512641970588746807814198770934276299380002507955664171543807638210588561577835188867848001708871162544978322263279812762910994132259808233169023661434774740701731431470965797687038076638112469847710994243786772620406149514623920702070648351325229837198810692851498265639784234748346716151249134841407739254081691828680616826688622201112534741257563106790807114615671185360223234270546578044561565015362205210879544995266016031389175612153534818824136584792258662818155194010646078343100635750448826237718782339731759552684426423247594874130727127125832764421473304135800140298225159971424865535427784518605110141409570343339440780093826198555800614139135843721810028010715316788619144761139103222200992498085126989734866133603634044312329742449816249272672066063347484123072156023973094137377269404574439613054681839354902354991049724532057069316906973425594133014419542201067563979070022640138480463123725992246674185971228676355047054550732364527937294677043294402509862413564825265768843412342464662931094490724556649974945375354946712520441555761089718903391327404311518877622800991937988857349345979768828131457589715325028136092902115378624332132667362239948947942901825733589784773371690221454375508433032361144734293185163147198132137417353952284774699228391519824386823313068511646835545251534329295924161206931060019804270871908781089201876145853662564076882306376575199352720039344343662664346424492476395503445282463370510185493968305567764619277874690440178179459495543734561875585793289386214337354671832094584636720624659940333093860970844580167110320596940112178029450957351697462995243997919995903399271337806858424139446122497233194909250542130902790640954155821839448346054607752125696748626976821957742212717383958324150294493747355506643788702792074059179713841707570058041004723097679610807685400944520652599717895322269661791834422713938867815340226182912192963451738430088344686792324003337372860239876483284591707692347455122695041636650032877433966877280775335903566414183348525851389599744638586416015614170467433962732896972351763615603718530525248835500933797100480681276511426005717464700860335595386726531986226906365679371550297148712699912537805310766794209922604601915174585499510067478233221642481837557271187954880398543315742030784590554903852935397673785871109162637174790262328446042932679500919615438803585647504736751885529459056013535499850310337922776325261395988133131222377139133702571185233068262325900580337393723452949101964003146088675996043963476949843428526236689399286501906834229559445290518886130070671829371506398973817486726549555655090848399593381926013419054154373625455908599460536006416943140596982170994310133654829754374496658431677999426834220678385638118023347648659642604463622438677447109288974288119613883409289313264256205025785961644543460942296909363336619315129532891387745487017920511667596715561738394313450007822052058430930769894054778299169068575042942004050381642185386371572132394450372571723071025530404793730119713242523836179834130864210651033821876797544430305197762504842070831467989906624277845928737840881921094205387284555788077939985034122696964214498168453430985670560462097405469754927287790547899399624598271027843472901947684297477086585798459734236338381083808570759808856962715611166566906623550779600691812356628018141966752825753478643538688447972322965512351094696776131215485247039896726409107834701818457587504708231300887361719679833922232923618020325875321345308241348544181937987102771926127548282692824270297561446242309132630102367804453147199016721178623961008386462889993627583789075538866826075831768080299570885823804359579148399227318901045940576182881660646805896494240170549290880429266389930270675110497449028306697900887254987384866196906181700462990009073240561825751458398491083344268428020136297259552820412290400620268091636399281118360358670732852087006891120198097778408823423801763431623900670279699303294464206185367677864757623921009596157546337875630906736000317522120212822924806234963516915158211673411139717341340375817137319328115996989083817208055259671528292516860758885490341561692165352486486524041642996546976186792710850669129762767229520353088118905898799696223575562187646801584805610257496294840170840734923991421892067017680810568287045961524603665361067088527823152558308802214031885162002188470190886471599240592157726883494235193656850459626622174761854502067664195542884643924259575855157928545767317948913489525244531731088916305979246674196589557419047735135837607827735907424680893972694624112886784293488730614505659685526631978917227265073810982476118878970691469043465816290435416412484012591998276634691136113016821729766468522052663378113012249111243220238183123981582221095938756060586349737707964064191594278120825328022387812050250198022519122461351054425601422952442835096700578718053102218981921173537820699466472350574372927640024253764379755467143798262655130168346183534563145131218509827633066498502599008279267683143358416701408229829393951074574411653447253306664437593279846396240324445397454915529266781471649689877028250420946643628498879892033083883895805118080873535263332381103544916521381704875433773261345140782252906415276659563942486507306823605298695054048217364287807108542895645978773345981940073290776171726312513163989023614222407158559716166401170549362199349126036724734394288903794978888816376482869874116533059021340724259782228335186583373015285268773292184976511726285669505651994199832238783573407311029692887535405251078243713748674033398791607144729474123061820230818532155371266097517088309773083904818538960574449792897164710459192934620749437234045422779681813846446984112303690050943802828269588947817910594380853700068317023281477848897254679714304537035044577909997132917546079164375918295265458317411976142611782085641613120476741270728556883568945192306457651491392550393600851376564971753204325870083431257980808902914463941841734123672757570919933434422044900821103455029852629723544648793216073086157339310757589732125219980414895941962327010654410986920686697605822854282027027881013747175075564532124847063262232089813344823246584698437953687896918531466546884055828155818566169864374729940300322171107260287559886473544210354149337591407025214800443570787517060990873819960131395658249627361597170020621107509506359020516947364697773900535151627754396320903950890777760470506922539417307237624453256823498820446877959879316492253101001547080586402677114029532710307467157666735185205561054303336601491020072096995305980080598390129679087170447926658201302146390926805392475666461608000674598677476908686427129579659061497389406203855901852682784752110013837463478303759302337862011173376738968952037417681174452994321224143222290695015351878145453640323298508181257268572174347808083018281150453824803850107660291379800038951531797598948909000654158941933966460622772826086923866906444941654525409325009112440091764084157201979668295980249381478263222051949754424929793707900463573516531910793429726789922170448595773654451318143479382024701270006040458872486933932271255235720404311861405347312967860729206937747724605264401401696787066492013364780302101770856166481908049394013440429079556002121858382235096590034990373828134395445220248300494373740866523088891774476616362676442133222718478717965603369147859525714679450833853369235653479022604909246614187573168886902749615048043939713385694494043482379416397901203828080805907960850196957213253888280132216915636217544058746476645829619258442397213583497472912966987010260861962776883509081976432292161573045708531005500011805955960157249542741780655215416164597607433794850369071913111457584687797361322449094374597105569224846542489787319835043033569601811640909021306279129697321620863161750976363556711420574197101774671390245919101280145218072111732015129178832949444220321677383722080629786886762221914393761855185187118159832605303784101377862571140634554950657668245539317424110812996836325800156270276129482099719877627079224828649465994554063279949585666158499746101834587782675489183138591561753320285999916983013289725430179917859531644661070611725299822278004445056718508729828235459324681918173418933414915680120137534940500788166703270890789035569716826544585065920679383064701766158683438427100837385049035387162317447127569805759420991417661859364881571658301146813823292046984558306410155534803324289318173732360243806543769235605229931270461004531919698714546789994507310336464215527977613961556518631303059522771504732513226876411559731435908983708487451620143608796251684242840031500513472414788101786059861233584360597033176644549085507173226959487216827432612009698289244598944446270000919343937704396602463637440734833794259069581528552365202327851061851366520651186435062401913721880913717494075991349332451941548364044012052400999328223335434943309888107867796728183441070668596879412088905810402953966883297454636428340105397082101946583382928340352182681604126264162755320215338080227994844940358052330938629190863663803574275260342652072860076818517314298933110653275210717038211878346971065284477573673595643696604032863230414185312850252517235975523482927211599166929759646997721305189860622698716367293832365694664326233527333945002071975662971825042333045000934760404824503904867007734807007064893647255156295849843204322868278382870485231082259445520818983400786219501142782159589272831785512481959091040700245316611368247657838155697446889404970368606797719732934682617611135470199303924524445659351664450571068846671807317977540589359202230545595878564111824981448600316344550997456992198959395103035014575986547744052639906348728090432311171029045233847114902802217842844808532019238432594887146148596089911168358604912729162855283912312554683516042905117463330103641934522283691476455607963265724232758571032599155998749291704480140628436487197730640127178069852051121749380350468155021916034812876877504669553135730059317938217749125022424425658505290084016604266159448906814808699845762711802568209998239505854413809442180135241749213264175657309450191749799353986376556891470878831468173831501008526912361444579075529900988836748927215394080533004142764796246276508005256309513801952138544694966080256842274679857873048123257464693334544769016169966606655774123047945279818958616754086026186694128797216490030159172326963966177333755051621679984364528786899992291714932720983652990553214050215058499378384270446231751260873489244408005174514363426004199055047715959791261399759574077053658783337106700176541564292242803730604739711417822775885156137058484135244404891259710273449388126268212412093246939032747030074275776732007811511622773191799260147839510842542220076725913313314134824900095513656154810994523909077464047045878615650180978869357863065699425064381462149676046693188402741763643826509550909559833780533393362493016725106248816018339442451925743740412676319747460603936942695763689581203531725722319018948834366613910626268296958722303867006653328981054879878740371117846470284398479044503214898297530384572373361593586461729142175422419743893305890844477578010313038092262242917135914238790052916329102658543153016847012596061830026884624342674634445510377911654071402571274232531623758367446508758375273229978851262474849077784356200546284612710588126178579854636627414760350369576050885386452989022419287136490750491407262831563231267515159165407591348504747439829012692383840812226975321290587170939317832362098629557633125437871219897062933778654124425506898991608807478558377882031121028183261922543577477201001111576539081837252774972566845280804478520556391407194149025082186421534435448224608855111071219993856465519188142231884172488567821980931313032509064810192016310706479167361070542520100568385231735529947615819963362177179622683636239440061722717184882834762179684504751284105222830990104787578705160999450806042193783345196640491776930403846504179734508143917204530572090997443012496868231144440026292428675507739465173543504840098562715532529128164194865114497849465296157914077348259709734888459708267890500175227588745192586009624637691660736216489854106776970235820210985509295281259384005969963618228777469943333398638270723400518183759007167698230049007256157908275307290269104202674112528147439727783334321403102795915312840524941575782622087236520791894277062616178934364408702310083601142100197090906003648200416382790195349018118754779197704206177766423980424437375325170500733876163213200099291078047838789916939753775812685164943738652678546389625603604595798100610953096720305022987144580102547866632954337361621583298597318392277924605534224117452209347969696648230062530848980607879344595229072745452292140986244836445579185952265706936147593789352634203083856331632376314140559047879203749632517317904352333614197111603397776761791822941786405552689363555262482261267224892473568769205141416469150416077398420581616689178412249603725922521020469745438816688151450678116133181872440404240425545566690039036478962137628343854649104894227483494666965688104549711579090323004318069346291650920216492019797448033306647026474234482413181251369373082404289760816914235933844411727619999663560425293672172855033924627856756556157689666226236117233227244115947557096315620497414667915669407229379209407962558555706862620238368386972683381390959918651275665933384970557057421854328873203638843491362316658655497637994151479917645108484442525779899738441072962735424473586620236317353258858389789075891906353874621605318008249389045631149401708912009621326712719806469662648886772519266362998950049407457794533886707437798689062328358002093804937709395682591471833277920711385285809876118928989867107749806030201334796466341244271700596491756063307148419127600040107998844197290089712417183134998009543913938653952439628307068937082949870811870633216714866450188015736826659560626728310065051127712052059867482229292194112838659179226392519779599985019537379865084467866208405139383148194488804354177488905788785649609588384652967869263712834440498050241242398199370751114566735288625846633961820798805033676144625795173368350002628554880024164755453911493479129979923835399319857001001848366189337885121917057852713504919663612699706972629274275070716295183169183987593585714952795815089024553917827960546665727195174296728487816676606184368598930072534358720956241586483455992612193406601754596611439741482350866141312600626601227934422595516341017823045691628084315811496751782536429571273191871847705491456314938606496245241687925554179726990472300580205185377312810334780250683223047463263285137336481470842464349157739302641387902971304774238181610565707603634839992819001729382424184077647334485850033463265667660868411574497930440540300817065343104922803927668744376097627659552132842666486212921354728591300090561474863373771210666555594933630810841160289472100880240530629131504287162043410858476117157119385870252906565502645165655331453403763075391162526729549575921910688513260930509687280251151240114889636852248134446672841132335502265035532721747288791610217391572818475534357781594034716675337459875884093813644901782754910884983039745751117893784014836390663490928425883499884917649761619493618578431230499229361109094774907426894506958187819015766437043222607888957819288096840605109814820491234027156710664438667906217250503980281753389376623699304001231829117709458618991228034993491760403839920147550997358026146466407910736435469857322700113942052527468043951604403641649876905188336422190879561527342823533666416210661569247139772622687753224827198999685400724739325824106026282343033539151269629085372274261155742134695006223292511468426211635901771156915573617252965080766084659144931102867806100809777029621975533911118243349778451413688176471456487260250976829461043372161302301265214626037416015309851991022287658135787401450365178584240093716202793238996239285771493651469160496124573730496015908531993497406512201442098402139875963161069985071390913410328958689791650540801663350200571030115631340869916983783050550215545907262807242460974315492173160054745007074596024668708498720627967148173446448644306902199871236540736405285466249697624356855686625527279628203173097583882476546027203127892084449833389916540026359194497698934815415662483921588527656520431529492723067158689901789622951618000101129707687363177188350412625823285304275948640296069196292221227130303278754612993221304065599017582450232646055740648620118308035358260940597288026802143785638372975333070074844374609370760151412281159349887446932042804773910436829682624379994777245536157857752694276344172550333856541769383655768532342418187681925136433947973961576233985147148169143358502932724386231140677242748969957921005763303450614152309174762299498457887653411799259554418615199174437436094569843319936378527012335305784109515098122696008191035032541228310292040183855767899751739773328178181210502100625163421585138530064624785533679551300852734021820629458056822585611300188323155031727620840679074618701122588998807080069797461849138355635564711848227047589463695681363270200832578537760142133199013626621462370537559729768142021803693432367638002185808266115876542104593731726879619480009442506213264498560861009438011476181708118308932954004212905619564792497976784945283694482557281022801222540744649429677924866223322760248822825464747388803175040833736684807028780416153453063894567012293984881995330124264353512402879841895152870827434403587062216283188746871833733464645937095278156156409610715478148678503490968266905696355134652496979439175586589679464211995483688835892875051723805157625391199054583747484894090832727406412990280549904109782915062917106442941627810635502018514864370831645569797891249182985990016388319624796383188426486786268700432376900467504363804500842304828783488099754827829523118119589226851423801479003103742338799511589660384566945028879160499411713431504283684219644510866177968758142944082862183467681228728940457627466508538291967499194893618079876654039385556243634106454334617784753270538630424859879871996947137192806060215881947570423263650056838150020456822419246902613158276677985701931939970638365260679771154343058462341032225504139708740942172022913265052779187147824895166843726419494241886166213957807362764752104726256039926500323946594026120332973765816493056678273950088802813432291754472430584051235042669480311894135485248537897128141766775142107805612585507048561375694197483388203984665973723717475870031120512821417139897120772553598836808602859268201208017636009824896154238270414404894115093548351580296111812452628073677316127334586868416414305058563928511662302628178637305243015815100784430591992051547875573322024068293699563848592672181330929401690081823994073051930885588493236520205015850371410768689354582892590748988095551320999259652475182747521266267975994562681047499116241489237969506060599753178908173609535389580362716663669768344617497628705040310909632572614303272486414746582320379616035038837878350010918896880978215991459641292851998414965491271736383190349457723905399248777918920516831179241473088815720665361282971110375422225199442562155402571447353883412473144200067429627161729886384881683669870606039068919769499525261872000060188411739107436095548492781635916536497845322679858001758008743660361542178686589280735712360604757481284375064443694372448237485070006529903228284342691604779906931522652559581937032725561914323769826690550178958097751059536622167170242142193664159574848942110015107171251680411233895941914928838115118266596423522100720459064568167004997054656899064587738108522561026241750584710564087954455184841310023200381301793444542841882380384811431448258967256907224340187846220453002806783403116825923189148635475780566278763712664302348307646064148407795016881532094344555797397702809752784536932184004645796997712458657981894748423893722386173500489405797518416475649791330729737375175821237696201897712134487835757343234537459638755403706656530327999387363985728608338237079484643240935975455187205284465139613568831543337042484795727052446397444833830324362705565961401878209726111088745982766647043417800458917551446623455347456597076763625666856600723300873490226339144204204587926851612757597173134272223060511405120786309399356646097114042643065165813563977807874589113625719188255445872670830272545392644996869698462624506309885715765761537745761521840056430374982986913181333872633584147763319502451331002320034241937130602029022525182412141026443431055036909255964099542129652451896141883748683680547402975291791839175338622997303634890700758604788128660876542265253234829082690386013316266553720393100015130035260139012680350307852353661307917038078726631946728995542563968082186048387680657123233347004141100946237600037017408589116425900417368485911748503409549346955207345909159031673622706747831780548481849690318808804911881144023512001008415472467754695194861877220381064495756198256359887862909683390922386419040983048340883523457540675892916450887568347029635298353262431610519349729074317390598636899903647899742919038028046418263990145467807907163325448881856180136625151013092954858045005720580152016074815386069990120081085603680676092872054829959800052469705086247353738349798530358470227312384855825116249385377031108823528935243638269818954267049999807428647916514573594187678186507273642820717315333405318090106906088631454316064098550254982470752552071364383027817410411428036551821050744609807933711621316998775539446466205588448152925609972065976684091150938104588490316711180580416480053356802229725938607912929261175276483035392149222542480527945100805806731208324760649483021398337337101193237234416890745592060918995087034852011981259880536206683342785242934344450196173645387277916533912635625085060514936957850368446568701393781749071045902247600290282192465333426213352676258184794410997722453169656905564237129465298251834513233507764557172511973890625077356538805421678994610553491295540059548859225837570233712392683048078740867766315209925417355669428978595695852495743780721590315932018546032186808733811690759052364308400222448391081233917985861869295444294406475313597333922164979275025446856436533246763607797794314007267220025824312288884140988642841243439244373068517030023644407639312604515187766963835795374155930942900824614235002954798187629058928001706263514215842929463812465160619291866862439974482106719045772897645739568821751571545062589607538477942719659848038600291395835272215860374365346984805970550520803886369150770499661364515312656508002179293417116345913714988724051381469076949517656668762697252726892021207065893162440988235934388030169021942643833205290983347227062755111768136416400050308551479199687793993373595259156986223249336609732887881866816336208637748011119692439905169914546475465313046407822946769698305840196250111245110935150911990443425442050886580474402631939219081997287865181314562602729875802811965032997513440182648578624241182637712620386039625324602695083718710958499185514108836122933232613574564197370810568223620576413021972976440600948716039796972253620992467049464223129641604092908075212837585902665471446339994444777672879688971160355362760457589104392441001662703752895459068745965423406023172113276963581088585232327149184502359272716214410846250088744279341985494436888154943398746750944915157468613736145766261991886159247792231741364189083960073029969738972323082730255664372480338751072520456637442882085608062759520601394407495308581594090410481187809108276985111420601975574567432730004128550663020220202313188774352203228566072605316965125146498060731410980973940588526899597883846761421202705912821387000451520386655800410983224156863885363578401827410715214507354393543904350762920936786376220274364248907120573226801976131778058175509678873381295161704218013601203819495182266627602732054380182528201757197807658671300243762301847457841631129569126720198135634966957355336166739497640158380008613920636630899301420240117319992992816955807074043731314037348625668866557143967453870745135734047337308115371514633329100458981114457955138320424361048565804456730063997067933011086145590398656800927665103856581639452566559916035965114836217363319511132099745076721856058512197404433738503835710599414908989454760090328326349060250338117828193547453612484782306176983069573299273027089036968595948470224324306510866625667657724150879088576063936050399319007412869092461108636269979226972847145011269177520644167838405357597844460533613102129307913082964120503151091003614045270635915794767875449463159079084632460703203520864742319415244017453384686497450446325686606119527060376634790558914339173625092969724296307346679063423103007182416438325872688890190216009555975024033953914695956811286987886122897783636535296612990307727482548879313343045778185748797309887859682415599826628281343628626211112802385186295592258300369714859514915190369609868193784774494150818126785736601238146523346351477830137348925662466629461457614467682301979451969409082558917883306291999062206696762446206516900110887854103315238496712801363627784805497067511657643471123279748373030672889667220389709989772081105551191061951142469874851454504323574842534569257710056761534810440346649675503710550802612516719278007549645650004464492228288896318138645014255595441517605253103530212802614189208777699301323535781338931521029367330543002332225260396035465077392005380861923765463269281207135105244949191031421306417888033955683369086790150932570945704084877870312868328587557020592512642888306980901988463729977565197408040476855158338011474006310960060226086134054905564852804652880777156666126418925323803999801225284530737474909582908634072143130098993042439410430668262381370763937454018074939301910148753076912423692943395494078906486954663924823509220403887332849165600252658038048732615086335852500322910097747622643636062338452039465903997426849986308052796342486532478070201988385451152979474572164851135436864741791098415871176234538401485968585391788708899821535424274506800348206394317344041390361468245898450132881452597867343443891903826499478720572312403471034019385917490181492537929850796323240716498345178770919308434806249510946148599995692330366665072746230607770490310568590053380802984500294700895124135198403352714573625647186539558753191077588009560990165377779906557601501960337248847208464306143912928399146168129801800792682386988694040382923132310349006262677495917487237111298260191069983947944204609287107922372623549897407471269830105884263190535491938427815546072353158460726292872674858746055033252504631162320021421231388413355153980336886229182553550462286619721941938330422612481253943746822173539833414919661910349281772694920790652867478618693117248027286193573044064751536073573643937751916058917692406702869295029891648179216969257785866362885976044401150638996653126010687457474564516270823383876038758071867445057355506890698002394013214686979246804101133545636769316816288103676738030272568719691800857348401357433585006942324545218927017766401050597854356132461702595258508729146940271180794786269224761873753626245018471553111019215294960161098970711025595889813307115378680172970266819851143311001789205171767128385404068418192850338698938792661418282158042871465509767653639407527169682245255481845790851006310677311338465499123785735918806233917605700140278237984114313279525908898988979597440480712024059791956733334584757068511827855993202089502075745549801419340192753488813421872018000053632074076559114301039162569322694785333296358795231522772403719200790306727006480227561661130054889367954986656309682173645966185322966872175240567803636189530070649083343666358894896297713182364697949217650378019808227835995669411495535838631078724171890662638700380907834330295691709265693818362493376779182708258537736640827244496198004153010081756215807507865408104301480194354559354410973461505160618863252222184194331083030320350711168793775017802685890283022896083094979661516079059233669965431035078412244232997778961386925374070566576507544082085673820256830366701922687210025994661544072999517822463754967597378672906611986354493288472634504104363402588124612146811308779879706134416542432352701235778336193766902825519171492380120098264466491192081074670802853045877071191402921631089748068078362379773649583079017892044539036571983433377409432203141737957124668127328608908728788235779109647088103369886458330471537318330419488901847534424789000157866662399608105569784883888687643589245132881360423326433864658536427440529072592351144984114476786195725991145352901290501531221863455250120594516409209796031345733382420773492599166089404154857168315363997803840466925332754514890839895093363050378205659083285585391902537422438593188719241964472245921003097400878549275219031346942021367221649508680622827833408352021583289681570663402582789907569749627481502723757691457942776559279058298559753989507192773668810394581022058120014156196172944825023496298919226562917564022236483875523120054213591120814635558448484570935921706894081852292287179821091333601477739142630385113743615513472136895496688974666614470858057486475495490115239995422279564734999056633747832104144426906340076385598121779393909244578142230266553889436677443263147206894436463297318845681052541073907389042638272043515039040808374239621924995914021020871968779835092548866705173107439685706761228196528449771984309781267759760586475436785527461051904473719246915108115396440146427988256305456849551707238336328890483359647222631350576983962197755608737899306354720122695919448743387541166437776400167170850819899224267827262829885744242535374391280294678612864059390043083218148421885213962461548215570842537221641294743141643093825250583697894246238236317835469870956641812641621451944635516259148513878652116208490167670343579567709918562451988319480129659345441708957339881431403841205679805534493452760195161514757897645399907367493955171733390991249296500762425937700100640084152848846175736775261770558675532791054458291666696201295416035076440707606300912987625113148256321137513735144253483862513737992743599610980006519288909597214127096926481227714673378538041916599313124575850002009037327855141495981445892301430549138065846917604047651689218841505139266227828719349638075949089707008857502337674969552934275642211863868713850711224141489388333756977561282832644623708653841678903885409182219868656527821705489996401417899317325249953837450543538044789065746622349325012546946629509464103795956910283167234358476968034326491573695107992208318076836630548849141774335822444902051137909949131401641207677548459449821483400988435309414488599898952298092149857038440199259259021841050701467059760843074683204149490347338011948004836097632833893816174449286707885379694297039936562502393852151614017432245223231794541194286513033884122628656045593513786085153796842818350054672343923663857308980848099312477295173724958721177134126909241215548358828959568913411617914745700357578550129260169523921021090707340827206975499280761195526270480932891589483767190242960565592706650324466408156503936659988099680907291564193222993397720334538775504581874400681388408535804849345387733106162513471300838994460254076277498265662941583890756587111292591899992521013611400725451509347911281707736841361425199881514462283384765445963163918998431875290328163350056796584491872908444428321698596224999516393976440511883159075985856311587404225902758630726193684015613069059291948042458538540951922188128919952262616170392941856638926338330415358219545086660193462365376038213348704300541344630794721161509497072296203210485925040475441035004663257096976701553763925995864251950603049127506563675408581357413066160906505511444295078041524498280100469403128889461194031146891440725022616757201244181180220144698745785224200027569853128753105638158527907657358918002050982002059896623069003027448298183770412906218069111308942513133104832905605548542554715483546748890982685717776041926509825539578839097907667817858022249067306657673914884611698614501958237042650458299978227106345765431372145539451426809713479094509395178189086021908877664118945932111909489452775394013617746836391663262865184371213537349027160020981560021372038933580454278718208184880113737274249330851277552435481703708152962106719321989049837809436736683191334733584122294447304396022398137091236903225837436092850009360618932689614600777521889553740009857590642911402619146536395077758697328578840341578112998839548033199568756545671126073101348977908637974724219435589317066257068389196381828403025970105578562843308134621123749342280398165511217328422861433912403846955925419407685485586370381827587403453273558719400574727883901880294476704745797763089593712690321279187326354252730855931705086301850306868272686802275996896324552035116730310392701017719282293395516966077773041103643001685999798175943014055287832982369652767589169385579149525937019362759803689022719036632932617529359204251275854986145144680290776914076923445429569486909873501724873715165688080823309432806157230954593186178110812882361048046183603213541707954840966592709349734733935916773490104828832016835100607522632420824010194580331131710259482204666209139810854322098354879451318048886732555070950756996362068006488772717921480997606733673739761368492249491068313313583116114465828547502137453323038937281592527024822211505568105702333099089526800965053842071382174176691718254374769575518584034263542127129138712482675196469170024826035757236151192673233647424641376523704454479429987073082596051646468286044292937888794785498769343763337084968747219234176580848546404937631503085019767665435720886258683192783202841828962456495030989341180078202900849994779921410296596317984625834646102072761871550150205297187357284422125359698917463773609692261996278243538654573038610768780572934187628890310344315145684276718610353475597536792222263537806169338515746088213246374901670080104130561814723754185860441195746750135078047280437029218560781831803555339197367521685602085858795019710733285264469992397763841271176049824311016277376701886473290554452753654767333307340315579249606092144684471224760843716412323175394285000888041886470091393111907542728356406646929899819781001103181305771223369218174870117701207665480336956203817472407356845496137463450348118642425618992702715757096641677976765027376557695701498436251732286122862216748718580539261404141358776315002515424940965347370421992835461910287683353764575712383715562309010500790416716013653339662877197626394135360134622636063795985352724657263454701169128749409995235185365707870148069496987836120541962811258219134985179549017225693940290555032511508314009011236362267254565435055131452677773569268966883292960755428297312620098633908473995837028475796251322900231303504057395557058863164657314387862328405862627258391193231666387123856714869076393687295836906782183241904322041170271349893276577015886599026606586968732356601313527776381128112446385605593230069321146947914252046060354760132529271701082844701409754765367688549866110342672488923522804753494694691747875124151004160061365246077112932263719738855718937614013431484344345879870288054463028741728200877660591286565882141327914739910343973642735744047045962398687119178666305584919881106016628452064938442498453794338451296975620230225794325280975854059631692671012182873632186970777907502641504253348829978737089335199911942199146958531004895947836252321523667404550980762727246118180510290650408830802791893319297098601568653821100811985715859927736044238829903485171404771510958632182404255377230773601051835922628304430472310153803653067845926226957117455518757082604642354297917419893306443626194320369949143433508467250407845432819072389890015743274761243693757790680355787319050801113272072683489468022771663122386453637271210045311542780723163772180835906566907147964767737898230331893311415901483599730773762986507304117794767257642595542505252252720715334300753920981013473719243075300497426372243349560852692827428782337897037998687269142266905038077826488981668806245985339269988042943657334276848154350910120349392166196296368930959776402863437207004051056156358573496875121626296717147495235842448639710445005884629968234339823225397110599758501153747275902438830738080175593288215783658562302234259105583350890568886865097331059627164897181162375259558685379460217047723940918865299650400639204481421916748660499830140491464461220160401408471650954248872692387710757146574561481553008307903340283773008506755712096613004845443044273855633980288538488725628636381394488420988551321373802141499220464146296024945962569971896347429340046900376103900874055430220236571329643021147626998748656076310801991660894444855380603666823414905144047673890930118516985800382197719158787630137660557453953514222973864100791098779106781092340458068696943614106281552244481943351283978425413436239735669235902267321256489502747130663551568513968333774317657010768209465457225601895709708411680738900700260055587849259379203281688332226501280426584045619899948614791856573522402024406647964535481321206556954159127804174136703686615460297486205480733615432581784138329700800948006848643908156390551964983144630972835209344012031670236583071540924100804789200447759956592124649200031482983950982712215191261853183899580810667409808390131656090297244441754959608234428167382092713267651084784596667267513534460355052603810580018035726670552467402590573674030874211227179988540306534152971077885178089459083083349590192415301073666279014033944902800349170859920281045251893920838735403102349469177647366749922959423271031722211645158064271651098880485346465002325219900597584617473097180622194549237714751758924147964998776259461388054421817929200547966892145598974434877760181063089453273102819282585869180375424968938860245012645179526015264464147719768273103277267148631426739743081448219546898747242982619570862382698254961024661216348113181925993199304494077051799154610925381742933918923633382934103080103464334591258220640522925672369192103584721944970266662339993053193461655905115298207121932455982472724203722181717012865391409213992539999088659536014891548684237341439564051924074435082150439945461123437549591501806702362296458476591316209761061431030961562802112549826642634520877438431088110860574317683055216705862777181009483958444201125561347965437359825384003012921807078752855945136487970429574607070815775333344602204222511627561365338652236682627731452597703191364189467937476487792318820518751262164898602519177672146143919104196344391776105322719687647076498225276501206507442421868081425939690225836079295018316068314590877643777020677919798868722206975005976396526964889915014937035357688961516636145822371481486487317651680413438355752904268535412407013325895475558365449791116869096750540838819299956716210891959784767029672699453776954779639129585042896511551679281315471829806887851146448747188832401146658297531804122877917895504516320131366548183230003750725729117467847611045719951913836911278211937772423787911541206807826005364444493892672921025900811162815779326280415556237505350830436439079935751817177831099949360636721690484549538950937018256158612672054629920832735726691834963662643205611954374318690914874253553852415346463030544402169211292459680572726628452599320510886012791531184663287934021654153074013708394802560792547534354264738237763901160658406537956474350278441256113316021213184208778356856293256239455696132582278522399519398925673366946344099198591957128206306948575155001130603950385724552688833466424130264045283016722900482401513161734006339872276664987998617855565130845319676448074684916132381721592904216441968828127686186276756792376486361198914352175051124960925265299960829321122313627842378095838091935499032631531243175809804417863798722530044160870659408134444830027927920349894805480285492523842613318009545884628156612874403493658813337401199917533458942025422982379571557514765290827189187432209557165666219691990597573171551296129228362778826999321535072743354678421326582058908754758320011730092270413256560038042067155753122075550907669533614657259680580606560716303954542227201200287399246535125764502715860732410867040305399716683658878202659489830720018883184617441297425842474102401494301311209553140054080215376595792987663794819070294459013236991190146196675790676552486261677592918782079919473836671030703318749694948911953290761116565044505071718074133205407245791271543109275771290179323859132836985762555527796091694093694529649238359068007646896517969026004287652345502123326979017672535124271625313276392272616419822569831505556430187593155219761910948660899185669762587937313259643542034049089842979190583633537762941609012465374274530071095751038556799525219763705480373155513162683781548538046688016804633793379174994400677117708219553756479899560578675730368735882727683028041544597065345353595750018424105025423574773805802336122040222640459445583341185973161779250271710190214839224788726453138552008274742374313394842585330853413656935707294214304348954376666980560543335907822928067381819902461515348245558716321043716756867646163102526957999011686698010670520729104891975177875168032845466372517887164426184242006783330398226525456126870813451970435192740252207415731317042552893446244413480870544059400907401176930725052166401700682351360083166666631936232951045103546648472780135226560497181297425161602143553765382085792470899564291436092676191925001166599699840741083546740351417696157609142263463382921064759041715916393781084110878789211671964061709588066086798816368739222456371635232493665451500536892091632666752071536573646881170268891672238469957992439136921852856477368110418679580660925000410407890367687438332526557971402592296873150033241204666598706149784265693782323770626026906490203629372888610981066571472545351312025541039389732227380116157384414052535818459599970058228411012065997527282034938306907968635986757466447104787085170319972538484259937425225485360195193778477781840768812329307440599999637381983383213301109209785043888301572401738107905983249166562059718066591234004904059261524147432306837968519162996438194791724655343717245575247219064249349692771614200701429618774125019738130781423194240615754254564153685870589846813734683237555888505821578299974268986001569496906867151215810516237903455573547000151638374980114804293712852301925587204691688731328294878343747078360612211942359682028573375635072990153759827331867867168286964842175170191661937105149867755955399803772455674857871830279528304402827375733738807718879248544693116135967557773698862009579019511358697753059460209722192179567986253860552297026147940145899718065550152056437299443512740302604913947499645382885271515496201413028532850113578646271240700526212165135580394276541453364150733052301162782483245300448322372633439280629303558776552599427653197829474331572525852510181832365396083501270671904022453757219375850749389908297766361464736115171286722690851280949211288353050179032670265553028580056682848509364336629950761373679530920872924733094663469740670700583264454149508377971952495689859365837112576033524321317545710522563879120284355666633254840266696338727247915827405657590104656755956237789049897606021463326255390578659455421224686283140169478085847205081394699375077864429982038424751838778104648103983862702590136490295955687157405084318445893872527593487855256308307240482599624908594335038928653984402963092921412913282882363656050335033789441338061906253474417774880145039159804309795704904412806451670345599238988644356482235495990604701399470424550129633305748651171326987847603666285314623272115327983873673116878555863495450990795387612122601623356604017912519542021266134218077135422526944692160360748349643529781046012998386797223955822051993606287238383690231935861077281172299823124120435978122617010167244689561158618763405206613427388796229808056321917805169586105902669263895350231336978483988964096135774878924773353495350072444064052626705729054655991409152167377542341533113350719393413056980227918470908587196164914433441484561990253786188049373377988160529603148638605567482141218556533836709317749591521990889105169196567089749528482666954255651285999157316510836229225125825359011423751206970213495543782695243304229560288888625107885761855987081360023677836620062312483309862059669402639756952586847851840625774743489811673185420991240144076005942751624256630745579564368471903337324601654131410760280674978635149626321977075507822738086256646532645544818050982887270834731033420579305341389052019738348256765011997898104631349295817122351901413423171754262442914075476591584772834931244540973290692024658515326066903448742319856369918829764591837994951049615268235523435700768497635275265916467946072095759702985650568068729540590727888056444647811445242221750108426407062143899621185002736843737675685678229442162937888815714242589926258504994136546726746147328218346844462733699168729621041200948790396084331414901556458188409030564593609599757514840616336546616636035765598141187191968205571229972584282094972136655248031901771313190404500369143020202267754679787773460983626133440200592362276143659310056978230716753947910337219889072990658939775045056523966353560799716500403138117733949455181070957129414214298951724134994189509784785894044508880323784211294738596858002010883432065041628513099928341277668785309445113121463927766402437594367586580631305012713771697795067775168347760367569167035048849946866958593638567148334603373088371053232820109588276218433923234650043255260684954648467689873044296292596270291923927538094699985085027617589759191230519809454951187896777468676820874669474764204020807507348315984133674113421327832988642888388011771042618727157162245770058788480426073925988065544416464860914278379374338121768766469127344454301581072541901264759376537723872528549333408441256641347248425615869201523931847139218738031234777965600091477788705627884648943379216889115180225883687092328245606193139767523877189261455459095780200249870750050579783678700388381586001736438456425917514813031795589283984626729493977547852349389079184172200917529061019798251415229935412131266047621774255951661266878780003805124554581288949298261688418200223784557713255088914476385019272721482723234283813240905530831792223537247374594120213214148768283921385563968459482609539305666382467953334046015493725673049500507954938184014435978842809697826371908164560220134670994689098831108962055261023915927609020477168544943808305344610230927155608189882364394249093274232566657878549553873786836985752465807597525582283963423160936584199208221413291832220742922569483904021282285026561332336178337730353923373579558057194233939246092914854887429734450450010782777978539193289137437159014050280060405230216146149785880008366996681066400745834726118917480839436572559117079006858058572421208862690588256090612083909158227881280120744925842089762735049371734484531107820719588213316348285425076308339861383574745664214038566987878563540334777589163884551157362540127354855535156388513386539285928787887694537504413337414830304512135668002593183944740342172339106957475280387514909100406638865028352796392527787431699441603916750714068859483841046485901694402687569958303062379541055571867747351595217169303185352157023772006623498079426204822985369902117904346036428002864710448510383307818023006067199150433605113821833678916650366526204505659897640273885457434765281771787684883296612438234902596416609550993261828793458976723315620309226015897060818180038777217714408055146018633376555218913727826168695362719200482987225285398818832036027838551352436355668021082171976013433203109676643876487137056696860546656503025265157513725744053356409165325620601181680852335429559753034419203432734112707419295312125872474980619254102122214890820387368691313841900919185169724750813149238936949661820552018354937499192221531021096770385493001468077383914207388098687449452961602933936526992099801630300110624405679413044754966537023783032749657344389521629627901687598780371921987799243396795568252592420213910321160236677625043462872337772821467212919328768869779341872353657203512829046082034898541563526062022913323153442585688554409772228993510817764157450905492837049116182925090387930150153558608607998432550825151150174601442667286681110145461246325963393803887467914135636533033706056056915719628354391418864425994925744490748574476044703090134198519396718199643660024683259651920269845998234247580016901396483813494118557337858277851468024710853787272850344258596254052412379371402935121436389305097597217244292782371782515499818258286866979044269736878966249684167212944380000519399312369096716844124841316749749018510676396272875711767707290450120579470964690201464447850768235497344612876665302078274978636774926744872133657495656087464237608257326420247492550458182105579134985243609007057412439280796632338869793562528745653110001624388251693533061396356822507735342017617953699286734943550517395445343417558836578168863690145137462061022048467911510104263056608970306012902989934343928126778819414111993678539223129951069585273431944101359867430973531055626150362546901133787393632900423964342954833403440854243237179452224228346695961238517218473404248664947911896868669984459462686244543908691400725400222354290811054434839415944580445544224185856471837173962058769661841025056489725204004511978425786271652842444875680418766789918392844164643750650639907551617809805801114974359109279307373449489888779731341589850924041448455792630537628977458706077475781479869772936451661428800591822110122899558684841698961750641636372159597577016470059640724515266398432730015858207996232151673812295548491933065243485686758525363391298987061980977953213220811587827416216227331856632112586070877206442958575848243734210528227418559759737022069444752740107395244339288833440403138064771391601575972500913119409444594934191767678422047423671666853164102042675896387749138649298458338641928163925730528551408929883972272532529898326619434338910480637787573425255035729291537610548872556186821125227572437575239584294908202572497716155921887945041884213121193058188519968884677391159012018222763639120066816337942097186653581621389906406010439220478113915695659649555160967130171579093425434104873355379496662422664736150004393557927301654964165646446245848245568890036880370527554123319427142085662826891174685073393079558869754775551312353520275255838039068341835221133753558213185195928944549290843927128065758010839808399689587610482446504371790602682236526225360247973196058592471882475842217162297069789034351784688520591445628285000928891884460083615632686664801000025161760453228857070770392621913837356384359802890557024764014492428920928968413243914593309395882709373756712585614814687151877198726457604741630580208881874979189925535861408988758243484016136126773708905439486082447723000140957187177945535479330271730779561431514925905854816328276563006266146814537323639983219019243423295738566232181003032176841654741203639997289053616045547795139282486583628520825917893572244680083417784106206232805236379645914485431760778103683829674682404778194951685619064393774460267235696809340582054019342503118550090518065308838080189981709364360058726404496772913190098878440446058984656676510390285955453510822315744755538819817102341217519108986333437064311586747641867882331391304514476142181313466798007078620175021849296423400178668683924927987976939724015250832030446080748269793757732318828151767968745736107992165658815471893912627293872619120466483079902191499672363738111972466856846021767428223787769040234453090789916483184640264933782653773488414400852122410051228737825073178834190247097370480735088853340686673262334228396932529015629357821555863633155700276900512473997396052618428078765001040479737363488365359294621240042555670377558367317739190568584942225790558708738032289760998237828377328527884434889284132332040665490461254870999072896935472864042862639244219148756174412654973069088296898106506438266453739512596010946600686768035236124132896005518742894486561832965518314437519140694705269782416540065023736941168370639332435552331145115725592855412528290598133222909756798620147155670139534022498953541066680585009441192480949294805595044463292326348161632565424924112329111711770685218473306251071114476922116858138400809739606127863558306408665503856129107076394263507101077210028688005957966329606106715167909658791757699365379243213146201789942288735617519742616193302755491807859941318230557566120569072944665451725551429656909671473899359871372730962767000157549831655743138755221000592322475596378466579922161675037639585224282291108125177423183930044493215871722393153435651480388240776665333622508508871266837170132722902256508985746499314867898085822190249250880735600793312028532132552248866256982831674532971609882542113109610372358006888010850951576467847409057914494300517548782633247843349916419871997564584269412641641993272475721738555979778541161097768610703730952975968448859757818025646922954759629897063272149988708488448945746913440789544225634235285892202261786201486983961633678289764612052910671371534659768655583491059205039511696346003372735939884758729240861030019080889303431167801612213221635786169614195700470300919848111753599501358637447463393561231051661868609218014448584175044001179567252922115447958132753577221270371809951388111066433755230984476271120622462795978676109297724324542709715160909454595323923866002744719837343540237975972730323685028703133795078194114536646129916446752375578772403780688420353942932203319027323942223117858040613537407839636744932455356437944099625688982743994471921001385777392568675204614957082751273605325348348696474699721954671525845527719974324791530586464004195627051603840489324051827974134932144085177225564119836014123165546052800636867539326302069358665915343958896639663439148389387152087936524931789012542689754657522855451728003548679427705607301520915901833475455038623296178773381924629333238534990466726342207280320332113311673020821095994212120926812392956191326288884573784957492090427398507158261458160752603939599467185890646270558977386908354866221786597804055529204162629933165180970013871398823483641476365901803356596379621284659661829783404865976703813139860086769591110589156357003983798366858101001477893350056893849684188064363142795157945860012464132704954824577234960520502185896273081567322917523713939186200561747136849500178983892168889693669012207562838433897875433574681234905172235297440265280387298257919256653783443190035746290219519156703393856538063596571067693985750551624352509430987877035015740144434048122607018737475327150322596441823746444286569717426158312642484336902934333443716447756762971030172522474840833902133705673102127442870948400167767305106697006072112051908564538239115118284763788418805414939898985561199917568590806663066971307424940564400341264556434844340194135999980804044385004836544592993624702802643054618847105032251055780005175205015356031952585654746852653843534341896904766850083815473567672811879913935409503789871836024124682380032185433794500665332768640850993536294061229818341103292212053105905352916208243336865266142039875039686033165468975892061398221935471075882909392890990769307826798898106538747550430833849618083618148984052119718686317203583119550953595871587737802531298090210358093523616114877294286630311024813613129724789450727130407877703921662777705691910852631565024666277039415227871743609570487358516477674231084689126396537482932554642575275970271445568907385756732825369140002524002509341174390842145229813795574938181878755614506841236078020914579063626476005296777944056950910706367422911779580810095870153782054155155484284498167054997325698488673627022524037536754126843544995013484996420773128381811261931846354064576121191776808615543480474463935210771329024680700237572797571316990503823451693146846704435761792392540724094877460270224554426375912713557904354308828063658556838842001400807185804415345119409322561021821489528353930651179343462770309604096294721714742692479974499080075419411985481750402934903746032782261388068997649518540740125915484970341134470753712109876457980478375705062149112385578025761373368037159776808127412830292736551161018559886087393479548068124573693338788824772982317235165551318634066271683517389414649776592532707727824273617432381007709703401129437347577503468942379391375548951430475916612330800964560881887334534452683652125182579920468758733335727598713237105118123518173195655550623939378751403093444301689678301721148585318463878409168368620854377562221227826859392911925998117180759605991913087439346573145511061731684080736590302335796629390378868812212293606209403866605181529448068489513102292534639615499378240832807036451769962341287050548458601006031691076187494573713256060890609691524845166122544550258604276287461065138441012540018491581892822247029049214565065197634355243810348728856806788475962509585747738815331130122103034432924122686426274408569953664402146387317552827845574400900869237076895343217432033664357214354416162338949129258299010501156315890543445089885787579498340020649162937277280517222658483694030671642704311645280791158056081999558684380011015650485914489982364622789433681492043759341947327488951118531589083736422190564423979038805318681742730893899370331601262205309479562544818942724187925193545502947069030708416677434368321326708218095360269879399669427583558855756305127188459008311667112841484490140607528498505717157407487278469091552360832639298390658289630173883437163431086986916155066072721822566561811302985236484628197736239278715163054606363028475258414201318870137074836083582528207584190981278239860001586956564723451772935590743081083132468977230652293646193038553125937784195329963541304939539764009064133013713529352997956569880254190709421602064045036855401715382058159298238472247747090393491846530254707627982761343636085117126768839319091252064366731009875060242417052241473751449457803053744744257847121476571171818810874826439036020398896882790565705749545517441356921947366653084651425771971030248482452332438469318685929626389296840516540099952377181546134024813998837225954802619514733172971050525391844614040876564736192629757386915674881982583312890805817273127195595031148944435162991124514754216222541908531989944827145084317994379194237272398889582828577945525991799967818557924121158816829692628403548539824929894653468385783287289801479540781595699418928393146565264020124899444184327279225641920538025279014169328578456424055735595488939604313496393618324912907254114862868704173644812932230847759979153519722718731639461802704895230438066318284073074180600897810166832411636373707418106119821232422235958058085078251716216330056838100651240008711373940981158398999700005206595256464273990698364928942946673287971036538857970399982913040577181207392384110218578897263665256061926397320269201235753221123273207966973728967482333302012535246907239427326230766100934040376630749597357011287913082605007570220788247958101950793465816310351193881069702324317523782562763814158142955273933122333666937058569579839873416887306309024986624659138126497137450382168660312487127816191286277150737710195972461769817176722300237908630808913114670261328248238424012469944665163653838568439141119058833734536265355354211972637462438579593901547412567835594355826715132571466563641633285861752568735961441235540491017751977393361237180000868004362597945563154656347563256501237791055896899593397885630883594916018763377051951445700085460488625200875250346130405719040635439899673264398054203910349097784637870197546833385337394926108652858418706216812801841649271791365358008543759968122089695934556784665116797286758024000296461069017690947304399813632412368068680762593489859515552328580558870961048160923993311890782614195073939523062746682483227316230800412301205638732502175012780517335953920889810055691457404454645712126580828203818917366854980127662108388795961178784531648285185728647284430885770428774057806550163378131441854721029777909523928191584871831214175304369127310629793925937993043946175155759637397248661442865832158799500784698645543198193790764710359866863653651640856671485916895571064145797529910691626034711713965883284493527431047254822293045909852662011402339500891587875034379123052218567635993523493450752315941872513682975517478349957254503230783360118933819010706426769973317441398436978971989277295413157167031164584812100491169783317899901199033144667276468107847801880011586353667655808029126462627614044135311463241424684804694917323697593759893284485540968261332684484615292966687561941811873996376419161300247593691034226456353496994099956169075125006589242722811181161723820469621463259010902553344617732314165335756216250667234816336838073747593902954267176843444780322887920424195192482618722936293770404062006452959273358782092831002771561398510987740161383127585276716123750033067341712483800792843329110846045691944757523303998894918936044119066725593496334331884984852995486620667953574892895422301410767166202529752409818865141218388845415537379392966055726073934322991554652594518366660507832109207626984123945031283409603246125383620429259369349138066197246549410199210611699168815869054635203767581569816188645003405038010035369570018029123979516348033080493886381329550055866796844257023861578097581780377212492025278341190981029183679979502388565187220906967115772804509276802906414133697332882479087891852991694338285898320676014739964077974537225667781329214896443643109146627550744983533454688928276267214725580004669118612289185138920283343640822008813916253382633430886341558992261258210382816589314671258690220839108577801079813754646421772336584067540037426627587721912156959535503616711758010031964820153407044022230424684313647897961551958118783790888711919402076990188506456376776406713952115297537893382487554204725193690978769658755286788477261968434612344729775540432832574998229553606947317886710544599681228584950644753451613206779397064604479837216141910910143047931324680771879060280994736280816583594363259219825074494605024839179429904058617216390828597251383815324758287187939828106712788665340056798409964951852526091262873521742759721492979050316790696435534585535731426385325551539069481779717324887582256322330996088114460479147239900013611919396586526540117486934418514701981544687155163524335793381885350964879803107959568165833377207308084194731985541714173143850380685304097331783920362205948657110244339006638558297162539869698163436179182103603218301323203705982472156593864108250964030635131974032848724846676445394041459963623354310019712624506471409445400236371392164591217554834815287451677492488349250427427208332886685381211083386951607380815536566235833649684052742028272872697673186480385869741912860323838239532606641118195244895498921181648902913759340893022227758679030845833481594923853194258893590945687236752124580121676657122958686718907340194874255405815231877648802317532353535239156817357602996356298677420662910502270478238623735955749713458806401145732802022682825254524470357038364082257357992682434943891719186788103947164509238169737644972277433029725887133942732444912562678289091780115685830088481804254576294610671845283864814780655669877837076955213539638441710156870311913989332104981606940993617741367907107775808952843107409944681111451074074240559470006571203127602259415040699696189569496433213083539096201418545615327400333442086237393668166353429948467918506069362046254658356540542348576983115142564237377566430379588039252515669666022747943657649702525246137320406704095257625299037321538113953745163831083463528281820779907709810172869339038658953594313371399015815972159761674698408798198850127175136802085658831314922783192848279106420715998608949731077334056004118591278115493008592025051691685523307787492964231139929619744492091168155788041982884362840698043746302472944659696889064995549215347368193358693464151959743555384156924655449396232673941825479437827632327259593767603049842378423299364064773297387940661664159267932607113527773469218513563562818536143504252518558765669472368644028176546379694301754641144830475433716723760652600520944522752114645184259792353218828930641504045990901886450356055209340181603121574140387256446122733908465185515982062514572446180214769527039718501090458730569343506251193378460465644405196955365012405380143815709242697169299203797869775423564994812304179818922311501998178460944584145827717648405433687116415990970752207827660446071622542891757444256698902820958889457523321232050792584167363133842236883234396732957882950983680761215983873225517774306828558789492623511226237611308209890156323213794918037026780891042700393451073824742124508432537416516715163304173250620393483853618090926550664913251533062902609493491588742374264474346910278263064624813997838946984479398183760726012170908347126295796722635127315899629678297802147378422153700685724235984218558099655802380475128997194504597763295056511137174633460356419729149570259313614612961410384927362255955341443174211148717055308443506699522502171815518626540609714824929496285877570467518479185998029834954516034940166413835894403681235908072559744723585239470492828680184929016768228707075029233329200148521796842200751500723516807096674406460211362107663756531464745581355213730838795729215010897857217256442558220523040050006557627177459917561966093722575329574044557777031135508578079071252998463784977908198304595870462322499106070648950499034360567663590183390985480629899335708594663576658501397882439874923671227447683922655268549185453875206904742243101996508257514519724798094651625606399700889462133465472577965462257542359323329063364111465352767549811246805337121693971972840970486497257933131898824945489758011709517240958460755182194658790773030573260594429171668675548113008995721322285432436059991194747078669711234295030542498747808892540064372947579790884526373255674061877807958200214912597717634541213711054436518631993355795965530311530624235242692550993207525341829276370560033380150715454445497853152473671487238495629018956184482290955016023862656422785072382051679487335492880349017704774026126940807358754301874938581511845779350026775120832946040896813785081949608550707349342797148645657814587802295538927334689169776960089255067370795400671934782546737938448750042177611565400342867581763488375998998136280140240380237515829095852650310283873255893373716995278262426307199619874621287147872260122638540980687269033545080102874880441183648032385805172824316908143369830819718172326222959531833845452126333511098161509225558001665443615053322381939552811047817579423995764501454964701056879643606611217093060370542043788417841775645078019736208040819599967201869084162965151268411795225957628349348879936395202541171693811924236653136441566575732175627884000510299588952288314833633501693654878872543193537475297831376973240202363395156024490731736824760967781432740979835603927531569434199328037375036345748553849361694877339998525013297612076468327904099354717217725439556410451264110681776014516641030233297332375489158265896767997990206732017331234955740067451171426126571128333910339053859931116021114751938204686045067901769819154605705398712725959256171209439788316173096611220845152570497962339780079589230046908300923244636238088314698907119240255318056740912436416398579597889454754208611433905680449672345918399032889174799298625068794438230438720012474763807347309646271487053073468041349354289457827730152668028609421506232465287794811228914030293125206746361591388118616131616270763284778736238431139326439093905394736922942334050633389891787992747011388005199253848179446405109806802931456789115024928396527080949954124397975495940283370969023594139634823133231828032692241547748360312777375989843989034148616282880951332454900540219224688179487982841934433570763952005095782318259515976795495550666361103091025306466973106686949444218431797262114799306147139725334464804562532181421257696774882139839534832394315022680473134617051954423370666495911974687229048344839965060549226377662094068707682413624828693165340655479977826374222067149740373877533657045658000031551143790466294337698566736558917784436282914885377031394882456409468669387395534147267134440502007243376269764297366273714155762664286153182265896110261830480761904423335022241966986187656247318091332331105544042173796965785183918784799359892612679063071704285686153014737405362548437333209639729489394431590096416391455485539520489944947882388300879137286987600017824207329010731315453323221247127553281235963128685455179321103633321484968330237326089326981945437812181914157771800308090550592480271959190247491130902823799837586726031118626166142285746986000966589585090207323453504910958794361717609746816805087784802828829885038761525913137476246508907028050566987180099184648330617116318339578090118658092574712572444214858667086944891204991029068630899015856759769107576132390808798514292422934006444183708226733989485186560657734916893024462992394518415909899080922223621424570756418881735875468820934547107839811787238561018621304178719940810641356122754340482424331453718012654593071881324517809437273071333365363729460809464255951244072778659284122048561374443562194651535547839270951713845509404747943529884670542623945399244845501351410407917183084818665697331199883902062847929168175501708150185266662780053987913085436478303530732688887299741506325780537073179514813825823885848189472750932947694539413364948620176571679833970996222992744530850603751360309716822422896430006742305576834602409310583728444793251871696438442443659801778528633397517100836345601884733334778129515328133937308205929139437871296990934306312576418207062845099496928359129688328129939849871067591855427736288913522370110870427567599683082885856114958016064307690141939538366677728375932059472609112104379074858765830108596450454767709499665869511856714998229769828842718933589797013571158022695559131887639632541279178646967460236034658703246811767941726977349357796192967633126841536885291163176551045850706258756324539202227778213216582522417330032252734225062270952826971023206389736276499484230517818921276983983208445492207422158280273060383906291511541032943049907203623877822088501174621568689061516392039697829480032128358226007164973792962137893786054747430003559428992889688487887043023082270569130237252435861735111330411541811291308024168632054304811464388199181849242899652850763325602968246197653516227256211316687916670632588867766672131862599859690292982662796816882392694337690557056284818239453403824083609155042533391525189835999286309764494235080425231014609429796131291095785541349538827526004008211552949227138373787563429419342112670102657353060255492802647541655107456250380818242153814332225977605112451980630219847420606690593711155133562871328641626130068291862583064216653454405585879548313135871787282478257035659043989104348884553590701609714614420740676953143072046014109900268279311793954044249145047760467656213990917628747791684806947575494468882281008757691203523093090255180961253380977767507429410546899241313643541963037886788057312638041881272260066909634906917091763853082358963608395310359814106004622021792785772889728085741972310322567828546945102899339885581064408495656962904338133423439782074415655158797123038060285736241105444946343740560682851082726563045762308898448558763904257774257650370677823220930507247175209813186824134163957325008972310254921074707084451006794136599170330251138052375149831146359109866052273694713593566089213667364862156331072776042591516675989430130724235310463841823935262026179030212718164146831396287619782332838208716447562985557909369411590955452222410608204789391578183795539439876405169364431950787352562126834909714868804703076204019951393057757963326305818404138819019678547509182897033437210674402863206198414841461379719865079839486309332893723841000767192299263601671069099480037213193996760337892140885306270843062958872555876996269910560289408346722467640869514943474552995021798868838683914759279081341597582238866620759791303253368200885007422875330452452666108994419837609479390609539460543225770550190679928186440698559115218881008936288534238292228933699626082450340698341313449825175858010718549808974046759718387535822475467742601289394901802110396882210367032054530388091875660212464795358692785837244699446311009346314803057154357256008290380655674256487047073278911593519993895386943022208038586309889519736192613812823638083640398832460028436514867200653286036558573392345788810869093380769733492358639103831572323505926121513149680693021638787739025563935520134706644719467641305299479100899716450986545761352658616778497563026528836978514149742622964685806124273304629551472312059672597255773296875109187422014810449734550187652471414664685492554195805345794319451414152173274464430489022750364014397570228834164824131686518298701899459074248025970815299519163833876946158599793460370095670281152935141516507434407900277536478526659177173006364648183160403686027408646755300436652019293098900113445991789888445964091669080177500118095384599018888880996450526375440878213421959095213112253154575793463633850830274882407041312769529751968118995190224161534976318658995033529940105164267766469387979999062042198931594136657593194545897747105679992039967996068603252500231400330958096593334271383517960583863527295148219047683451966918607902859961961725683961725876508704840322287094857389195759418741510857758795168881647860674950781305027001649757315514702931631197844528906626190798101781205072893062003529817409950819968951797908029443365739878654187500722168070020926365046980504025800023376829828653406625786980066902900043693325326826211421233142850243456774756481378438502740842781913453313184982425767104018661946447291290478165756924045828710040027192924608718647475286731727400505926312544725035792136605802666142038842277464167027219671168551282726928059800452611301810702045951642115426063763820905590314758266789236115862679813007002238264618261024762145077148434923940558597705719963174698903363067587897342816624026764175255728253931721724942173086290182514750343605274232888825703617210804955037686584745632900952850212198681387623450110445909716876182410902918254833715793146670385712386223953580988798174956086128391997687958898396847168564636126045408492274491881478190583972178221818525569596607857529551611915381702852125673809792014895796572844611245853274573605115247577999640954165721083960327694804971755751545116294598770599104148966773172436917987831937591948811538146031993954503082930845562597988840347729019984732664885458532274237165220677422837648372512864734309489984783350655325813652278889506552398787019385522598324199865059475804586166379358148530214075273808150685770654237843684260677947659962958870242493949005429083387864963793363690972612335689027781808721297111626889185467938106586929686177366993531026457936393456484029338138556522232419363083452433920225761216776354664147375636069237008128692645222906001734627297245031673316723842639925868331770295475144879518856502521962691981349337242060017219979088400223710200409416225834864675238706998242205768449048825770562892752032471583452646388704019220127381340068688676380192884902999190405250066919534621108316636830696064902867993797556629117541320202820821282649331714812848753469525200547263143814194539829679804766989073723349490635491312628910555399193113426322773501995096455281167541353281700496338653077340459605903240324675689583006499707958047760167683271056442589685620623582201958944057366272525247570994923098303227802448606875467807549059901969474364866469575382504022318907440783207394049190131909945522526205954391498450305142721038594042086399584675936654827358905224661552780904962868321596945143262652597503626358484728824933467216908663111735021564299757148289002399229208579945618209768204536578971227011589008529457911713418838330295419780621608814737921622948114170491256935954359504728845653955669732779007228811907163066950868817328062568513203975871375654777753303147777957786833074467538424795395992204015428067802582073468785532389016104955727563820903158239030180431516586977700685068675113548562776676699700851831439753891924774514989959410820860918048463934023027346962345384064616308353189006458904692281106837298443625548089445164716317400571614395289113390401815358488832402628800139769493298323028678766230788551331268786085840902087467108776321811379942874589571784363004838856983403434920336440676796199787606824507877951617036820810140969770991112747514541137219793569873072878716753983533944857218603933679798204577748679840436338630106203289682057293100660415147440836988853343895257970200847577272282681194741600513780574967275067014859862462865996468029263949333503328317698617284860520129459562239204656132665664159669539110404870727410735854261193061564306899169762182607659131830379944130888576209119437121879345382121630444976921378122517633577948918953450538216495376204073358518776291889559182704102490251872256646899355139630049060941228645129671660284235064608441989532341189000945686961653205951491295741565245002335646246477597641058405058516969943154245392662445387174800763198410962090838150215437700567175491956678311289735533043710788419832621243042346918341233089680609091569611745710929557691583798316750767802114496134677564533139430222284664436716332561857758282173619839516602390587309508228673370617472113565337118006573069058738377021361073955930815884929919545770692072378298365302739343857477923894150721592832564404909347648011621685723412233721482506050904726226095019607551609578182907982517841570603483960199329157718428899087913309427976547531721811943323460184980203624290177182293018422604822570821985866723138457291580296257809935105762781453400424426880406500593405846205863075036129271215943131617931366052711652354305117014731340668456872205431342880121169041485131408088789217696547174817271332152379024543598761096611684446066969784346494133242070284927362563479944178805985241959914701656670135837639929990068761676908371403124865595341133634653448589566451026186696755189647974142136179092316748579508238608652561929829182741108026023562381268817320586792622392613085369896811339506675176211669074830339741531366984520789570575258789144884244315091746802703725257510560640444716999235892046263641701599842231870940606287636581132774902778301129278658950807805278712829523015660038309602663128966025604381371658560534106635909830681456882395798032965844496501315944069604737344717958247777481656018765665700840120857209800778846625742094393920336103661554449933733408598337818546697477134332348809090159349684124832828218556388563317269666475172346868455521895639805626287116726158653874759241021067278853336215967913191472799090737744161891508802610345773659481080460355326246858517965217230047650155459730441048497932166095890799761026597822880832305470941788241369736735002435600723340835110459493477428124908700591156821361901511162808874293460178360559465686485188985017118747066985614909670181194058259425161024929158192639988969382225179739481001958849726343789333198007219431290994071836012049071143194525724967069429156358414417622876463992460074813356651962124353283759483478483590501076272527553551222017934483276130149152454026039809805103167809533667909325875470368052559769918925890751015838354623889164826243750346351876161839241858625582784119319189129512343495778284714654426308379383759879818004106327868117216544544494279363424307594190671651339766286693337173985996275736985546694773564835285131431888369750993492635971410634041579516476556706100012059120209750312833979815368907867958745647475925354903805114458218404442329586330160705626503646757705195225851581880363061928767046001018362340246586241672407193881439709085323168779379441249633171602143564430799592232074817858274316890372695667001008370937627558370328874708861136293766537352321684543013716481464118601000182103672281566329403955134800448129562303168076983557663847607168542438341932759863534760184098721792909667127266366374080866110586928628803835177516364678893414243531028793995609703722830002624774708288522969245507597471073002020674577635521902350003289245773050394631707818677692682948110591375335963872659438278751676363603807013479810126809640652968383297101599054018870001659180539865963810138902215723339011241823109331136625549191580849643220510830544469584327749268653197827688106747116490511938727875992999679758801067878976441085517919725702032965241258181617958691895966871427783513255033260886583194777879608646880641845448283480684511517509523447602306040661174121909081721406588386274590201888237393822101205628022688031389407032771355785796100267336146409517475704125323309367189761206123938858157014872432143399582694720323072197651825573983112099731701034359683149133436936939201839315463794475070362076943602388576253253607195219818526012576584404098941684749072949463758493422018564573287461476376707201825245408052642634687180640730725786629440490876931161822887162972358635918660135255595734685650581652961171920806183726525595105898880880504508489990219892756547799404909333928024495290581556299931109994559753541600788927910740991134256745555195473759079916117587349308965709408302294856607595036153931155915601079494213269897610919269243060099315136313337507677034320545380102012639568552434674585425753505381818565396025892005425430680802372385912257997724517037296172220649010332753833911400463965469168570942697317100173492609808075199889230316572483631341810170856372012935806815498179601734966097656648009278627542144603750370665124088013270511685751788477540709622362866888132726662921443559498220449293541243959026840436022371182051251973124853370672805776401318940975094674318565891257205010542806689851348913547348675243906537255706514392583685837943832538606889279847288082952994706224721133906870522986884807528145576430226189380724370300785582019730475716473386241498615148651127092262250204197574059286079100799588075513839594774503969379649293735086213894993006832520085078879892578388042452536557058226023665202404574956309102601593376156041878891806559994262056712614192010216800948972709543614727619622278200421772762955962467862082738108076673886529458894196912135742919885097147782676038674166958204596834790625385826436280848755052538146453628517202801640903376005194000817179777429151353829936987014154322550108545398989634795493447625385171809943805135371675762860807642266114541290715455995609248350838084787049655464509265548894681183369328739486492347684454385764315887473680035299249214490828202358070668365829405013380648208821155200146636503400911745528842269819946041356178301507224521680185456421329952935181184855241563693093090169577363793004893750401028182377296301360023686359266613606128084681850785073079008875873543643398762573153885174682474844744358557531433477967316821488112881546997944163863851695248499891310056454146424278432645412326853732034205576458292537920756683700686056322348271966021662879558845893579504735385612197858687950343594621811986229824353621412844573563713884447206340989528032862245399067458348307894806816001142850583120381955370337009449157296789998846471040482914428935873147464447785907485268029109699222521892553656869217102087501777785224417645693602765725748472037302658964494920033910798708413848461447479857369967295931450665634225812312894015071117984499966785666576355572309050786152947116612478983596836795988455285935750699323599289393374308251233590971581599830917932767258920642233843823706273424753056431080979614874430211678192869773880503728957981095296213914953850051661033495627759288199909295294892104208802167640410759828777912743315935972320838257561799789518927056842019028055180068071512879358434869511316815057463023002332854886849511970689290310949080464050722106877857109725105526031712219911044022498777959833819723920524521277333475985535583984163517513543532171932841781263050262938285474252836465124342954088425131385664853706479869703250482961943930117073999730213754861328124643998128236051063504258612061407205111958386100338553673847300191614280625968208450388941357025280894305694324632217078712777975507667351622796580427185724423979415426600985106072050245051834860233164747877459248846044913849261109437047841438663273319983236763444027723140738805165421171855982386547222976062708659491400357852769783682664969299390788942148551569008171887175376682743281952318471870508411488752350285546986118066101149380198503446578698147869174189886769566815945117919196768970034262141749816226638028585803353816916679949924363883850145091358558994766955286471187569832812681395670608293803050615768882136366192278396775687795453316604727338366299815885944697836406801596795151502845889387383986084023848177250645856258326808097791531284750188619802580848662132296135074920959353428684047240364342396869873798485377112606192151538886793962234704174178268618431385843338281030326546386168194209493669945398986840388792492223475136672716668776771288745060280499277954961954812441601310031031364346899741906108622388037559912589557542611642574089806597172593166759416129038461700540965420041884122313501503903271352595954922046747050197479715734734882439607658170367988777412578004919149780396743957197353645195567277373199616999821191867935828865631310271819815330345667757105939672784277238041954018142693064956408712677327169091962196886521275273637456209445277557093180988593842649617464596579236835565806434576248942539820446227175679009195586613524557305322786945241223167432028889659450303004991352997326812662519295325423382843211595004677850041446630651377746007641767163459317706401853546919831801217739834705515007282146990647650685199539866365482967841627207580136286308698892388694764769288500549739440526773434769761065670221613385532371468441200263631813745702700953610640336982423670657685845768745992918758946768871251033844994925228683609607525138843588711444389551091216891502888404771034142806049381654355887546270769007037352944913467691128178083106048769913165540098204837996073583534218709411744693805470693568383708000317814089767311486033031647985735726464715850508107526175538673752627144771633211599201216789771443994941176031276805111702637767084632837541944828476278392207764684815436210879273719343525203045552653426320741215872840927670957443530080303242664440685243046474588528041898804644462674651051813230271635211774955861348181847502476717318471239508347708670998676648916929292071097247082043329601673987826959645683916939442201060936920964342093550998716848021168461696174694565633026765767492499063865369566680732166635807172614300816869405997884025840630897440868948830281164234309048809669929536861915845369527724785991972885017516763375467411736021000308815354187315483826504901361527189777736298750990361364574867178779823295102009927209265545192648359000152897153057410914107525429859458111852924383158034397159117238290936311843250481700272645640975959244113025530734660450511536699140680263647660929516701869749005051125341003401975747202644260058357026121561060119448509483545740801337820090988621894245155283671157960697608355282239589646415418999552180480396558538258339995084123324413163645310108346104135079516887534887728437405646747654097231305075770596525272090179406001616121712744945872445299734936810013679591081880169925385123247611510108226759720402413124984349914947747356596350061663278763307946381662764555764485331395485727908981349090428437357234360468708979864300133479577808484609867094297087625908964020528063051697137076435867020335068380094691838793110874067030295018989410469800634637112813598002596990687690815818026410088391654239424359870856301342384613418266826190449843487669844444753742312479786822615310489408116330714543965789990204006669593444128367807693219099903180117006988177023276708571848169909619829909699039430476691309940558775190002044259902502361915670714047593534157479309756830041441101773050525848899651811124131165152329987143991863512692606472994073653311849201879165458909035281839008547381845928254696459654518807014359821076650926468729568479959649690424857256814591186898887374136984692371269932722309567836353686527965325229322771621673974344971201795282039306104686895151367499607698699431429406039385847582638115096691301898888822263772102396655031931914522262501342410021447954016709862274554706450577057679086042426210598386561496836482167892841805723625580100872812591489605941799816760690712711935674208003314095538385310259094355888971812465870451960287992761168844904317029237621398012544085992933760384295772616447426874664015808705335233967432066458870406199988971818570024877040993041126620694184458224248056178096864474058435343266584474347681622432484031911837505266845360398704672359930064904479183383467285735984763346356135831795499519830594605094026658987770745751602823051601683669508382699272556337299022088034862211553275752624157511466241235765319952395516844642746257844731832089072228215211979318925740544683525948188341176784177028569838113297915332467124395017043883669957227816028188524050631605852104158866686160019289659368828641222392176350327577690236002334301880048229483990444640230852698294562838504135088283520687510441600164508712244526734362811050668539308376896516620328612409121264379552246928475075450483791114933831828590966428501421749556855513300560829217946107290619089993772651517126168213133205500647929161390518591872435398948707604600878475295616679628330622082328459299150935572518808318564061187169585172885991814187844062960851208753474032566813223268334161291002813853129292881540989524974819405652280749952596860682265842210669279997549735696006391983605926466283397464864604774966200048394216881337630462659391713141926307940993463691706150908453634688680244653864658645029303004178451561590028099999420851356076269253633263236164647952984531341597516323532883023932256762113409732397290992506257041231240081854564711178376593102203712988220871671929960710747148778006290146379624209933539857753441586447324274076945308983935398762190272219277634476245036705889492251736025372644530360086830153613957064136888333788562136255892437252846149113353396240763810622533947435788933214817950437941068462567521929228826034441155868142261614245049563095000582119040776402286379495003199174914840749228584526122457864974580418695746845617575510572072025154568007031676191188497843932859650905324730809661664311051693742211268333900678864684656059954255157799277000896624726136989315294171276314130498905077613625518499687647357909377955339665302701099751052922926786373319334143493111257251701815846364463084206033564216846418486117239966809362058452717559717729780358906982333930024010155780890587637596013019697861276425728045637987571746158296241614788723925137925437229643422531958660817944829504901730393966682405820951326848510556446066399909878278451865764854886631547613033152226512201256145640622261446121116348130888885418452747810908480546648180052799028226704854772654656532199211819869162783003304938434733050885673408789937815004208592969461256047851617859983869485194010315145811136484526432662909772363503198021254732441103074815220041832838185448733945234638713651693562429973424632932744186315160593081692163281559275936839264497102094418221023095433251961429660570367397214443302098323780327784188164404020003448450082717743033027488796491198007846563786361936585212555253046004510543743492773502730695150764535483066652476579102310589225356667528926620766040937014099470953567194701698541481947251912337110543964330106798323841980910559378494538532613304349208048748429659775419343986980336076634255108297038963436400161471584728112450788401124227043472045708253336242242593212207166295538770797846854907191837385098206518300574400435604224278866927225112643433886360882404599585236783251624326484792503390672875899126481387510079193838273176655250861219411549538144597809808147090732070834295203407257174983608731266656503321949225433801475183277825051448286103178534351300106232611217887994802299616738322854203824445930692237214330621887846539296528190149681690825490209393604570702482463722317327338924016971040212647571803624138391709338760262423606419686538803586793109203826337895128706323837764601878324931128527366868502480116437909209632380388537136712391553511639439291214219283110641156807751705697759221524109340152038707684385137523002215973282160134871278521495199802077004594571890297285710673780320471129756456364895709627118076901988928543229587033738775157654083045095355989441772983970465625709462689348715689413674714231159207059718463897528048437171331848542495778093298580851231051925275617763510180821199164876655934542190096263573905672559231568633131620327921984900229861406588550047846355565141424234441821609316264839765685329459649020675801170691496767631944758481232745914108004267518840595009481630060944744873817027101971549918834449925120739578828172824020226138386815806312877730031144181607486274715266426191110409252452962199480925019577836172275637411570482717360980358279400549795578818733125242827026999447228120659446942860329659520419034025275914780097709244616640809817032093761829275620328297632781387237531991619600318715388288719111998196419030090682140333545713919699479502567309890858970654304807439631388536589511059728340088156232985523206675190220501981588529505278141092665285426907070779077959029791037437070577309977418646263471539871606281437110069246179065082403580435763400901393035577111682554900942354100431403379462823063366661979566583625218378027842090939169260839622236181933310574693755705710819192178882815231357545798058140491021967730371300143407362188646242626741961347485969727651418152778386481488563237007138648610792897003271917096024421883942878478605646449280857014169832520026764342213463169581003087397003180450525060381390957011863299046935302121152334336803670613897640352449069737647374956457616213586618724132788081756630885538139117964567613845669246017404782719692367787805639809292254240260860789782497193972347388797302374462175271133719162333185047434496692942120483570168032009035034830920607755967047351300644784664010322451694974242912312423541403929128962769562322085174795987351091965113174265130347013084548880731126413791758691604062771362361469272192060368272017362633508290566407297486481122207233285662144041147980628564210801552914529895618432168422497633716917200568605289731060409409080808880024843929767515623489456050168775042773856803388744988895108280297872041213450647320001290853965689562890375128190949629549700710455187602378302835606000782767278739505672121628190933879496757384755682158320634116281700053594969261166519380895710823229820495611707391244022727430843117660914493497794473475875864841626437759422087314910182234200193269430759440685299838351206846644396206781840589362093806192179792733587197059000137235254755676228213202451307026063798760472395346265986504264326177407996518753271334671014746446940625732402826525789234543964892829041556657151051958027908663070500828069254006679779143196551683114513721430932697238836484232248672973842529153354677001019663849775161773560095894077078685399142556292536933982007287547922727998031619777931875938637494743086075701388404330298992851637103643661877407872581444414506389051052058466381493966561391113593620663390389060016145938556379527340255686066271364883132460911809292200545333282147704401729325352722414547931839204293607676432994675533034501829620724374640141101573162025183179315132422280819609060003166845318119674740638545282955682547964706174773127748376983104682224456519125059927729995395955737348406433297928542670100664252407185740704132069955246427579149694513284543596204484729218806698545032569903781333226058111800965647530568101778377852408715266028074501106559482685492006448551922604917816078234972777078551354251964273923058941682038139975117883628731578082290734147801973000664093756328133232624275572031453193642174832721226830996459440626720660855932372492982899767636747982826774973396243576510073987872578035806915343490716654441785933548703404101504920773576236510686229658596612528103222071569328980949185418085059111383745486031084113487888642077804580885617008227535570611177534180055340454573828075706569561160382651245970496000686121629564580336532475186019084085350975537271793354948826686683160509155059330442183179945511691219490161708534762399564548742917629213612927417748049639212805239014711234338485206877085681064807159445816706002404669368211544032385992959771772282467212144481845583543143587667768965230655433780674859929315551130819186269645587816353442482274400438537524920823673731589850611745145950416210545083176125773558497731235955810988377155314205565919067580916550341221770055476893729497408691008088233681815682532458197089997363444825198682718327897717852153037537431915633560918698099375353665345924888819501375440548287044184776156977374957515368113901680886184052545881690085026799625158075586972095056749316600728973040630368258650233606460646215922640679927551268371888921496061221946926668280611235673031540589036864082899309499901573787764905277625207231446160016201633090415222365007861465688481787021166716608605600211659215589194259370624735892964756954568963865419592903294611608005568181615067054282863242985246835667513550701605384487858505850491149910916263211650816327474857618549711778212553740559411637795293567311919574545615612628985049293391094070045905851169398927772713800000569090729371593690271209027849163752555152603198907025276681864039704016517978289823997958925528082136483527910239462008990035514409037030148886156194205786195365464063935035435279059877269443390026573691061722617385372481119251472493025117807365818735894527309615563476220693012173538780680079335502462079260903423848642774561825295955707283956100791295586427627311007119400888631913927462908590239416462786122005565832825794797640628696269818562328347426039091280504837953817032798581939253430168811738160370871590720201930872524311451317847121053573323328290070382111105619381023961601485588914974587450948910242490034463767367932975720485528270111076907566589084638102664998890586113278842475831658331529871279283014902313838879906277303184937446758135338727856143388517430979359075360371822804875848440213599878381106971801577828508493960407333349930072550393810448954754893741111614229553784765311719222165106747173445018133336192699531380999062567644586862467181797776079469699626234376180861063468345878833039291396748666590593883009271149770813713001590500836837491298634467759892516377965588077822073993286718952550115270851025153972153809166861099689342271899563612856634456476333088497840823111043730953219808565351459739132449470396563707983771451400540023559349695556835817771949854825965137423080135806554522278293014066581888867278442678688656781797999414857972441245207879987207605502445791851635576305608323209203614619725111504825960304347356785732244174068347108490968991261737433549545108850585892011367733782828249462870947377274149643734630928162835972260048880535907265097567402979259589716495047642756572304180255098202283126153895681658249510126312208161536394468992734544192350925003898234092011997453987236788930754368447631017828775449238287214573450451065048884926342962392026470581054178664729743401315060949668860363451379558668329313073182852574471520615595420613431411500590941458749956507112703657550636683186773441462344565448638776261811524988923816175026893818740767111603674635916281734169753631632621830446383223811593567706101171177369441879491311428627638106501131041783608428490476438689132410286608361045909972021990265896639424408116861022165573334153635659323516253036852593675032450539958994447418756640966665250420174950254655771432079957659263559650954782688894654535464548788106309728319190719484132989744319759446954504683993439562177356226113610797305375289857574385820681695256253014147332295971371639225849693842357872396001865785207279263527271774025532752328108454841229946388201563530185114845536180613951115713339253463907485057084514802023003776240891869474504237712393033315628411060591200737496954923847622414417101890166500283347958494718308842341303403380129369277315199311543582855765181322922263098731431537997402675878218586528367491192659588239180273931429810919538627017438427938850335437439411902701958456824521072807998015512302464083985769727725257653997719098414671075443497108264795745153407166651017410532458333347097126178991106736233509420402562182298297542613156201914069055127390699526572259603795333424588641086951053166948358544646407346454615638590464267935746725031124916471282942630790466519158581742479117621650188772415128058006492536876976335567973275884030749340190426713632139273730271242925337859597456171140756980264402710648186104642978785099345891207876018866524755379301555782120473156465901124118224300855574323767256214353296751956232181097667790219332447845675677742030330645794927849463096924808667694694727557819592185842440937516972085674040594736614415761715993355914090775251448304958944493831404178010587360497902484933427196239354429991077412730733468572915652087483295724032537777697630595653220695397571575229015222671388379563200467550713539578905049599632526698888924007864213226011603582615846649749915473546953487662821852043988534334283438577454578581259061794320403409760767414598118500626815498399517488762597410108131823454084560736917311614979268144403365312047776911082689231824664501875255706401981147772070570582989449932965982182346972318307557326228133695711243217934816377275011532515316718721808151479957156957074140501676274022787500761826017846933310303567628613631939074911476256880447202508043270294313303230389487101396763409353344999429159095193608773999025697670810884108854657759827225203380292121728234185113987119412433422064289535716153447733150519147267077795334741588677503712074196914167492342452157061403637922497561598665285268886140692634677993332993752817029525127668403670988090059997713926426244826682066971663665350559950669334874996291044958659129024933561559946601775623096408910441419112752254683622265207448636496483061686200956830925437871298487547662307330401425238962813319178477033646785153114675553546044926389804168591665913279967789823355236025247261828932889264725355163035700183328719928005365355941377194432555645025910556318576332233583669609241510222454561475970441327050220202173436964375256342585330312417781100772241548541741660019242665604537811607623641050054748853438990388354270908817239180130404667978665426761311740840827386764704936196240309127935640678076943638811340904370190542580778193525289296820599269197804669396939444211543009313065839830742625822433639948694730847916422803828503789673590796920030557099365929027390334609071754127565287953884862144273742297893828385013350269656233099488948565960346036681576581669037838444315978340960661414201932710825550276119086105596763376798103238400228104008346949093241878528247410168252374444613399129368239764965062970625477619767430270231670278917140579120064938940450923288076938731877867422988849871060841603632075119321720139945009205674748830490689153762527247142572692540342463457302494150910175640437032627471734410151529575942190814377790371217467504900141591494649029766984802764990032102313275363666913131095822694545002413898216437494651345841484412419403161466824160119192440353100766224207368781502871562228527413360624389977595465537106808747409644113750945423464243205246501477791571653162944619761563387639336628421101010057649632898018676428664404271691112780533131945458912527028530895548938605096238250679250570154687797786998390233470125821132165489596174597304956562780208040113743582792318408480694383832796747277515174903386223455926793743332489853805507663166640218785980748719765997295799829859425826279560934722908886516227261143380433659479565272757096640487616281996648027813790164111666429864903690317985591428365396233816359813907032755583851832039584874211599561744933535780087157650597798864956455526269917081138855674777153818687027250030073257091708631332004827104532634709510578837731390173183066227299388293831401913575897110823099099235925374065118534647679816185785530901301650936878575481427427971908083128698315815677574031201652823945098124838502589332871872260703544674970715382732202083412732476592504967115464645937345262633991423440377229875703345658154358198443068146371224342206526511606571856531064314842432788167806915148791640629250402294760303185324547578196296661065526262317666468385440330836771362301719397199126331641048929685548833394087337286503126014648102679663329393436533315603288471479273658654520785431693907670540128032378504109476703814711604294680481577983444774384511728228233547706179538963053229761975477430748300944249488957221991309358752685710979421814901607259231491042782551029538017446717785192455729021878599954937858426838335271757815937832248259470792058872457040389301275467260995710268323974120294571620129675364898840436845913012082033416118251502242585367119413849942979801675050870184454616227602445896895520033666612667759109632302469477908653620535342938142537253584711139805136950618240541161297745123940674744973989214457716313396938878599567711042488072547187421248985743404635257997687983136566398691513735875920839502717301600629611461684584661643043484881911415989385002397646918831079732598433011340349815904699387473466744545230476962480451235766997276659911851727341000616104971750136316509582256346486195837633786078882334853871225605880723095853426446311715110223088654900310150442861148505731344672397571074737321513168626243235228057294896545107971745040134976043978351337575966503132157786929956855345036851375461121983171287767404596030674920739914895960569094871661441934714391915255283388697137185942423841105066237893264725256797036295639733158639591531268439679410919507328529127703025252565194231374610818306894550859156840731473862409259488164338251532382895061249924378539841972730098758478475283956237064189002515164413572094837683961004881453693317400678710817376664727454905705152399622282344513726331621049313865348740685517571474568084710316989454990305392922667157915725345919492381193866800047616459647160281677592593503936260148922904710061692587884459966404045301513123092868813510274227925774791498209244150168463660795299596175892683203797456224587229796756605420977387434968263951999122393524990424549180466958161740780151444584645236155498366977005487872774515134770933702892921906943324312243942372934546096852300180634726246187252775457629013267663013065972529311306683935361405433231607278989474612303791978720732462827634033537411755654238066449918028642410852884909929972526624807371601596253960647368858659173322067861117988766488497652685920147307803356980991269182162280039598150009933714025860640365634626562713497201275709356621840845216621217673585897668657604773996695959773498062388279466537437992315581414897096078750582338210377796603030194343439155340496068822076952396754733821606607834155698749474712672272908958581677193415601326393436161404090269722293361823303743994019112193730756436663732199967358108981822995306137321948798640329723354676404778500499848817154170577995044058586582984802217331674785786072740717321451029336004415622842611679289024465233482611375607482044757343310234212192856810524948964009170496234653460739876144211108913990515054647226940249766770863332090238421885908080778402310907030945457402293905760100940938921789418016205684041377340946758388081176618273354582089209714401293012162988789314473423079018814069148911660441173563230538431554627479864966234904115449192452322653740416035441359554741489038971281550300476306506964137332318539691640190339593004195099510403183429744343929852980537236926139943096212578229024650265776852663252834250732812535833369890235052332319271924214308346999224807084220519451998397792182067022106151701497402023783161697415200012633827393361587447831911254083708706468054825997632852660005748398998016278947260478895656250669864254535757249857864265069302406104631866489183606900650640002151905183601980998208866062058061418874145987521873782777106232344862050341542719398091678490132207058474342763098715741132574350056785812901882944359843337007442633031819433161216875432738637702452638551516240975555104761918848046004780313141385904260012273773961386244857171325256328085761809430026858415079468520639975262901412183989661641801760962911443482946082210203179611170732853516612474173349842638329498867024632582747462059008226827461113461297267551176444733420414789625300861974297733426567108148403367848382284235302641948017591417113352570285266130166515791569185638779405160538195917876034242013618143509695341934400592287451720414812859385256386480403788935676064439861857636494752152099502631106629191054986141326297148104777433979121268128602549749011514545336152782795378451665848943613551385182246298217125754650904404926297269329728572777528160991144378367151458579720110537977087656759923698764030176361879909400202294983268742821666179537689704592518383854600146617786562281489248354076509672362373559622882870789075973463808344079720690160587901637014559950287696992055472295354203744729702821369513673990639574259400038928634077188435764860371157162838001773631900723361172769987255095473572391421171091183763562390776057526917537080510631475337423202263706406211363678362238110575902222371054731954832948147899021219779589113552250260862512676281146655369643492272934326295879847266287828589206841820984861146486743580853903130652993736797028448519590257901581255755729796624369424788425719250963450001835751046188606162204552630380128875833449899834250199096105671398802727985430939341953932062806683128843520499223172939592766270441907207990738969480798683001142495234981749612127867328686020333987554417632649020132376465155828627453901723634479142635806501638192795812008572222374561119345566752143328207188819054742048411598081746825971036975067518041542141168096051254212578331278836513029870541009109505889142001937502864121678477214260223308919147274440058517717383664997610437171278089868411264122813582786011190698598184110865344830978043259490647710579023694517604859058204415826847063904340665842159542521420501296768349470341733627347572529119359770560471962955157905989824060729694184276760731552860484085288058435181306383103039395474265101119593934932480776316352437202960909101462639245479907115218335508267776377461068662424111753663727583372086745449232389628781810761038328807938451299618245014726089234507038113275762374485780177648998932726509741839597765626665174674114329720562615446719342848745242663782574418992025308273418113292202551705743934993605835858821593159889077608425122572036428918534177732742498103906053595804532447713147425670542800811963145625666220175353740920365824974080588498263446233953987980429113423677853944198555080613661210725297885074110177481623871745751694259954269053993054575124189687038189124434080588192134612308370972430269870006265244074167098336425289844099394865960757956818698131437130797417518811118619219774904436038565968544546586653002385326215002885861189840943176587285717555036932770772958965812285416077845080692538150878207188283063764098243461998086378901636596282149631698268631774418471942395576712598242325849261522431861379597558915064772000886927693145680023922390801959271080834802995615643420407559355897938248048983631095109450162037102407897357647268666433923067132849716311493503597134311371191949438111667389624427915903818213034377520327343615663539781873872957854630718902440199275478319410089638596580022605233704712191540093973707158661898336246241838574003721837671812800946620259021093427616181881010481230510973251618700939124985339489252099948365770040835805308393416094983656202125886671991246529761765801746880910968325663437316430201985346072800682557711479157402908609301264482523345065423565370997118075115344054023545267736888141328958275129184283577709034469946264954675582631552581896921124141865303894383105927757258800365070090803549117960692917324359072060800427109555149119973512405683594789961550582086654153931151939428710924747012261370784385689626437797349532117998412295296917531531510535309513275754796023937726524664251608663355576032916312323982598967190260241645293354806780966138435694963483665145775101892955978738342458251961411006296595455612534689902082437650253864615009981242440029805661935369578579861513946103067340160026337817950614971754483905401311708949916573842076421140700088535127168758861812498706152626212991367837952600827165907196108773326748409313531102940487147252860589085212683376859299873196619275275681774792526842971219824267483226598594047527111477793282263101196803151175811590513142030553495442224417337652377826481736637144443628866702684657607967851200134028654898034248197736685158150733760152531647777768238987142223289722549916205590382973418067608912006198570045196723224651768373595707396098892919137083333232449383974459624425149510461555095080881609024459006776533346938600592251909243340821447059763861363406496169919767358156813783252644609642889172626768766080531868354694871297283211415393735824722849031564182801901062209735322550398354913946489581190411717903425422115447127754392568427322716887672118845903392501264184731006427926612101734712214201743757940378315179112339674974224394663459090799767786723518097398286348329920034154843602513818007114447518729904749791408876704129643683121733415699220395111704687743156329952081485464695731988185829451281126959385899635968341812879330332819917890498017505494988993272957472967369801999831571283422899521246983220155924338717420736778343379422259404348047047807571903437978729454932021517446427070290981558366211400859026804549969993016725196474877828608679549186936757674048271685518353344150305069622547622308110273263500980254507176157143809546207644173733532883648229585783600452575857616317863680950202228671892924854517974799174332740193904587235080211029939382375635956216617036185442404510861339760338079825134150912900667622289929343282380155303522018108036142444926293798388189491919499187185965555909865561825316540464327570287816309884214875028370545179821620527988676770168847588841757456498129622318177525727743742410753531076835362572586479990680221631304733830104916299915055354211197650829125653763605062394213202120073716575852480678568775642367682968543357746193868883053751910090659618448706568384605882015084740150949051882557477376258370689976662361869625379658633983865797845947369379424409113086884437676407652445653739304513340529902372987952101214443232811118238795607664556132465746458900948466771677908164902577163152004136625865340571271538114788743776943344077083658418008541298431260301353923771932877255593255282978810620286099259553193977364664972558209826213224009662448110266769841169957014569065066910622563594382415672898486607717330720403538336631997289402068264959546987310205935839554475600629996090453951161574597285338834420640714094972810487295625112004971926331355242256578828519799915514917261574523121663194448470635014419169858095620387213553658713325932852301594978039277117446037054555743953495829610340865319333826162116696269567969486636024449981624022603968979158971871711891764423377426207774900766798192015274596727845404609530745221702578904626651128037773036471886511968586771693990879657085683228302912991301826256028496267924283249918331838345696361466270554389553661300674398013809305096925755274607453977884170886811013521813595922627933912669570020042090399235400363445770309166713434943066325346393305880808000240463413451369416411998415414871785215157138850309558738740021975927770229302767714954476238011232384362072317394759276384714643284440808184250516231981157837084679996060399214910108628900885846232337149250329929294943343712031753170501332836282264647466540512063778303259145720514177352298860549184102851839575134396008703562425076986491352656722983842195585328963633664766345535201462689174068687661007701491904855460478764403264175773366437681248267433044706845732209554577974323790466989135807434378659538481186003947697452670975535011902755670204196457419476571739662250868212417145475672017609089346470110609402109982359070177815713526532915119648550599250350200096177494734632076687268891706185582336420567850862860927887700529490170257035817694738451477112803879019007409184701159902369265685158314823853041265588386080891799132055993821337641925699516745627609105738635718763134376544138708658025600861063283807097447858803691460221652234373458536747831026606739061683934444849756854557875547347671394190411607516994714967509809785889158281330550032637064217877666073038107084447595615677032589868979786766955780868922402831462178620251507530791156558935014477907651590576500306185816136843237403471179642750923308249768653511870002784223826635520600024109415111712562867155627053248183618440887618997702539130674064553921741394115680048994193076054528166032675571478647651257959718593702107651826991912820360853947558223740718911690860161193025285082427664715107628123292918244092096711597291092851335056537944322956027281665180984872849422284296715769980271689099397706642818036023412303623168099488835505631536032805180727054420088898925088309558271012630602005348377523305654195563779805424005191198283109294721901485061071730638381544949594262302690883192975489737935917646342472703101481575742333067432215347644612123940888189909001036710214581848548040746549066180430234652695068571498345073749705704142813324272387302612731411310907351505636389332363192860511318048112775450447688042716655694214008679194595290303125394286635524997304397619807965281693823467023409459093528593501493814916768753309050049972243943746197255360511854695422968195485213369248429043213004862843939300716764510553156349818870263995971061384272495711789731388273083678233503872491205444937431907177720362260220489610167286880773910472336789411605964986938220356161923232561162115066313529020587345244883489024932355671922328800608293426505251642473257965696508409299934704686589718959218969640017555610547959882657619038271605809543946792003614019921449961568613980524488047665573919777029210655325880081476837552310331277929974928896206944654726452878981968765193180093751030949900935022749179785656922525482252606901678121127274858587355326565640979004329869108581188978228889056569623588873461733178787368250579973079582617200282808962433893378590348328842106432618050967545838030074490273280473949666425059943476806339571211076317513859961948698571286204073200904160674417973171461067481419583788689091373736365045850721665951443588041632488737868520420534335359438915324167855324438092026284720238542664884776309063458802139935525288128256168725110149479266077666229832052081220901071746212839117634379801001757688183379323622766556324262480027605452804013574031424826314917222181235159733214070190880429102150574582571250025268095737768461441712320893016405157695749880606701140879461707469762273471766123172510361087768137360294549751544262282845797203197215531061285368911234251402393467746219989427310324316207087677551110368385114129841805733127117689604010570281851383558607455375848028710724703275826061076549323579900214657365149130940060117030749194819560109636038842007910649206144067140374173521180586585562720155922138920250604075682374104720297203056175998069046102689841957481504137509670780094410355247077753416144229898905756829920085248414972719229681319139810678802112078071334971593148382349885833820734603372967126048421129505593443579207100033920820364137173882846452355480263422146394077658574050524541420160453878235627759135748196563761202462007414924371509141940270552807498102031565958509961249467947534149155804159870268474113587629157902409941551064576317467486273414184220611864494696205334337190242404755420255880706799518332238122572868504499349390194177239165518140104562153245861057351169090211790498944560621932293246970620775093296023433865920418644392446954277736088469437984977401830929214667524596856875107959471106992208707699888206393238596180134740499653565247299964928323533661452704297827407849009544090756143151758468712664648711781195324423029193381179669734467689477033377317258302303382918879521838656771812478129979561013214941697460498618388394549040677563907937197982618332255248357895801452129518498203349078355982616551504091678219564376451522397352348476432756626412373983222233238729766120164448197658134210672658621824794663401662481412663108243818319229365002836593639335289803579681659194203185685495624461591282780279791746738847282513148958764974059131393929568670747705813175428577820828068028060283989421313749080840940339266130750588560874254874222071827027263444798296828120603314398994119962673341526903885349873354445657008324494020546709422403595653558368551577518832486357427238808223264214874878925167173664158096343322655934200294271885953119434305627009845434980261686651744373679424974818973488564138222304637251731551840527732121809482478666106565150348557185952678671228456788775515975852038594552976401766600321772723011659684962334146530764604415802643213004502532592331310264645341104310118009546189966433020268744406560354199730922652200062790259062708198099776217511598511055413113304152353216593729979237336819919345579730540405802731886880974131098525063490100250131153342138131156874300071008529676249807204589985045938397542677766480127263653685912739448081753642365642577408845848332455282838504983523146993361124457553540234086722049923145135267478765897311764589448974107567077960130152579924539651172037899301497061906454532039438391091244777913477426000780302199147711467258555166727160737402701639029772485811984197148608527795827748116173881592334607985629627671910411028395367918102656551545778242824316714605329501174844048644377314627180665856537942585952441049236502666488503443607741957195975376299944222065566122998301181740166517169777978505915038929362227812615459681152754372063053028182322802284745137781405936193126180017768101851863370034136584058136359789261148944194034324238702516589770708283245787910747165611973517114273892491218108730348101386678514434227515617610954113973481984066261580183714994651473174542875309051413592090353308769707097808141823335089104089703353122050660629532048411996048818306743975005156631839468369359561017531069673158457157338366521888677822573710851531441456530840771863719343892105925954519193859773131911840737991298471684997169169795917727707033588886145224278174688110880010538564236394601539641933630078015681452017781287651268445591159172326916363323975510646969771372181409960368859911767175037802637419211788475253518154554409850783583307816836837379630351097076126221776847600122325960431604411783453215000464071409540789690526245869289067227822441859278168581464819180431181645115531475222873011908478697084431492246115145755176525560116417088929199002965087556910982100199391857368109554174373629871957918167509813049490263333073608871373788135755142685380132641473345088535088445235198234654029112721713374482748889447013630503699019604236003484986462935951221109723453733027744855476408174397219396522554533201884686029419604670191119323848127139046971419398310042544393763828085130826808606684519809702107947759532688590439467315861231198241832461284620480897973066915645494213920615840053270283542893069577273254646308627987303600180992154673781977787939625301594977644135106767082010673659453440787904217234131520510457145977939056117514089624871828527521063676344038216390352360205677396276970016886020894466992934414926213654141220280812067964314175705914060859610708490800190470197133527455517720509214966912264617621030832857442133818782468621983433495060463246415634409268839788799130744573916821002752148641269156048561736244663188785097252412312377023905854483247017042011917196042029070740484137711243290857614702864208944692411288308543836262960416418822624815070346851937493777328258796752206639523625651785920619708099185413946819145725019489457951725271039564098941420970492562328343810691507673101864820714181233165110945844533914488709634715215549116122450172581508375501685778940564699030989728607179562745709635792944534302271149286471964970546187960722841775073415837082714958189087850436558474266178749351671321298132020053709844765769289440850250874829775238241032108942674753556194066777743206487950987405770791176080877051243556622544157977391003770166088164565313219808090327103817278116801222958100931280257601219225191275106777715565044123869092958231233947129732393215589068966446358118535872552871943405099699472695584787391270256093749597990238974069245420666745982249904255023276337209823081400039635145161833084184595935058404365012064371947845994285535330311798373052332174629009746952558124269480841641379446232405411552458679124905148803377786420150376718326805436016879442380809475200954917510456582799161848878718357429333486455284633824840224895241518456506205816952582664582225547908492417306375861142674204798864016581012014808173077735116602907646401611631125992734219206128362748859747221420117643060617174410659484380055879242001420284744651805734816198254110757797883576318685765470999204777402696675993260035052854337719126879457765249079905118514720031597910012886120344679042721766131160855421420334244498870665018512178567700726810650259841273961252078831728766785721195178599989413612653403280986573032043210067935434106394824950889558440231840475539866142678054947129650744232643215280008396642784666905706405645287227338379769875825321629513674038145385334645494286237432344646402621293293708868081425031502194872284596754015556242145784496499097950870064222066250436726853466270513515585853286970867275555427973333214019232267603680874862101720386777117270442720035503768702490091363616962609008353661719716114867565252764627015864646873655339398990812189143022519285172653785998509455992950486400414905805705790357490549806837782574172034949861121868626965665429067618826835791443645116541953894849455464857042457222868173053370971385397931724716973454587884749344362505766450788733887526452337917017529268014796341356886330283065774447809924265465152122352989597882659288532080708508493943674669876084265595190575060381152054825884274969059503394632553534172217272392013259970725577753986035416332893018304604910385312807230532206450351078795509484388155305351682419615269968560803803486226202309452827871674879367949758021299711815562443572257061809677167982385939147246210123461202146408874235511260315989118120229888651563467430324045957425092838713085214874455713696385195255392794515972044452306974531140726201759514140591558569896756589030905726915078954483871567149497741851946022158879699933111082251363764177453880811469064207324043949779783902935932333296394610363524393427690895977590522773108884671801475084772788081064551855000086874467992845284521016861094309949492362212705508143841171566073716135053126934256567730905937393861725548929573522736996448689932520012692253499044310767101043030567315614010842945810105655632738550960427540152137452644923418747483844006150010063743995823172214385371387941178376754195406560715435772822648655986411312497035136687337382136100805215755521898803403953206892957208139322017345356852561461415087290393117540970128513389005141807727681708226936377554421119549624251938815574535850881981589112853691992175780817436428829806211135872589372656427951691575105698380161023361606459424038952127631550251870145823667486237632306521143702525039405551334950339529355566582236951050296234495762554894656651091724373499727287807647814651253628006733760138577639788234887946762459717424870136347668041506833062180021197376082186252318064431815111112594834429544828433782914181749361616216369999497049938764687873220251798237680555379005836562522920667292461818669191735762788985107578945035030952481091855209551791835457108997594576304484716576996496874299489365270387101141095087262866846297888932454181209617732053306552405398699782374057515771596369185225341534874530165107448633574731170041946177514590206069109490415339351081809675764449823969546900651634564400203375453907859409273946836745816782166938615010881805535904497028336461359850341926547310823569222071930890596437384336731746823472722991352501551058940928447434479120851600891054567589359116358592419049493345240419199193970308985623446446447074629698268934424658654304785492597018814856120990013753850813875881238560716142946574741656456135280931620932369938493787866940975870187500712335753163159146944248387798432095436747221348005231640828886822368478045570909167258975552597902094837815618690803908925015808624460411300392544052193284170969056469337348405103676928446106373831084671042876736800916043166879603241854418282001992926949338672036324388797605632216195893601019538555061140555304989117897388169834151827572183489465802206211640568010574153781932668338995609943584492738578051002367823557038747047440370538959575466399190711118590108141670183910794699474733685323813700285893587938805962755010062366522132804640978585648702937377174807824044192572751719888026205034742709177695300303316544190996733315537779414709157643877456386379734017917472171671153746202757109679556947358234159820131514791699406584953354295308342284149965637672900978663461126213660255055487386337027591047030054778850925378651449323379715896309508542327192480402627536698572653981910813020382639654117223093281164958057263963840658608143443955498461829803916103400968345607275231160928200743456701160841685985746964502570487941038391486525249992818083776762906041522584632363083688501763049808277823695056145588330231341769607585782761505884302540604737493898530484530541410417386950096170511026438207636054029533853222687262707762203734172214477166700786399108047469140410867303061809167575403769408030725413160591683262971004637775117116960145080519422157142073813654875584496602180087222049481670194867873817754357010428408508575709704504417526359452606347890420755074798571757403140256799053897923372415487320393584516407624188282479624471533794857695009583486268441706801288301145118319779337097055800586438502205630458187769021160996907003473884283021112127706993317305556193503520417792645370341520259820563872325262983122550020084818591458287612418426791403830540691126525252736474158137080811637863267325179479078725605014627361652378592496904833299854351275902509485618166490174400263958295450333038312573848730808338581216450066752673395085802121878655121509376942133299293375703431517430968001528936054183684511609228024803302972563874339192070644871791294741743344744385949751991994662383624961119727490226855108105983349026137377599762839542173493804697610949093060224368780491461781259142180270971975627040629367414680224553562427271380904232281908470111524580945554337544601883182856210147644580812837700650965632507492450950082375671925037997166510906263050715569551522394344213582700986864032516281675905292423693175477459952342680498144489557002675530144671540516360555099005475322198626666889131721154666449346135284241181432879665307303570581798641779855474822354866418821668382563749167587489652172917811941635575264449047161009795478928062809335440316327108978426499143935815369842203845053510114656965276551622129070839044253687904640469444707314796827306300330936819018332268149689644162724224285338423046987065756635567202563790951218374430640808363715855423460963456512727017262838655834277515631163999992976322715377610439077947109627276977984839683435301163739458736047961661746128830440380186834274393549184449486271080437870504416981618333203200355337742880612910578776861623116571039229212706843749311402159169855640535073919270225621649182325690248630879891370065738698274569562521564030381706915901061736341000045988758794382642882774926799910656457117217371831358284685285386315424360917628292984800439621664923794498821546775843284510578692215746225829947253506495526205681363935403384935835674018167392159571138628208608218373916374652024612474954592231106466660796267746783539203972886349724478130422960457672879301967487349805616238087726416530600995208910769208796594876166388014483247226609657123144951568059419480142428545245250714893655960392329859498004843980086578923233920659049658218532409659812445964471331894568769618741772821043930882380046335534598238835095110451444714095061313490370536983968132785980113300538386117019665834172232357376082672042916355507310955787317037329138016969676537663309292652163191052954964257762167385587635138302097298624163277227621300623974333021863087020543583172222377230288007368152932859926038001825410492866826412172842545012504447078411258957301229377129027526610453220584441526563989338930681306163641512225298497956943276182502496915267605037791032930970382460996294706865652378977338234384884968949692332654020657649214338154000287383768172883751010572253176225117798644613818776658337551025435882358160970722431756957133321092210788290183256915564574651867790888966365404339586760454160201342172451979873680859326958455385511259043336893956219945132372468948599773027809135910488991941591917756099296986961262848156180750575548800534641839056225343914825927446121861673610357613213035437761510881694533671067524571290728278095727007497755845336381332555233304400057333025187412754992071093064514763975779810252949658916181772620475883033447952292295701017891845556921515763631123620937729929660688424032141208711396579623394821054469483624409244304222175384446278144653636879109919520652779354806790787378986754083567146229275143268790268605499885844345822445337677727154123042899540371264006607591506639400386053141461606550210248836341321800992840422941378384787506611525903291332287435486268501253448249852096071973832784172879496870273097700149964707723010094590347429173652363632847605892694770332039677327420024395567666945753637894492744805454123195101052170682871308994958623825402192729274949053557519682832643227698612938544915954550172156121069115679983907636143233905435989041685572921489258434554481674964293896949824123730535902988079057471814865117694166774296837459302138542407905946941685580305038733218754018020326881610573419485895517446746379156371648689878334989504281206529781556177491048001252086027176871403324012216626225994634027839551181433836482252138558876846050679215140984886002156600224268688681146312516763264793753763268489989995901555559819535512308550650605130509042284442487214219525167188026964188613138926324314460961169390508155694768381785601669150385871769869828160980958951545701889879846612543549904279053154192883392167268667480681612489849116238367101649658280104715916617128186834162209605375049088793581848195644916472736089301927831110563634785507345981806600418952030631537259478410515458145582826462974875673814213168936147994178709516156983760589089343136675344153405908758578591406677429159540870262720585883298955438934601141567328247715230458952842164024086291716231395935207537727502124146269147585299117011959197787440885330082614900199956730809121768205878123356217818471764108560802271415069841021900043613652510060735819505396151426162854870065914360473298024212996993721825404875166691213723533226844490720540804786720081003142212220335259941460583118581606346965895856912577761402153729950431339546938027238740439407166756049331923576055983506619014137473840215324060380597000379968752781585031419553258741099456720373250524416169619861023253176545885729440339282744352426175837940170817315427943014496109359452562990150605937741634416754415087508283118683343592273291512284076530885147162286646976784741739564098719066424847064085474275044188262421869456003348376664723554670482639233996610005919951609882727874631085156768025010497942653247589738344677751344590894979010877079998310995394544966698353072523283056757808015455428269985299347078269738655964732617211103862046164333462085971643633435391514189914720823700748497640386607670870110056952044645504535155722940615258571314838165325374171605526011718150815483180483543628465720909532256899423994036275079681611624827595259409196640971584486319688148253624167710681004612007564215609862811602130160501409276484381210667934910025358443585076345254994831572556562874276053146795640821826768366687115335216491808396228975913243544630412660138846800058913863961841031854928869391929957894792802121146670235817965150843591440675098582607484816622177831308917538405708847131644086464139615049082368479857761730538998900098166356355890731503773190571172178534146749018408817541826958787692071719175273680140480767667848214132839506255484046991671699291206220828536412161362485072961417004374783822149788638453367543347872967590607526245202474574292386104174741084102921827987522752387769100038911264543704798739085101846983081289860092114556508727099195012252009492106535587478831440164067803188261616296167375712110874769654036753983387679250676526491824740060929795117725073716865589136306269695693966799618057520382021803810145461953940380698642008746166505317359097816295412699686800883639622327931961219778836026146627581236047274721179719896981709987212935892576185817645791886093206065091008432416275170871766906848626415339083979080581597389996413464656565739491739001630987142897750492928341004690246682605928935610981881481188330299847519808741630169357772052842382973674355990349099692484015326657821692466498287319790365416366010705904325669117986764304717548546302423550703268175091224317577867961872421816753072066197483645806257217214255411347572325455409514730066872312853167897275083161265647512786741139856855904652932773108203090289235991631523658049640155421251212801587799861979089070699427492942329447558495950656330821627333779956857413772622831015296907260752445568814212944442768572607341834829936105068495935490782957747778116537109846920850948761773952983774023951194031419805800155098064238592544089620984783811232257984392275655441621880818971164455844137264931509918743139719315621364035949649690762191290450737419267677630012561818141723058344554217022665641738190200813381892880045161061854007871222723543616298724580175995959439133697409806217634650496879012826733479485429936166355694178296243042643984876644971564663717476835536057281261092229748587046304603622266643665405757147607555935064692846515788787661684021228704901322844309351276896190230587281860334851587497945495626397935526122253411116496407419798109519308381450429703763375856497340915717526402101964709232104743165717256649827406908823271727234302609821904160500090083718518040128989321125059825882473055541503893766518292168515607411378484947593602386842411784486580218535017917439677084344709698534531543858813429525730506691925532688745493532399662010471647500109634644004818984078734631021947019738264838464314760700003643607749197909646473806846286033662266681827203952541179747678785226678449523981674258196326138945184402871690199246883801179527885885782318247552704458797945942075716697332764386492440244414623043405858703696437095560514653261844353129098314268643674197599804518794236067563054721612269988962224483594007837190612109371202191755796057521493880275297188513654852119206279807459002661628053682822035703180631035522090416583821827047107052271214639720191878683504869793498249395907218605024671643172929082591381056986766212775949238518686073997327785480437023176471298505333044822891658088012263016610434139320237479762361906096007458499270784442898376983711302747246816912822938733495801880606260447794969478207672252250835877862568601024028576524681102080164691756549340640660803321890016607551397805243602552816228529350443869721928702165352981090068032075311205923409597674407323617156273614247645458140009067695311271723832444074428554797456662984885841196059956631593425159705957385354697688740426490375052567440940581278984797015903691973882923731573820162651489452861901940597003242211911803666176352956604787184336296736575047373533716300847739467836812162363540904788753392599329369163807231732913020806882830408423928552768697804846820048856568627291304849856596233838189756174520987128648034301080499926977979066317591914461225214816928292679124241935502099696506523473874988643481394366149713240408142073001936643608277243329375027817510567824289796099981597199869124769520690121616940883617269289819983853999568795348430295689897548312378439168067741093109547954365653147416251476907887204253741606173883107018128052896460794101050306725928666930289238737694477289390346405041458453896345499273601137384463162006048469337081930253874535951760053503327805422520285702960209305291265441892293598853507921958077977730757557225654166974867470584371388782416701582411969685566380917579732003545594522837124744762836136756882540359810968318231438608442751819981101495614303614068075445520069937293116022147136677656969886817327688033761033790970236779251206237259401101485699027833144044802025312145422840459193942523084983974760877572542911184015868736595976526209128664137540176541421307571853893842327417418665880553737058055124542778911181223226877039561344849333126793912009548016653132207475586181780366347538974601750157070751429258275368498820232853496535934803477107126953615279924594382779726922710595172224666487755425521444094351018076138245656737094495966494114881638788216005279341883869870158199121205070485195619200543494427086800936516478374008614346610813113384660589602733262756615084978843068660935695280301668562816748989547841751732389693096260187319276718678811615335798715128506279752857531999984567499706104815902818070640039013376160734268264514154633933878379910924784567563202117018478639409041520552261126945956917549585145148624281659898927161621096234483018932971286366517843084310598669842231266148828545633535254259193805224034204483933438334534603842061297950012694795761516309042878576053204690896809263789586518748196761465603048161667785735221945619643332943431435577795839185882768723689938391719675794702115426841954184464420953152316303809074987498564895157364978215525576444473780458881706396608618828944657307736014955201859095562750635906605002744569384017669246140160907684445721781902222938190221494346378773352820836421798229619204214129933547621464030397691580542915878405120382186673440509336876591093693153929747270314308446919608230449973800189864638415077902155971981561679476447546378926081055643846531525499800429350711684120499606651783264151496737971952187962170657199660458173531207287750321485676263292825621411875297052994592121562458773216601057972531187496937660601436699309111335370265237551894748616916824790131200920811256221098378666840144898639316356592878522051182099945520714211755507111282729125836794784283544489572221126454216562191647308697438447017038188574449094461382149705609623967202719734907376345413439105210477499025873406602425434359078932873406171873734948582965081172594250912105708987636836527314793235537471470321108193781201783962898448014577968489959534480224050022779687688137448056664353247814005355916313343186080646316647415293160075897808955560276635823973165272921743478349127796992555142238646895787563145502243795041417989099309816589123967057474142235020544916823220333187188378665089158637748523359006070940001394073336346860911321927420913467521991304155221002831906689512482541244839770350619938638760708794522301014618608641971568805965014842349089602263893118107070288322662858127820072252712143920880762765471565944145219889692218412612387270490570377849280172533865765809290678840097645937350212166968229743740780148003704176586404416060607416326421535852516957052464049994755849985466508709049496684683406034636522640059813843122036617265303541575082315752915246190377568314947481403920852606053731992673763943132423700572778294298653073854309734945905812846813411853890113573387687612927214640586777402036958776655412722156882137296216647981367973453231973153388665255219647267129889184040373300019932556629106257691456129519089306125805330712269178997718005534559359231183427935820658001948831945403438011116683669221230564651569831703013439336113878952773391380991610880073726015579664420206037070904857762553421425947421378406692640724906431345012583771726130035013229254785139636997769561694974050810253589118154144049152035416158143247649638780549781887275374832287627123677445273675003685499074371710464693185399467205427863118807442625198930086004363179405999387247741330947635581877629442447459468669048959360798909042531590752035194344302089156009146657245134695600145405670698413349167551532246009952431638552802084692072721181741883266464536373192367474337187928428550320707347314880278725186401572087295442520104447728016259898079071341310294103961722550298984462891111558950316390056216007959221118723477545073434052679324312973018239902532086728294507161997814948130623408734476365703058458835150828081220491761200739448322877707090996888693633318412705879160572183814848094009234043248305672803921139112051760608195067319909762388509562153419300169805577660608646995241473243157398458951372549370334570622792996668850127786556204514204795331755539775469187343562539790295153201359044747099360191716051053319330725034069831657373086109691586016327406285572691536074664076998279219243100132984950024939916023236247109144668311812093256535189368903945142275545296241107329810843491724923541431414682270277237668538250459383943074471410951841188121109140547269061911303752853483666783638298745852107185158137157488475719518384326615787551396059521623119314959419676927451077628397358354533357296072221792689066919799895067026738230522897919694105149414266654614677106299579270770927528382923320222209399892474198049932093346210085840915956631882783864601027672246222303829008106097964718801501013781258205365863507386768390198953961373677492492529273990103692479533001735378376405243243523275654187271856615994066253101702767745169291769191531720081888633409028599903098239804026610927059245876821086819245799159217277760833302858656775558568065798776857961026091356266175099731417691911054630999238586615655152362635631873394015997234483434408451038684473721757958976162685969629661190419159093961318911232782709624701167873795605370584313398164997522622803982918149231483857612856705021727463650790311011040399020607804722351102657243528536799188069907760693189597112397352070756802228460389250556712374683602689329987416439014095566714800233338847920423287261479169563216621429279713419714460796899357645092090183258296823830543506252426522377605438761936932192786342257423435040821713268452664403174066702575363110347302249915155934624817950277713690520288817037251981634674289958748285697644168999362533363010085253069558874280342356846666385954262291169536677256671055357025996723696034624980978053433834658206157893176514540197815825044756572376031400643244370494669322317724856979204771205140694325476577418565279155151599997604970839881783492386266802958238269688851216739487970515650049318331050210726478787464022092025170173174735228602690077229803684838696149163752945274672807170155560899042803304252865490434044319977663050913553052192280298489498361079369700481994293251357741974274650101344263602332167835208794594781897963082430213528019383559431542263351754162318527197438827353532960728497278311230595240782234042137211419307800038730562117386445009640370022620843532476387609257763488810885239950027586033665924793419840784792242115610709814566110578447490687428579122192319570106285248584541415667983593521803898044796658143899085517834638503951655091903526290531309612498644983704360793936297422344861602310114453326914513069212964894239636492659326732046724603090396106476893973015063280615538781617302905003587477746471869936505216800780684568210699330151608449562540311193728869499747851034820281648975799351818573506109354719011279778839042809137819713047807550600463094662266023064063791873137204288712946564066746730903255992913034768813561248919139014503698091160693820935490719321967526811414026350388961415517297024736953588089824688734127089595601043598564753393967753239967678177363449090884571505468841002744089618891032366836670925416549149114634982263839140111526683968706636681571329451382920413093333830991632450346079297071360704991096733142796809196297214738671369791311126599539650059198035357983679239805218487453745627749735365422188342340237078959833588199561347966711079655010649196696510826725471991068407292134382679196104975300850107643876867084325675514979474835069604351131506355615628219970373074641104799022531487351284776372651994676201901789891674458352904379167198809283894655372264436140549295819514224979325011387493559514239519963030031384387118179128308810573210815689226092973613636172660144702898736185722764707433709016470612940643695199406663816129455177570696580065323802579268633560238031687159589842576863953159751226093644715698135547560764423179167364804339123484479674572151979693837300171365293554827065745116917774504503781337155601985652462641098478632093751504869134414079171420795504710640283402596878838176493207344694744826075111029859206104018429306304529888321856339948694376562838724511898492658215716217009939371898165839245172628582842895216129541906193995333111984269301727912332794408112144367603496328385464424396357227349360864872730508623975325991687492705525473077600117343535834129520815722074456898298032006282658253497963770610190458115642868750824187636039290304802668479099876989744222086163440941416737327671789692226106914537956363535052529150729859501056262186319130168747276373308700008425450801802326566176930762222637197078804298766631968985593730694407664641697818164101700647393317357902945702843141580982522260384690427758252301651383776478629462525325720657660833286048873342305009718386981339960857690187864654002092373531496053277237489367574875010353456573132086069528637566653474964818969866476235699051573990632518322529786397449102280458191977359331309977703494310173097349645676004130305680101897686640264143986109382246468540785553066143996840687057822631433465867345603559919462951800236746553228707314737363362646995287776178572481886088251379566552088175276166677745895830182164084404179047316919988139927843078295254585941356397757981936758351462368538054372548223143677221468075669287391263145422540418557230389301929153434308680341135233139540890832996934099557357137507730755711168282282683335424398716638505913878766385411739908094120096648089022781569279058280516854270768482692364915041705072578508097153614964435914841333997262668726239480442869381367232372542611751256615746245105305989708491323069939077573812749955844012434286555336747736124799216895117640728516326337486676051512721723968844656258911506813981774777860299084471203372464921749648428860221133686557088406703024039801353120923304632709070650650444530435604691432088982656763285883184834451310772019114278671904409404634345077598581760882035420118546609962110004949856792612758794525610108781509246034686605797807817553332725857512864012939615494368536457737568141095774734628361763162914228078003501919611778429536848575384151571920013149738122931123464990854393886508420798868259657880118854020655429475164763123231781533174110974496219262092178271121427231994862276106809558341238237458172147264572056954914539507957728532337379725922721021937895063952880554186252306153210632990336086690191154716704286816542594842032258518225113653952038820576273298409261833891842885482815421320660184827760577853608405772268743086170328349444431616051629367350998299983274347443466840901637897734655888702259589510762160104764245707034012027021058985645516128857179792752817607484952152061704958528141395095789208859011262164579957412367872716561872350730952567227128462692260778502757121602673528578362747778925851472147523018771345574214217409205712788431357298925215131481633808159081622504642646378783127408755244724949054753622178755994197907017646458642389649692789794047134779348121836002749544490842982041729616201548904825648841034226357043728095226046221031707856390642126312116420956234909949940025788401919979843790977122316581875033862338565245954162895824406250011632460375764482561584058563528313790410985150879833655271715638019282701604240560945212078215291629569288204618316769583549419354833902795482240334730723459623330716139493247429222909563398250350949689409465947390888174757066598137608292915681530852636639887897143617063006535635542290505936105770716927508692327088755231042061439163843374010404287469257384078658107378102785938048523548851925283107103112863708272447329723681253432867348043517478471278078500606693304092811201339545808713494187743336834593250910709880851779138803662939174300543622782905736183342792447527066678661182245300790586117185181197770170121528963276092422485079611131779805070199524481065741984673554831097508844691407323658589588564387318625760936948165682721054820549862288420543948533532483980342436226137441647833149544878962707270511754342348352378967700721949321056575536508349827633890598915221601019131815199381560984745473204357828652151811651309365184691657064081957516660119632954045382743716013383911778375916469125601255036865794181593237928981840593372275650537154390592007371511344462912689362068243888509033593042838649990779981171536231221765875230665163915546037837142333058388405856979223643103582476464099462870653943979262321375707463721826490827046627748640554115086374061116862629266054156850904242610256098151865521505267450563413552397510454005925223501025676319992819958160538547647970638705298336518545089129576052634075926086557083898714971718519248503362463701595523420160615457081400382293231653256471508880152438979213079663770866677827662322343182158689431906263771916482747621483819156639774734973420509268920753951902475444329682704829335039423400499712049233402646235993780291122547006704544825405362096431504983676374985879376146155750209545006120655222899322924860969458241089749507966378446139644878205711837590108092081024303564879648094228537814988291368282728457470169058662774547815490971685529871638838482986385752742217970058192966339304094501477744541458765792032480000611846271335421405334859211867584549188256681167593436516045109175734508057421650575449707059668816515427798418102950668159457933574051672144016108006223149736023109498291977211453090545002705909142966318291933847902276776726544995380139661426023544945530080188917647101088671713500985531028611674355661993411581244255958994727873714810646167881342114141793970158873415298701211750942847719312346237038167762314948757940104638238291583289733948202855948981526144575714096264102036126067319975368913609029208561724572912085061512447366180486131385011066467458100239482974688283152604234389627730779815877754793472028331033295923498090345726479889024836096595289955061500006598782475614694637873379281526093388398717754161993796212562258902192879497255387078587098298783657667386536707551178484571867570138647922265094324369020411895396818093512314009509817983111880022404227910690178925788735308936954758218986101107039950304081331060191063579193032201435707764814404324674039557157184390633738009192453392705471986343921553134044801331072128197973398179765889122889608010022056086565144357017857209522283721066549778674208982568400096814214143373286693452975314753889262683144824735376021511284468426558674282963094933472812293410249770185691011415401170889179719479977467222963310037171874788449210937831899150096371935869373640140391217054434164896430699475825547170590565005199734833107505121749432020271826954726659158298116010003387584350347820576967904753486727245173858025670993621165578326901382821163743820728737097370538481205773365345280935766241146138744581742340021724920291283418345308097252065734835247555592597524220457424519533439466075631106521518658715800085335847464291509406972402812675767461473313950777090577792524591574758313261989474314379460849854379998587704382150792926767396979378383076201666920966446067016197482402854808708509433379981441096383347546949572384670991173834987207117001207575823993132315147501951659211231732431878946091511820093057013248384640808452553934405783439776771797267162798519780702340531305742508831738708773054235856455510333871768897075557438256236889795769836022425207339549885691642865684728966236232160360590929904423949599679708739303504653836216311844014081087799239427886047474326625806824816824657881930776617371117870343413002610603222774967501246108907648180597841356951762970587999110142968851269670452982865724890603691571879633335353355831090753280173351780541171387538551475412773720908862725949296346169952770155829241822876635912158569768924583043329457202954277475678282798526977390042451606329996728900198142080944530160425608725798452124447728255139239302148837474057064278918837002849725926032266629730549647525178147547202957601828351111821125560131274036913373030833329254684856043879714799890909870248048226523228541450000542661776954232720835551730279344803597462573807607668404905211031774157133124612299630908963296865633276067584023299907258123027376581668261288221333292259798653891300979410581275731183699921410561718829193414262888858703432158560238394984538864236511732981720398747895661890487242791513051451042023868551553239678428614553563393933605437239784964243508407768771382517777742966220036175997971906892780741336309929099218831195100575846523394659174666749883317774033503243125266645201577438333237931938152918368121222214992198575287071399035377743012467334915485955059279943448351321059872866916775973526084325119095137752101567946969870915639526791628152238588607009436221384683160668296226034018682907475668367891826799770855729974957511130482933771112010512587833852945919159366109378919621555141075682554676619931807813166326089417607023654591182096392590531759397208682008225872113974031561213211226456436990296198130423515343095438683662318604444145580616623997210167490101483138308033869990654427676212037655433159076223958435411385884140523405874277052304446246195276143381618546410194332535371319326752679569876830524304456306415740685854291778417625226894531860690600869697273581324991896657702616960745543783393593018072031935972599494413484603601107389638217980590273395950896834656949416966279878463368070861511866859939732083011757190236357766359747683672447015597792493810182523635693779499558152760258479831595642509977479366417943991788923904503508685814704568230192260996500028939293560701353471419952403933020314753553200970015201986606338423898733208136647969933007074503572683298425751872699516369966504260963623480092136156812875023084555109072814862357962127085178793403047861970523294334444333028439979763915538176144768325120945444394047769353306546445111931577229253070172157332418443150755645674920872810714637192365579015827566145345930460681991351051847081184880154002026488642706010047767182446586934956223650261394555149075235482085212314509390068790052823282635062923596957407579674772697343690054738411724391645922194561419738484878806542584262549610151255175646773227632684496815689069877657984413211309125692006037786186874762912029240515724713843585833343889399101263201397020885953980538664679459835120773937523139019106765685536554925863918066079851535054764014189497473493756757702662523458785931457595916332296500580165105661773553915479195633298406433346070537964552261218404506659532648326429930939166716501942440302764495437875348870571029298270103538051973308757331366487845884351345948588443372180003455245808691272235295201972031726235820209654396291226136721121908701980247719030555316095990527469932298697044745147478139426043372664659487099678468850277280106457983795933252835276353857808833285555782292566899786489940435083433559579493397709727032874345657308086369322773446679069334416693747792898345527684247403607695542388310228611008132294360071739834972290862349416232470500220385051577290180800687205298891827382456116694412689366280637481516860530860598561628468492856642315480030788377576086772243811505463527594092287907763972122081785712147724409394640817574453896016287143640486646202600022090403066848932584065536325999685570116246548912492535666124184968407052702447646254945768804093458100052270579137021918273723911329413667946513293363827081105999902922229190818854951361335792605878213658897434570808453506959394985220397968267719098589496720077600180881880144354227618978476525624295367290239102553969187474437389542389790617545071697223675371238306829196103293431530062963733572124732947513764159452299527411200154059915581877286655549907727177674792421101709348669093020619164912147472739851517738526936127913644491263861200685772320095758759986901161757235098018619952589963096454195871959598214493589539163456324734824387337710430185682186769393953905440748134994477244222868967500127193181920051728871603475986042581181001931293740305078515818919391937609579386894944348471316296003084730745890511704160906351689511856934627373157454513907005625968534193571190228126635289351019146578634287305821356222449623768365354173341670349542275571720027749902939790502520280821992816792827756314941615015212703667422581487540354267192281958157895572730910201473149795440728337542068885343569064429445127341931641429546291029598958757737268388816591425392506689321062381810617410586858410524537903519157034800533728881210654830372622947315684114526399648780302737195197113255879986040025374904933900336044420673002587860545762272652467500653849812541440830652972177775611887488075130528448696238246045311924460172644734354378785695931074572133359630013394006290048290383290903126016580479649117519743278856113270842767169579913549233286881788502030093484532083574034736925453639545413397794066824796276637238039799540353617973301674273406929583774793362393847335550836865402104514073434255336577673268459969358471591142419332616719307391036359565740929458044270485638416531340228784079728454013502799457421133332779156002926515493086406466188868670614735224067966893437797989291876503012947395521783151344911969468962050929792314621462939007821549750458291541825777276399294570871960093310285271473200325577742713092051143112566182710650679998279902321863920978351220501998947233366899517533668901545714491532101223975984243902239794586546962346047443405837878488088767075214690045384968005669810406365981180076295451395828876296371816871540272945719773512037487286464004026956538422148183234570083957300036083370089041778965924408568625366969774897289087013839948519243371781593943437368415020742499965225915232934695460334520151810061618171030680995438804177609840612961156767358353915573676524538022025001819438207435942487069305833497052393544784783577505952220215680530981543765621810070568103466185247026459837273393652629313949157262279114262907235663294456450860963261823758510683098258813643006410258517329013571027394553848982318213127392568385406018184430542775956047805651085024113122762907663343191122695858892856076832385218563117606577719851243352017286317579578822250516679485884460070188904374972344111176995915922698685769543776941121414200522869021741996526966410823747561393028862145756500499573690846600878382633504864010907468699135153622673099160767824283937356316404548733086263651751558367314631496908110676028281521157264088007711127106354393153538442976023339252072051483710387451993266064582069426855818807101557701404662779153850490995060404383716623205218373375659414167607947885507955571923552121344519786368522436087557952054654642963888502130672094959601583184253539105157955105634882768523432615334449412705913384424144027603776360608886195126090049987853090067721899164762596020562761378077203517224204178527142679475264182512654569059322962957353165944493307736263825283790300267837941450649826301779302997953567058695908456646824436280734251228318531783291935529361960358562195448753579393113407265491859634511173664872805990614235276067800827086030495093632472999899985814936389506765439421724613223108857824203789297384771411187782241748103375566684480985027401465066615581368103768641332656470157976374835849167032736096633480358504910547890941882739100861650187789916549709280486426812143224557624608212600682602608927244652204127222513970772343862300937287721174472995464209709343480142098569105781067299864831111943730273418593087701129717406402416078129436169536957635617428009658847222864383082134223281914246988511263500244978177670060611661925488727310008266752323588682771208194178691566622755897573599101459027186936258820875666330023939904348793441128718035051747258195437462682069249665567721962442726259831411977081293687671447195387382468734721437714162429396754026755453968199888674145858466003342918552166857646105378384669705201864561151838851710216345191524269709770602561119647536277991826823003910195464747212984701729458354963686096871983102677976890284131272492343408695021661908231152323284980400277807693893999894512769511834978318712226576331407370350483943586575683973675050462228347491421135264253684413872604801516959449971053289401670568032555995880515470897610474088627379857707439298883961073457882896920616212671134466049919151356050996271647860364557654762570657103671839245196388176327185840703838686472264067152281940298785548626500357622532724826628883822375205431600883261130266064404319126116749514148873906574948926745175603954315300788039237993900870824956376004425072027751316704396004629061529022286198402374541913363023339659575353832899192164841489205012179717256831500750708848951533749262577555752548471542673716299701943190112566366038664413324381196172126695550572683306160284019568160221601816987048845220341348892320353723269357280698295524934969903361599248725110119857394564249350463684695790735121701944369413380994992844450958298906450585369050146863713970829072660288289885350908533910916127204395241274220053159950709734298666810956143119049785380522067664641588997679195029729197447115745962816282950821095459483548184378058980355555174692680386953419046923676969436967778349504305415276759826278280118326666690293785020236864136521870536579927969846103965612681967419677484613524349263258739694447745645345805951505775221327247994138597711999575051494274611764980908782836401193562991539982966775754851791210349498991731486705235410656416577183413612408029174619340498374841120976704235353705305597878051453047750467620244757268944239074435126946646519300079838652008682249175403255195879376566466802014375223784022792959604664966219674847038321463172624518666959599434024121834446653740446257055043506725791984965132042230547461200917994750839228904444668981262730345193360055803461098317715701056351287260402213929894082283789697886631579938890880884364393372431087367871608841122900617909843248833025759262490916114436515732902300319080329249428362780762475638576462546556529283848790421439712018838732937313895576100810319815182530810447112045041979382913134738874731645792677400727713773319788806856096548687903146851757010216212886253113664190442699309060237307900305071218898738717879287046934875290503140467724421805212837811057764106159201984697179116589117076169982926953907361471541153774913598848255472186518743372795663910856222529798397138209216015404315963308823939136839379531510081803528834292716447597951453998722250659738551391378454933599545212461189624737940182726100802113170101868293152241825779408977614095593554518491673622144722377029503197448604656315602920390061023363887247083808945275363238581084963419597015561262981506128323452509555806584096219472487299184529305353478106215695559432297709036272026007848644694979433303439094451348402122550644664753320796726878733495989023485193954538290942849180381323186938487584761465950138971735467799036005566383441914497625232439182069297045227471207957200971413095449020525569733305196395863102409931548963402376772760780756269806755772712574689142625423204420964224928805298857767000107197940227176071446118319146961539032139855584400544583195939841271636084175374123092799319931706428867498144706766042379164776688630705326014858397612396109637430640697363997033111465542698288494385536763039915505896858030236376656411296611616487771225756990020774124237873481077062969343790715058513925649456480406113416033159435423572084982451402675783598757259010742780050494582446676628731955013043775895970093615260554929738666188417781396883237946071788242036405985112013082557460040563231886210842292083667556413996414478742400401402079216491947074117408444303185490439839047755410336312714609901050848274582881904218066045327091649189256409414712151608491100088843782318833372934941539932932640800490027869724775746625955286732987855884578693178215411244862429152744462465553698761018498891261106133129278925182891221122477223634945837896949119984709606669583939513055359971101403920938174602123686858028207545719520199025577924469513262856111902511133381389222191522749587152848386685516759514725628236410138805773730680912542827583953839873028241281372289287688781020433007591041585288293129762548759529023021382450018188236599837191045802362488738911066020655856627491203540259698140703712125980087284570945740032439770586999613381962979548399075079808541793402136334476034694865418652712998561235072852338351448345713678010576033926163767295683314234470437976850562712306033984420277850563339228172610263763782638942088950097055582200601282963241974059634633720231072158185645189862341555766664767509570570960820701403444679090053433251880639820815187241187881605747137350156622159218179896683493814841971627427810481478594949823460978477401673823696897926788385624171975256379112289160189346015206364354194021366091084579109812417115279436107059422067712569386513383395365414143415542968684919986904813020062862274080339560355052535730045976398302996722530465637658858612300577148784092453032704203755870537279840092072679559313726656455858143017825124818957391848651561308618090534582014506618173728435384988112797098080117181048247477183593824531864697452274924647240088898930528582347169600396341429038898074036103195776219161837534269148576701255244355321600398226193322062479055168574028134499702397464718349555039916812338664756514439709826822658525520684369547604040261274216157982586213768984382501857582028372479269968442519478803016302763805560439762141560136291911624058347573915956291286431431170331102328436335326265984789667382245660427054042918450908719413890442618831142516256120144319877965666035081640899712758005553627797056445600022667699110223472911370299926376838018822685622317933104131918596283115404658911418709396427642767861687158386617640389703018706048163835316641938009213468809463406855337456905387346262849149191830434045182325456750572483313820365891920636604796970152205352278182387683613692534170105850536555205610747689876606291542792124327313772608322371281973603549015574678849444918558873420662239791837800689759968718714316216032476644639779410622737872908951169207792986729106603681856963228734662516500695405730600218131473643912461177381642707736916155332812233812519960661537136733356931681755723499434904560536491327801594730690363364240335898527572411484368970611396756070316959699831336128469341651157209764848276334753419310204569043996598710766496663714242152119778463086431787556576886731523315434466526132525663295076139171627433122730549831794284147048690558034534127983571580423921324668117545394469241415918973794769378508460367758126013008414873629473306062796863092076232331222043030709706460320142364582160338519700489059977489028465268848996343631885390950688167015560281277760511623527015973675390227051146154877545007443972285045184637853771507924585891961902981452343977564044989954994581845799523752900307327189757954320679672681530117309334954478958740057390209988454465427127204258937767321369481595995901769227858413762657009947743292485577119956427214622589056066975376742546448023161937826314699401988933026655736639452177889839218279223697292155774090326995498330941115906967361941648095187111063098879989754009001646419318395831294448854278239245412451735597633358846983868244240463369756217709800895504413135384159292569624847623544335367508246228548141781111815342000911782315368712038278402921228411714737741550677967856663381526357985596823105484641774661659947036278237064718168545562061471799924195593792238664815228815642540278198965262303258724949813571245498306137718386012098792424053479941657319848832487061417971056171113367795637818962860779611107879035710037885105207473183289815418348691742984328731569273832004620970547773245928360478048129736226379061141058636369259006055863716871305881320978657412501875522816812871267039368464494848431463296097370188134875714816777381769188556745473072107626637756221253010482871890047340190879822409122078980822689268191551478898641115417299753433388647763206350640562514204940536030880050307548721703885545018434777856804747568857549472304490919226817136797703271002974177711102124983253202377243461285185616748483136496676506474199294692532564732650973660882261901965146235108702897712029120034901688524453086002615920907066799406976862056700140813444031318986350641809118303099976941312598996730713938512388633850465765358126466021607918182419824583988494465631656380645528635103752435184491205776868434304167597920188599766557796709893998193023248266797342437750797381156871872826038810130066906660686700171144037340771421174297457660666472837763292599105024450523372455366794599015931600643520884109529272644996079620199340101941035408671924562628447696546352720571542804789970746011648066755774177539011760406131574135800436653338422815521381679466642280067612852016918695634789458219868754821309757360339918712128032494538638745846284799338500655719490596188939057647901184576057085628675869989906439671948569665798218693259157119797407288703725112877802161812725771773665722525811576599614650155358279883441798896528419968805272871623571973807811637566478698655132439082062183837756180315870160914596967240161611792588331354414723122334659247026748419748870127820131076784717175480372625621410184966765828253891149302651604046732793965328099023349331033671277939855739660197666404401612297973043083611430688440803496588863843491126712336085711166337555347867006455580847467991169220373700817225573519940113796393832244669653970693838108232873673611121093112836557069317470512876015102119818104385458904871300733800162949275328807246829442892059299643477614504906509096129366344925033497031809142581569458766496689939379196110311316715386013744327135855779813227989994933911562080732575911914494598088620029384251927905118813692245315474473730058439171909336519002874150725424674548291582482819558276758861065988094272514881256261010686619880066458454572555518927056475206287349893843151888354343104458461768096867971973635742308877487018834664916924376861066520081938407062741703920081409630940996279728810906984418890049467363596653190655397223900867043085429930436251843288037889735093409657594693358354267546562021146239904165692740986179073236244783846013941704720328245316793131859386608891880778427423902002665424731020722461772280559949307858071044526943398827819579869660421158382705874825811241121812137502458865609733547823065729807002384037806877000507145285148529380279619271517474824406238318611565274333289119710603208358532019753009991136600818757501728773140223063546684347119125301972316090885861802076231138259431301718028838239010170053218909337890792772713869233469895383683599198691141924374457007035047391611857260039592613755308818464410302306722946181407034135959436624630481459904218729295344630158955616248262053716508050959123953838668290955404333712579607426620178436203147244113730566229246405652583927945468371128563688757117932552181466765900085647151800503796944788771916439016339861518880213488352724605591815778162178763182834583235250812141679647275504515420947894663823106486429844655201815536558457901131979454107500024828552245500408964415739475980850872531647863364012148362994699620040708319793877802134317162549302584579742914594990326679194071067178485532228058749410611867535646648338217843687813489818279663771707160687181948963660274637105443189422827700627922855419080270789804088818982008731281316450856773714095080041644245875500789662215774014371181434379672224938528756922775280037674416651447340571734040449019675923296922805230922021098218474938514324953595587944223946194106379161919950882649961870380112370633428040007734860256185671817209438860936489095710497048149801438278024632492943470347345606633502971822881015181660626337554852145944948603678243841108340160897304136378798438782770193308449293157697364509066159163129147713587164098828530811246286926470868845931470275413257174399443099786086941682645803588543250605755729914886544601146827784649209310422126173635646985536940771173969886024304325658606792668893987713331932987068105037068037655765942040681848876807713433618375501429644761958036413344339075977042623818167525529469927516550798917617676066677413953386267794971043325584904094780906731577889689252363777558383185692730253747627434650362394844446605401966432001711508016902365075838008443975050345346024815486175888565824946477516499385574140354163305297615073671883003358517294653996882431019965217976560304353449070139004426458505171402378272210702033135363257225852955168088631280723375436971761289020830521069842180272708365768273347402133732091247978609691420859065287075419658118809822558163261929501425134561728579406148933128858285584661976199330773815349818728098990739575659804239554947660556562692609760855068155749108568149820268524296375235014531053623907184455993974317863052880568104622382436668431864258679729758158883974861740589166012248950494436213359743729759557305875382116440603960731639404463433002092538426386319422185199556173607077465197492671383983836792545846767308114573105700010415203119795148918961110526468021683392983781836110902015472968606690231367820516549559214236831959466185089403991513052326611469581703298312064010350943786405995085283302365355343238983912715445639089668454471760583121450312769431466945123042518411212595659069192628367010936238603138285236087330927046933501149418702675190010066205030300412996444469723852651706742945414022880946641814272524999806184009564270592292863995783248653472504535301720125859703734165829396654712948232106243276883464678724340241054878359496320032139512806155003741710493039373251366808880578868391019606270689767962938279995825757540898365553112202637919967113034324585539002098392531102769208805263453588941878298843940347009921314424507338182927848285097537978007592433923777366793738829306181654559652600944191760586107003585451091603427940022238280111084863284168962893413621288250305875446072624776088717035747079766971494323851891132647053948908396681099372879259828840787453377916720513386282383974224328145042668240085781724008359784639524564039245656351976279771945292531185991354402820736943538853559827291764586520164429111859590850176511882836207663347967776369134894330035094184279112568289331471346113436146211355492455003317795682990802836915822138879578054764509014425975616202172325342993685562384336913034758483898948178550745974382990745105796388757270835643425961231325385745396389950211587492548608555842800863245726228754546986467228021205109153854463001511082425073416060021528414808909235751341868002860623822143630886695378306574530441237442042387201134255564322118235388498479169317879003007354525478647053414585232494764903459276811111668890339910431483286119830926536412443498946583277994583111363679006137818281517478575779669488400890604061823750074340944910212583069720333582012246750583201126711326003832352513712711045936340754755808625483066119131750392473614991256856266343441460810568424727485956407622056265279983571651180026291946611673614475311747510877071017921431194168654411925596359749975431402495842233008473636726948826758513562605434437347121416230982965968288910461670999554310532944426786641257536092663490179868211047590458653575675786203907810177505797129612395183174277365150129519405089046222537864555621296570383295582211266846028732363751671747590841363207189752746872529399810624414629360436150475286973929760050475212362076313984138319314099745501635383636899477597819281675645630033343090169797142056624749259154524345234918198878978129494730626660757413909002497741403877626351360588028433245045139332075822377965488452023766427551096130034841350300712624284280712587356110436823685797467741046911919667068242958396901297006243401748805731595242209567462132166864833638150273860144828572210097408116480411614869015496721031450526415490854893356886147303671134164842614299118764084821822890945968536743193101066124539080317685962295256304649467625260673730861388696442643688931314170268611427317226147774672033611825284112824753641949424486699860958935998858791153843496139704489021326241282689612309388889356980252642440118197153976897457022157645633602710988391976516260809493724074295657992666346153061952003916789197780285069688322129047761725877692536662670091438708396775612432192893361532471051708046624416678736944050204859066731526551079234108258010847223198431625987242997133965845322123110435302417645801088086949998068933490927768889593419818085250892843573556440825737291357398199780037518342966849290793518832631139562541699290251047338257387925813140733283161151949854123631161131662216693463432559389122443123865652058029402029704769672664274406791968233530059065793205875762728080340532865789950813699082626690443510343764210604490969281663801070548168668556949361641428832930098222501930387368366751981468630379911229107542472184625055529353790104077115490137979842149198892725390538436512569878089196691017633813268643879796071714948599847714867309766775982865908635821697197822800041042380054485982025762806102445375821881198961660967032574745675668776399436949270122232083161502805400004149440754841385473989701456056368862162013906720370126467295077905810584047875204571297260548174457807881312930082429885562173433297119485644389531390850093513859819097382253099427813210923494440649396053728338034774703854337807660618218782817785455828412017873030606674594864475403832906280355936086040217793866629494514153871959961942611561610186577189684490306633909952450087123763112076233922562314673332513813231394460472366412772663787473728189008746510692992999802006894237010859923398880939030688825629973404195836370383143932457632283233075522807083587110238260134641664627199853208771446254789265214248964109389672482286306420202773621465515304227527381170682977710378845874009058708413319889451462999164401589972259840930322852830929650052066069024961346363323630069005478239736671322918105732403643173182732304603476310437421384429015884606006226976372122309050441094671194466539636369988457585504540895241151585080707221101630253315541672403508442643579126346913921611795570902555351263894952764639506484779204563906636919567625226517702573943116561309810106384348792406222924058713910156444047533976345226849178880310432722406626719535761564673686646891011973925028279159708551857647925036142576469971702033381384834687364418396737601960475416055945238545553016608277921285563190475084788815969969128791135233534916665528043704916536853638887438323155694458751097179585943116360903317283677501123775931963202355319639268393468808483061018386286291705696320193937312456263264014065055515679160078559261446918888027603988874766546243752752305557043414132005058096397257392493573721583278057101240856818120739393290249313101729886129611132749061325578643224839271373877912109781833345188549888008273963101309495337736181406996517145770559813553115762120871082800668528448365849137552367944348055364819582733717040119808238916928634891941862085081681334200921827791034132388141169377518993314257390336993537559813313628989459997630072986784921432714884216524866211266676497165944575993065720978982590906992134230432271554692716286381157435214886871348961338995246378674024786035884397490833139581899984525521131328172656093577505997901290763302924262836501627126340413595087269404996392094281609380948118799073390028952777750186764848617227180641941257248950609289167492990063924288580693003278066483020280508452806848998724323933406863409650564087197938631602012690460117620482987924212699884189390484809412900588527052346819233619088696312996476366804015478963474186109302444936014266294390418610311781901379089544908384222821178752165261714146427479063233667930416143479199560285190932563330778645129942765274487890076901603505688456330310950424874989074647522081681518729399900256524393657802602690990677017786560142105694142172193953484197355190297347129136423532309991729818399146485994251918562995280014077476381151312651463673028988612743575445799986973522641330366763514506193169631846821773441114198041093322874556657032543967630380503896210395034198022555080539189882480712341792016841585082338226665687691075018353517432658823011392508598847360252663416823032265184474440331978597494036732146258760073790100142568130876002937845492577783818442842214384766967313400571178106741416894002125275637159502409826810145692346923089373859676845030199351707134297802422605976826376311445382023137249599164878339609023886315862248078866797539149916936808990968779354580456817089796868149624086159074415991027980639460121670233245781255775085275472098341500187245863852372853917880640749048833342050030834651449956591908489017942390493998644447204863980392076155507271944784200899718487619956787773450841343793385880871032276477914943528740844972554545973266664378799466773141887829324491375434006797207222337525908152280276033249552940450337542363629638582711356443631577222017654270921520951781887615494509730286520289480649898386203339547173157780691128987882812861997257507807804495618297297707321541529387800049767506239056917746465929111566473025078832820815736633874706286520980838711472192014309907721242800140537041206623591653140881038799635974407528126102475315265461974959169056520143199539859151006662877660193906453373757832106057297884168194238247353982124274647123825639124229061408140826860163968207839271771661405025309906147513126556989286411756771576676049601755075443159417550283596413282706021416750838457839619431331130523688999035282214120961419678444887327731014631323178063968744069715041687725743415460260888456949573798393602660194569428314851143610150064987794304132555189774091288002597378891193281373104836406904158037375771389040826543474337699142590000675291950443544425062615196173885047197056238241373444984221380866838176044413319754277137879607123212726459801050145952478894724000094452683011986223724734097396895453907232012429873208013152201889255634026673589108266846357695061788821446378635725140344908807724259290593496682462793979942030293650583056389432224657880927978165211567119078187680300894537115060221942678976312190727096193744030410463444799467173933031189832307242826225110765153516660348838706251363276892844961722960716013254943903831826461516868218307334597952685981260734665574724235926359502736679956133525083443240540097036958762602696207268138640368276992928036662055136250656871672168513074036700609568778895680936361753138114558702839044405445068652843220809276472683359020193642596543208707582521331465174238702235583426478654475744598196994035338604473530104862636921972987552943860302874259795993349326018547746122635951244414847049704901529605398386861249010262138493137286236908467678445187448774458895397349303649446056306515347482531585101286813945928747567136605721832541387718019414817159875013390014851287144615935931397513519091785346958289695771717385055985493408868122985059009615116147063489504722371453536233050728604217345924652309973891889121031860906966388075600995412123746907651845057989219249131712846887179150714338184953114297409958018627351739596028819669938404631405812365432083007298747294072115330915683738909385790412712681699007881185957221632039196842140967961058910498454463925793099492264445135118212526165741232035362035191646588639113205379210733396913052054290791189319977851912338201320193609149589748774577805047306793191388792092027055066509099402895317017685217611607996159533957601351514104387613959659952773672624794987103009168620963528132276631333610304992914153087677761242716866757976453115915835031139297055115302521962885787690554218899253442301362118777406140337103708626187194249822893485788617222225922841321895947200313484690149917738555917979063546314319130366632940666782764499128483060465923713693068473389721124570474700782451189469780789033927668458231696345663261041720457450746249972997071039686265986171516870417051225077314038580278321250965099935724271686766139359581858910167095012798920153396458750159317901316804366748356221423346632934112123066727052641643903209383856015055069692407654732446895892871814621246057522405563015338125983228022093449017460687804606601380295748570506664195804255900258904010393741366388684745184745727617436839968916055047584655594955858376397162230252941226945936042013677459265962143687823466819217505234406289001834568071372879951563282151952309887599502804623673421723348988274058140362733163848109244385579656502043755588055222252834994812139069805319760386457847604587667019270736859578124620527047423909420532543081617452873702415633383763140113536716101843726399936826167315253469489293823503561446241584497667221420290008262500393371358978136152031406491841008200218755258669270039084543985436581119201624566257621864012500313529038507947288769249848934720659775585898422136384429587669302768905312010777523119584578731998920366437300604634961979162878253831364745440864639544810253955168223474993485084679585690489212979267123193664914340881694889885356835902688601524542982240233702244182856532824465663819908861090240642300911959018608931802606439748928945431058304878981891642328308601834348179139563482548840781194277722445197038140106022331230245082481492986693863285090357646181129295551827714848583473817880820150943011312960896424413849949916880169227946116490990423846952241009519328362107965489855355815050160799344292806997544730351860141071272519224461626610087336652990908591392140244500631664324600826452790529296569365355583658184482588326324658201080014869216082030036034445028513635751153038530192196193934056283140456174071196543137472241363075620152923588405895571303610632947121251901737012230594938391101846088336567927861629150504696969418969167378185298079218221470836215158016517172634096985736572180014990064493795626184905342652247173344847238244544252027943524657068267357778127349595094698286679112028802401104501259209724579731330936743612553277081886220686131440931578230776284154176596571671992611619194824353636139638477143103053385288749514683127823076604413052246117896102676404836531193216590202313772563381827597017999630639590241156980565376946834841187315212123874742536348363362489509173592500314051379866497647374631539218848395275481121343965327391611006964506487223288783135173264702244632299861427559790331275490670205731500705377494471452750782825753473076703833644261056642534642762902484176434389795312502437796357706209181255625598207853671401827375098015984189679510331045844607815660021459854322420055688079435182806859233107515799920610690805010927220829204832809777195740896615424341446759452216834223095570320532855483722119246740204926811630308309388041039964262003453758588595339784238721911523110603668135406472308080970974032452855017916556947618305594925419847079180111133167550419463800208039502786964115158554527375426827112854458306108488762032255977958119206484771549511415715211023297016072938396521295569630230434571004513366201046129843805013015864708791154377065619405748429337930095853048318133863646430067985713980553369526322550367710829851421667680804748822706887425351097073483050361539394516218128864209317432220567671189218925498617356772862918311944407851827630259169758330753142415469128151223202132721972996723798207374348235241859612729330886992079283397850371958650444260217156025197415570678899229903282829962279458606366370910770241588690937660869105790649139921490075041292976752306560626615753512106156291958809036078414969488473361870473413325719338774555567775938861331030106119602018162700775617262030714555217820417234283636012110589626089761018440971007783260425927671447435112007566423845565661609490652403105280997569951065737185257083289298245568974194347396497427622270901763834528768867346613591399325088395057083058783886959835702677142324716509152155300282179825141437898708632182290964799467993373482113944914351480403877670531522846802189050144016185382362993249885384302261588486982130300715309569221800188325620769702851953378121897119380809202241856946294902185423573041541086938528017641419630803306629148500340244486771620315176606500101668921963392743677585983727611118431133464682266430269836874126649024350996587410469350926906285334403497648499739518172099261499633930717544631236388338660842670899295919943657863666500076962407267515891595949230781471576815246224593552558275897432103561053373363475333352513117425748752182149488058049773477249759437313689711294721611746708906413111655119457296345802947912266164088647561416075559921935917990850798804904081292814315897909062831042963330055818953672340800325450601915860076400792235750073407150331176944149950573151454694776239745486862541714858255915403232266963651898848149138572900095080219724206283491340163452740892910463964239031435721616902905193778415789457705026967861730371278966665258326564520847811121258035586530444052448626190603179507400701854116922416337577006305756262938228190801238644376081254433950801316154139686020293328201488012155789928996348455594017334057991481013691272857797310221355413084689132580307699773848703037296948306060282748620980195178762159894802342263135606888759644878579474353449422594218016697609724765949993704378724388313306114324418487868049706924564697359028588401789354135191472660656038763049618473132863340446146283493387521973552038293749352335499535143726123147140676023342674836887178215080105164532071271347910812272594747815302246068369333143604951863927496639653930661217403973220341765910711132851822146461983759337652618962745325438395095036115403398368302945844815802745948562562476695495063431380295705072309690491866427786395765955588937646526514645672748759146362984808115819202320872596881297895344786375890588037545257656827420030646556230617719821303177323951523476169534472758664678781903299538162035500996008951226015197014173126554791942865014892761834653564934828446812950920468343073511114487546708455264606363417118744066031957613944496241144575696832044892660545224883093585077628956389074618256417667505688729279560545233329787575530044557406130435931008383592405880690801718484240066443047013320134183170843682126630328256787069738333558425829306223752130696667405469799687839986217385961551223138915367855249509320895058147610907789473847029577808847442116624176199673398854800314962779372053343136764215617583609709511700489053548999357272474627907951268465570014800469199732892289442576774892485106300014586201374193247014390779383732582776883496239892143899087169858807699029445297599078260627711563574932680616922801744304681281844504868559382653978659485422661240338114573497972243611812236368919088295200335225719768362689036208286544429563792237273000569172742813175166767389804546077668325633535196891052612102343590119527277213446271078673854916808537064082888970686556726015286915471000380170135679548218735874176401416347439143772014504674605279250152001554918543339795556668972066071101857102604088348775015579647905788826208730079298835152853553137023063362264475555150306195051834858242894544957264951639502976517230251277003559654356630304122429444557165497951622044519704415800741494197009714847400035112709369002866018586180238658464345419755463581434126215627168713156348363153830856326433739350354049809802238777480365842488032718243376776286689693156202832654967223462962361228774182733271446953896988725381317784664599013744292007475540489504588251260637294387896527616224992475879403246097014855239318875855883628429013435090352132893249534439683527190067194548163140374985270182190659269960485846821634786699867764369672217636480647757325475426930127012707430198923208975594765692518112062061638222289410370684141754462194725491688098699156262848381698798579495694821605966706260161892067665293818547567407842223889168062455131798655982142058937501723289889171860713979850054569308882765768066754570452153253265518052288370918169916273430305328296889358624558484703851276376012541177401104256354470148050860122033396959921409278388815504016805629365019750108306448684093239788923809232391938917454703187318202403333315830624524057132986426386239297576790997389873147616486429009049177330946875481180364346537026595893969531613599688176019804891214820009635853345845690420453766389888002409139978947250198557910460185485109410822211225449760739090043886319148690094195872122769396080678490616370423926415015918065481455326235951134990409607388511554257585082435706801539413065698230051373351683502898530566365168720373551982970136756134992990842459089654608781873687110876485889316924797844945813360906567173940825098823769660481416321226091361636379453636463229757477718110400800375504260661839656064454494898690246085605637970666098493771354451523565522768787678398996914680996503579900300459582605973777626845112427644138087964714323663397944196932688838966446470561334894109573534353888046705894994195482478758206651637148961527033393418584061862198846248924365972748444313198125540883585069160101663091810061196584276735827682413697156791313973833256671729506602168233501631220236511956673012473826529924067455393127387750402109689807602122642658354259082596196764458197659936493907103426853651669805515972169905902492100531875934339764875006867747101638530652389422023810767421305983883742475492687277224143661621016038067273114342891919148780520624844602924893877883254766703478521481036671333181802453036006530775431296447201326247601639693950865793882005765769047788373622196322774268660254593916826676693317536659066880737109054533589872260740305887208317309542184492714497267138570198724418169579031344868882484555629902398074716187335784165168672135664270596426463762903437687625969740746741403452786640456058852137254490642457817197587117135387593642895577527383721515045984287539705584969421219240762504065743000014534662415703273850623025676022158538400224926297284777807146834155318925800757980269713950867951210803517772602890213406290016052622547211753171753656295874145870440523996596657596525443260271843710817546733547355213924389902405775087626456410159931690967146089770312655564208613521846807095251675059564602572867171253654288566358112086392376274478030576292716066236808531563465134309973136825278885459829865208262222441521097128099373424061513324154186281476647103052651115274372722614764060960601233101725190567105294763285380271206574512608354506399885265053315965102095411874271986538009889872078344995058800101425844198458348313878328086300619820591119587689626665955273765041321348182986778576696666766959888793445554400220175282910237281992189778835094967397043678298784209467312351416828660155818419031691500827404644162573431884357560296407867075130133028816973051666623924490696620325641520141148125198338944564487705887937246710643609940208281152171712578517417150952959133678813869667066530603239093244557692230602543076279637716677777343012073985728076845005007470173804813939121606614098310144498053724251260400611517244226825305117496663337875310258839622029727058585164681780194946614414110595307939257417834309542495940015657600258316169115212405091439450171181765107083171680412376192298328799346084402266880474300938999935615022269806224544041548255491713098881574827175177767154775359126595584715130638201093386159770979936917153225207503970125270911345258959185352110893681047719112547088937642598412073613581699451676081918583747770914722339730237184305611484269902118518524933859460760751797065502172478501730484956298353442331011824392045553092725376502541633857966250682191249257912745023143024999224312272530867047626147882000441185453996563433942186601971578208776129750523586091780880358648016104290438771438948916546343854534862621819473172573691228999292710770059333314564933208902707487716566904893491209173314816558975621899371531038355661179923347533276279337635937190278617044501642251904142694125932453823750263969858075359704138336638286307174286305271764578366698047812389348430712501862137202840186064618685098843443742033855987203028667315045230096902460202270195462775988470319440878720980838948959729319160720399378363582119131774019631093387239550712983840590202628251815784355356308354478601126515498847714817156152732598230314843087931210373746682682759176292216419907608276388183038825580725377550411620469290189842995166623335823971200043459043576517076835590526306369915411558645219366872710512144247076712839954200316263512490856573494952340000335784171759580673137142469891937077873310642893355485214456501252618661491842921059088844694100093303165134639568384256487343146055136600132883615168226099651272590825663108382092750017427176465721808326044672010313479572177229687319956131048545305045656849034182370527126436270666981402349317882781140778644372793407366891479466050817867292258947269021852043895663557387272434980076677377762988150919658515634683659822213444528842583702676984201823187245237809195826325715565245527256980242363906389728888043540436789753299319154738898047043449132392071450244870037792933642954289530394523247887993452685456499997273352451257053697563331013384783465079355731023609340882773686276362275760553523345614896783898407146972514581335347116206299741587492482510359440662901630327475106994362344063510692207039705944643936848607669246634025152447414584694671603311420974719618668307034477950847158918339069772233168817909307084275721776762833148199287842952132954440890051751172945000334326140753760798164901517695094396544940380463196819393465583916194711223637956154880132519448844844484650334588880999489975063903291425056892662216678838690959630662976323546056122699064154259181911321093888079803251942220253294676322001608614581725775080271973402872674264063224020618764128034349907348090074569384312497634353966019506510736897189942204123381288333215599415282226207921519203750408239058593023638133967147982154073436330481885198260391822475823607090781416020435900349634628787260600123109041187524567262188315969451773756101963259453708494954323213854959605751690474658906823555565717614853311096432998085443413941222711606649855180474146726622106544338051126127182135875872514700162339719788234500863698094877024613677445765484998589088222710544387196720485476446628541357676029318679049411411694210942325308476659682985307219009688839102737361721739862479860423008409304665484525691363169202052831420385438966386766538967829138743031516621994595214386538028945272369371999515667626597745181483125726631593206084113770827412216167482452784130492125912205031780607068819670739985654784591740260146752037483326605649726779466923342439254322205576621825095802071840800318754176644339689400103049522845711652289100223944566808789453246178890778088606562412042627724837896999072362590974147128712699684573924601443301786558476782297654116753168090107826874792312671861965087053903390078977766851857329344191672620488692298957038845581711400603227521166714311155513185421395584330096063906273936753288419408874448309027910351926592693301236984419215609843563504040087771433776657609132372120942846511725935901660186929577048084006547186589611005121613261400745750244281901881489855901415571888357748556809896165964073856094338601947959062295221219066015662062641593670723561197941593552892619913138371539923400572519284090733637470663974718105838629964257915636329382946205492818088140544805975922630822250797660379125383749926547084257627301474759110145034576747740586415407573749591780894893581549210078381405972575008619074146935414180770008650195085688805505615278554711261256701411793250720948461634304913715223667830120681016499918464634048800291384348289381145216922610973285686364205164460488273922423355554381573319929037592846137958772378204954815810155254449819564305247099553751849785111539552750114236710761541349149135935040439846299009022001124114803513783743220775068980894389967636063105989932631887469288163829070656982958452653494682176187830891391729451631192924295994997088628116716019316502081401363760087294071559372040561297784658354392031970640453202370047335488818257439700115884337897139552946806532467467065848370549411486436217805830865772972048380584378306564323113490764117778729784310789662499978123065889944234097302895096572563680745411729609424023515451318023009909242626167233011976609002883720121991796396728749535660991114547446568332069620820241471402784455163945110952650263712800662577558921127011264259824982151670468916899832529668063554227623326664266653702816174167621131425296295569334491171984740581407427307330827822283608438554015285559440478324319102172468918910809686503896437173992862660976976226693165338384017937782091920716727868224105522917178092320472136648199513754803232059138047440420444567767951390359123390942316588416074774528065528507102481302552294778211223269839011513864196928846392028893922373144514568506712439203246323234932528723656007522598126633981714851926403369524819189937393704490991570105680501377400983488958316859143100778562555787815518736121470753247424980575607331617622332913840248169105283064267279334606189820419488874899927744474247275746846020829788024534809931543374786156106046187998619393373387651926928389085323143869327358260975878509879484878880764768993853930186815753336939409641527258324032483654045461219549036592573703216085216427383441422259401635580213052700257240288105771667653929412380866327756032452757416383035740178970436160582472490493293842297208546341668333051456633361463088507437309460726078232506576118442009918997163050365390964561383270477519791165646195175314624246673333813338194893379160465156515420569165642398865545664215977870204304576407900387352736550842592071892931659984469119244731724585516115576670236637049638269332574400252755465884989259941691684959717524572460822892842958257772329506128701208345493767973921310144991663249723145938736331439409619717225723384026459479848996096489648841824391385207188948424640810426783270958288127078259213052630759987013846489215166694717139064292023647568427913949769080472809307515229704828037000216021472870386131365798671344083395897359357800003054592481920933688962905020771646033262193726266180935679584697421709377418666078157075466676612736235748833322115711015249155852769509660379614845360698116529565568240476675253467022763404041834897352634581311756176708896155114287734353317178744474285455099748761377710574022894271607310530075371821314859711428882949790566764921642663113560956665188799623058678125860949669151932233596031654990842342483653110018868543507197828052261274970807831029935844109524436810393286038163206118702835180541814621903324791763620792477850193765955872069935708719023389990158013443710840335183916335273953780947695514903771765536926963169585577344033408606226306241908795758366142960432275225492149132816747928939215106965329992605601023567446370540090588698057692152577055081669645078920951997569110859128180701104910637601208415368663248012963667218015299505661167450378480206053887271061959153494636372860076604004299308957791460569300461881075621930084865031427446230839169807157240038960603827852203159187464869196371188255185093908129494643563222263586435015759386118259632901291634416937513924238585287278388582018989098458178128084821958840366486610812206308947974073468566722325546131691254281755187304457298790475959731029260245958305995477949396198059374134837036012882382536107417667369930430061692209185371667635544171742955127010772945212707203702898196565406837946807921949380028828435645624410039874402448130426648663386090434465801025396318020234919668706059140221450262967578989374296971301813517444571530211797764808305865176971397240511455077362689250618039018158862442931588811083550174505234737874625581320810214225271418334469893404752985975636806719337307335469207908743349435117894837168122070771445048085239478960378193204843417952342487325131434140048180368377902042077413794219829376722140286994598686618587374734549012256546561376469351184010819488385614067026603612811529092140656050909094141263156110075196744671853364032924782976223260427888279656505326450033521360953765619721220900964534412629012909664639303029435137672419902745976788919776085619263526194621914253416605921185453902134593724578736198896952596523713912157429337537821186740678579101809349405773985366224940637792194943591603373874351791918972987641292748501314633565754711625355722352399262959439995951848881381452928002741913715190219343644600410633211711595900869546388776804851674521494858117334321000122293694966949045805304847168880672072814272488970789541594348266849387585611822826693011825147782554004023597517106713650643981454546628047624165717231968700404035964441682474001090956298349279197754680223782572501199906079022446124134353680977719754353883492279374807180439503692210977648228266399799507669392628784786968397386292754306574070981237464694820489435801585510396442796225398472948295819221329079744349421784376939703479216347271529041536214390392977691063609451382558453787798149746436367558362190488460073685804309444305768227808031942589676853712731666091513565036999989258857754184344422149983875297955293576495979074725615091139806481602150728850983367155542572250929922963875564601803063027169750473247292659872312168114785895975147858871328284491639608356646821117013458261720693164769001652003759627633375441428578840829905248364417526032143799766268601299791256429843546136290065397166245681847532088696379541601493332519273481381037059523073861939174997524663975516063698493614350737519290278806384946618217076941585750302701088112365082443570359907020384718684084030699366817645861871138514717534705931074179634011788891349797753860047233986137690580254726440263267552478530857205950398983687462927246853152068444010062736762069143176285786321816117800652688506327063903220111993289529805811694691742712782298289777697222337133040794766246230496300708043266456477670783137915598897240517036329731688479418912389417616901377378955226669003003707010238379264868777030225747369465181736248312229212431377220841613689820881266023583191465214745957891248939838552363884925647500794265990846830184524042510980868567792354540997768689307443396222095973986900902133997978665756840170593371686661200462893290466920571150410459015161724608187230249667722655292371709706790853022047122526661760867754616463249381601465339786124866909122726196838808277099863090161488289160531629751114009618252906630435174264016625333774675999330603114721605695054688309654083682904352708871957804184302337647540747351702091263849310140999735464654292852983106321010415612040796896610458019308580247024206133428840367788161176106895812839146643495961499369053434191682377890997446042466792852326345919655047036691690341464253955810302850951463738985931944965235262840539449856334019403309350107599381512074511083368686134368694013381922023624389185341800044826060552397424226702352244807646897804323206422380889067828571491884040932925671120214894321597018216548050433779663556905479499665383144169845207866063283388459218734766350309886506827070883974012630341835892889402399719482622607775147442897655013572734167041249387409881585344090683487007999914891683848017381674347895175012363272479459077608639071919181021489020834576872067702238250205716192825519444640771136626062250499883468272162417674626632677917313268699821792495057240614517908201738537319002372474636762893607906427383082156342284401176984080618776550610096228160095255796839707016375905316586103775294059278303064447138471952516997667503947273778966046842381034130224142443325112656940212286944590375437856593456211122695977920277839817807937930031857751815492413937443846662058121226589893191478494901550259859029534035881464226202823655852750177918028282940684743904338398699741249572826601955817299282684139449639482874345397613303909164986341392580217043541140761923999303625200777836767968564084734272616251089811276212298893996213625208913320967392857376737813486348709418833632234677388279277673465861229179924180847022936233288720145938368648770472982291312330079662975535345767510418879600469056674800060476575017357051872645666488783096002120167632863660481367300165424886408127859599369418895611351708112225461673583099474198752626114913662522361734347882183037729358263059277861223872110244224369978105217488881895439173112715192631426601075544911699806211891981077116415561852174393631968032163486385707041690308779127509683454255680170351330186056031411564174346322231563108031605918265783369200055195443555079786977963733194393180481030809835679082338246078018569716568552268962441141672312755086447594933299307032183089416761062461148729649730482433907374318294711776976375510507470213423690234858493960109069335064976427926511073620689462799505042987026353901125423290997187166472822472487847826030297259704803514285437287121197915465352516236273735516962158600950400419208918518621367192536835111712556194268827827026333494119232101152216345366703858925914391005733716667143112277360517552499732251452813311823780399077433046402809333564433611496381910537660392893806231278740349082964150186902155160118124115770259642408008249580555026867105016323119084235088205710622161357279315409871875432688561325779055457609029570557158867181879935015774714499495460888456502938269761972023548019750046155251569238929767485473954457377448078769126569111078931802526288154745372949090169282243731030244544222207147939079437160265148743227282833448657215562068109733866892758613422049755040990973590779293823684261208032549051740014030444308263938670437413675270457336458052162685889211894800329937320600844175115850594250618548925634875210107096043223483338159578854045774193045875475857279098106434785707425005031348820697416661316500266392280159352032625761136768762468308686146648432783624649524639115880827494164167502547634675568407902987771949687841268627746918577083811588691637764442785122134064516446586689892623881121166605714913496520006938055603509216329018183985041882670320290599004107331322995246405463290352386545338053594800840464937323075615748926281331928589532763860605721475120079821883746186252573118959929915732240619601786851366393558764396867494901579678544829473597851145689458434837437843629136546120250939386859482871333506623294568674241091852031326642918933217878724767618181342214115636576004991088585130952383231061228557556390671329114254147899688132966812052252422759163344137892141615316884224338699814096483514806555390833063151692381125441324130061043306816795129464934644050870142556980722756334899447866174181100883642553170063223383508806674022337898989971806326632070122357586029815481760999448459236195372420462629400745738385349722259873291751702581821533187162523674059460011342521342318095588483654328388687005553381969323176919724249202134537606926318199496788562788066069979145751994873358611000387501817946393766055145548607065040422937356664612537450930359906835896117214603658352805124058407216788586295971529015065628227108273414496711477357171692456691538989237916364075941912132520368978139978389487983700576192062780989908665749591383001385089358287450819347623086501674342250109460701156243136261611262623988802385119664821752472390332585074386282999918063143642430100736544434054320610697397447788783757968746815519884394005211670990649330030412490445044861654905133188117765041018208925376878152767979031947099104574287135670201818825733686433715600055080579550339098403498333511407611593142122514921814167586893085244492701239556877889315762084647588509279961613737594219422233580234177105632129903421172006068760382599986662025168297824125453000608700165436002117259196176859671123634787284384175599076936959213643380715792241371146980441056510754169245599760612203934803713961826232023059220135765928801790856990072746131791428665659104673091466643966063718619002617103224668719507382370082671910474109859056319076402835624487488360845216439325193776413856368736468896211880202694963278798863094592656987067966589715055845853323804879455054668896376579870425855737966641175353573288917139020495540981898938288154017935520424718275937159658410453999089456129938839999385894149354010761318988556732101881288429253856845902933604299668096787094126476673109026969237429446663069112808227423352809399051694894236728853615457934507975394363424510384813494563070432663629889312405716779452561599810437155586662657834630318410305547656961540922570570089197397903711451407936131642037714743095185108557022571437751135701207549236550175542229903846044925215884057370662188142883052726871932366913248479106004493465113512058176698009053603569053929423215237270016239266298717744715104560839881013323010485159116252611873480028025469402324108596987301301477449968400639721168348345669635636264971721259984572464595800335773536974679788746497888279706266352422201266348157005674217154993938527137974319954464402296547764344607011283907231259842380272336346933259381635589455399049810418175272966825975853339275533869814052968635932243098566435529512297909926644279315314217500153989871035240796151253730829270054395265042062351983893581979804371730051525613363000364064112028750049817924535412609747573536094441529664136723703148783309681896666682080936940971977252158258766912185257662268605329355607856540566632705728041925418036643092785515769366736588330690859534744008034117505664557606397678829483180872849852349925226624453603930546123987149341310687626362758709962312635116127504173158602321885949612235590528723154851239930663788065834843201712197714111774708795404711761636208007445233293785690108917424157003617647561535319385524188749431034196522903633252433736937549779140316724946477997382497584369333950038089233302734094795649621345399841565048215786792995623048850409987897795273528139225831099841526264149680831874723907186813222747015169796686052445407944809749969146396786921743529460171734867485410398439982209058376509134717425661510521147726413230399894444840385837402461250320823263956025063580847542329941200571130808990387441213187027099633346936840629241549284011683183092977629755482081542608973847927825859466278869590333523182333790987933264817222153405365360547985023476593940230287832298929890752465820237580143755497341097887032187160759642738837849364255079171755761725413974135545368739383575502666507177157023832566654256795906340244283681915483720387067127397150289422888026374097089967800496635408520166270360102743032742229033588791777113790516584353970192406908064306015162979587258004773638078386522876540234891064938744109434068228345485572523304156898321078301105274058010493027746627273118963043293487355854236234143348573621171493458107656292272322411574098108082643606884501288332241574468285093137811951989936369249027984033358420990843925793796856054774704279353787259675234259292150762483941136279173689769973259051232629260045927370046074061052010660831685247258533186192067776518254127491827820252032474866676758066977601805147414053857148288281370525984606699373788404422541996959743601237511188167115883376016446078964498528379417942124459549109423183730720640057801984667847569803405772609933347814871131551887376940919691389843961016547006517217092332927809591076818368610576519006239735158876244364511120397832808971831238792784191338326031516733824260401211963542966845620116933149812169436567177183081247086810586027166685025743015514935786008686905592681299024675829215956348093532109951841902672250946732047143083150883522430635611049223635387583157383254784670167416613799329528950530823259160691119659111660709863991280841258778828712311842690320017152606051485522551012206991116627779912395953269635327776320495715328873167412553234019048174413114216396441143878374195576688281904268230734005590920753623366341982064560597312091906704264664006529823204725240258840705031309916032202881053691399466193693539768688136643952760311852725770414729317758602638808538748671878045090228574508609517027668750149199450477846540651797861806241820062444239841548008949311556222699357880060063329054354115580642000858748219672955007632076651265442476488001819298704567159637931437464858184012311881535998212157492484674574277017167788531434278136701658956662671090774137593131546340857952753786669021128329843509383888820258875482004209277284292636570683749112900135954880732973553928736993652767996503495676649891774700549891162601634702641145125507134346662324740973342731985014136286747911927200400516295795752304956058140803807032431581310162878089623082636847540805129232564711376490692741754357170835626850987642768090698480736425978841089431453275285065194044531306047057476862107133071998428412548154089873369939658298641461435127794253711038628243558924330647549044069288454069932960762971187068655930664909956035390150314065935623622860467881115311021919926224753432523376853788997735832692889298209102143263609729181117468609302397132476054041273693815153242469552789225549893314738566244869273847583968993095573674063531835555761105503484722695367250436606710991638324777129397832229902587960566378548070224011412390772777198972123994111295706030887955832384269750795469528285898385238095154240206651789746618734217866967148751173787647598239935059697366046955494315537264383073416977689498018248036247953958586019495151038637402008106091729259382055566339238608054067516777449734334091566533394803776874141679168824097373985075106209483321466827873792288354448505696390821031667244227183583307543226070447662600290175238616016285143579713110841236712921418154531075041699190794022549382199134054684490340025334618617121776356851076411140653183657883171732702583984225259749192178680219010729332909333997900862865474524661413585421432915177996369778284628972626744768814225819098019241483114431208644230732549574098682900041308426685390651174859539721716872667045644267426710414323964646583176739434500634657338122854768301612899909841971924351578537959894714785743157656596040018544985683701080798925677006060354337267503328915773448923827561163533911139472672728373210795356099390273507707346381025130712751760002136829445798984822052035097715881327912795293776794876516216759600863850870790972424416608289682934357583285610062121836913806132728534264410369011104696322734993108211289684871062576364014149082036784813423307514519547744376409805046326859075824185786597552261764127943614277602070604721103958415417270344806504913722567651510382005249335462898568701979049384955684633597721244784669555404388869457602865048653173284011911137916168654239147924339276288509155965324871335776352800442941601600674109413168477168568600350090009906437061788223852367524694004975591717768476450392400624109426529526033588173330566199800747210426832270509268347889615429333294151808366965800840499901541566767627469121747148136805700973149959081422486216403861369110539093295566677463534234533389466271990139298959492052728977118974190188698475443386935195973156542481790191581860981322692858943405421113164067452000231969118361764704876121846820044320830680467016097201737212050290780236740633938727122669474736759187023151265137355819108599812341463970025748946388648590978354759937787763585652086145312252222439677987445396220968780759332177300290613532443465935184340049046123362293124478768589487270458729064237881779702692387400645339775222656145665199317068019037537981186810663022833785995296401483863052624486411182118754891328986340386846576286570109286010925862756727973896085635279685340730264506769757663729014278771218465116376792296185014674901269530491985526588340737760021918590974801457558730131112221373029427030608520364478453677150327661269505426371643906861214788827147084723380856487869278243629945843054504369193962342762251265048771614661242826194668671653499768729584538334611642727283062670135065432251378198632704114098855222849157395984867121096747303781129411299642066970549653871953289073064098262924358355210108188578358237579322806892316084374154430465005397148078721213135683363700391667345627940560018706559519350320852964986584061523684969767703439242526354119639265897561826672966424996760426391786878700999222142396938964281217383047563445673038524439099529248801946054487662945618876457622600950438114265061638926070084822813897533263743221598728906126507429444568248818723800775966898031899032794237450698040393100353689279432128766440186232741838028095284500144092234866175309291116815376602496722167075627736256996566671444286200325778731629557753334415959382201864421976294856268007108012333892067413516924883236907816578297023960141204787195591049390609427398491059738637108365282307194932710861238318030364925695866370025598381422042989010575630378298025895731475727307872477492204027303727209953856893086776960269023056761103703497387341072348417949527788208092046644590310525505462048280670390017379479743155497290592477561778193817487237026478425487068388333521299719781078081620844305427432313289606905926606274380869255764714706447445474506429987830227427806371375868466204839550983821780871641756902394291541042717934949805508860926205357531049468688245189014227970546109045130877535594639521881888644162011746575881381081043272698824971837441719710729858359040179758755382761918619457908992308329165298878121613011524607201308469224851040501934418278738386486502844757948224053423651131533391549301661258037003618250583267081189440476925466450568709174422826513770753915335611276966387767717761794920434903906259674446272298139021245316125343338252901356156621665446491907376826202843340628579843686601260613699877308455376038543103977413791531629606966030827990455449150158343460025958278589162546153240134537798525215595936440597618674776407454790318202153454966837155826334635310665440165526098364234451828191565676833255623490083019743577275521713660747122472308674258183572977397451155664623149380382499164182285661999445005829756686475157472366198174438260020948473151788454172113435162166195432160173733584734919921311221706056323946768646567099032698732678966925389666070082545473792214051295424171272483829349720359834610101148441598734159853369482802513186796696533388579179315362896751483972327989606227263033903656124529178739303445227748382222942556712679908080385413247400031894312347895447483445417462605046546550839603083316460713346496296776907622838307725983720536290263384888604786324228404593129757250149856612338864734779983902742312861900027154386887147889295239406108878608941865829258252931612266254094782342129686134129256852616521321153926083761452226641544925527882672631836695327516506014853709587010352588394111176322052282581824241866182998863270062523750989735454606372967815820799303120027357268267402811155748477756263793565546552419823301737495715195046542036308616369236684364573337142928936663882795549156024864466517922282949045625141210207021026114261865365364439855343541919820883520039831613364222984579628923317612190425704596396452207173271766354299716713800736199127810233596518083310444008421445961420038038960700819294296398648042392953824690510864232251817279298143257946396438782967819826902423606546335513025102565655015771828143712555789465728045858583918313143701733918067230552791160749896487649079241279018729019029199195434485668106836069929269963085742300948281440781841859989897318545282572082212196315357226504292401667940462257021209282310446854587364029132655509296132949201134361428711487402169481727901676476986574412312849488717121724312973616819730405867354980587208982298901704357100543808248300228028980922696099156342892479759539689454043759960173232065887732347350613306544447601685311861248674226427823732061321304907197165914444101393901152321376341547569217370323916287590631286491894699903131706775299500322754495793514687249801282438282341648893605401712955728853229687996633282807295453900667483987906548229451337978173646301749627683378023526949304569128657692939503252859915286305929370912294753983192087421162229717989072935030924940230420098612550938711654408513386791023483929160917870645574079184552923309411297279290053076298440042101924088988105832163379951811457990788097806457765858843327630636130393092125215565243751201980950671588806702889142225067233565663384558824530430168564775177591544426147363014860694892533601213947343651249184009674933032979554965590871862886741386433826483210835398400153129448408009072869071436309085104710234222150280189411233807079838769361975471739416952602832693923729108575335560462702516092329251832774818003211479741135251081261688303386023324903819580135819890569212485781200070970907800562824357687791112785099513280217982281080942433855892238106516091758091678647131478378102835606093336122435167529933412218944413396236286003138731486057517292220046590816856294729915825541718607087587607398829289982139866414927110757957503991037172319285270996387846201041207591186283089829757536817274442866103710418770825343799633087624705310521782645586729635461494622966171600402995832829436786826360738279432058779552333569155057529250203800105665908204185600316875982870975077161153688729232235608832365195025305080589607140665201766898533650850785277916492215285080392838199805468738662784523951426128864903910289855911912666891652702076447066396178235474821496325141323462347361372455400853219449857966687183038252727618022744592195248630115202009665622033192736093211345600985027847027241426200779690513489249238458781619933902290454584809137512479859759427988853384514163713829918757790436345869061221982220334754250605662383737894008267617518388065728353593978312436333524270352051796140465205822979556478788456845426772953634650340240679068216730270002152837303011976752053136433894673891153090735196580363069424104381262529738850316307114287667173570289865343554845613806968098137818896946655508024017431410571297070354296939712583458522770876367384236637036030762277558654365578282940175915531875541248523863806619365931475925003318581680539429150825482729265507034993636061071019698354439424383016521098649830636313340778417510620067684092297185988884738267124161647503986539606051772143107301430767279657821403784336523293515429160790505647261169099487863066934377116989979975100159143902013009268011740988912689298611272882333013972097671563324265938012644611879584041046713869114971914099879991496104510826061872849874126193246887658978286362129888636423504542412873641847992497990862944344682731120089638372135101342826937554187347598969095923783440684150191523721698753336055543709958285273697797650815574850647652578711827893717754868940745078880030408542551253524249729779451779549637939814058091627964904701666001824310639070419787965274693272158002514483036398580327559996303408346522557602273456588810389673457561281723800141290599590726893210224486080756347999993992354178839974986697725155591894756483379940899556372151045970505761018528234686040285256096136770368961657814722250543491702086922960543148702560302460003215654707709071721743060545983368063528291016081727528651593569820428315313330658598635768752031991598356802443417198185255492054386655228593529086182461339044068977243529763881036134655197524750567258671945901957456858471170899167011916210286869420382227024263712304526720295180568894957442744349569363182354246158807475276204559591199596751599929458680847290987965036820247621581357438275799258959170501935940686289215602224316863804823666586534602874754198572721807857332352845703997219947860434002718805068073463725030859182477708193080438050245149515929169667332780438298907587733131653096996203409239708159126910594410039929425501543777841976778291530080968442571663238706871412825480454275247584127660070096171002779959638260427097001109059860691918071874892418317886053701064683452227722544242177851379051329206547393517201452937019883611443932625432109222116903069154397961149975250306541220458747777162599757319924741300654629360278621189722329547849528298511959181715450127164243172425723673231019799299740740402165778357231902051887456572170854195109293795064120397912512735884599310381407977028506067770357502431153689912503024132789500471314167301496771895193432959165298756167455625279375864680655176954340102500860783189395679368336930620728582286370668102644515830446335742568058165157587707569857375246955283203994961922254843119212019444668689412530294712779149374752182194220819169812342018020161175802767172682783229865505718892894606365548818854685710075807571932153233422554531366764981811962163796790663579809115855135577726052997170042316181613775662895518709149271831312171732716258361629117118280588123362056449601663567301840190917871480667194184548590329840033304123619138204630465139585395840337619686567352844256306044462346740685160866892334932736867787344045450921131704733845927014671825948286715756157224049451362155805479989111875234233324452344827162644778094476649159125302514746677745234822424136295250120789236420620746708758807205285249590294939825116964327516939393214631828642058262207293595414945077611513871666637752251821689673604480861375411035292100293025505452337479857858056766692066246117439711296738990161957025022961389393591445496140575691860199349291590173589982835854464407101965728547938480337614743097423161039100173933128994286517008133484526812960026844474109596204540810581616005573963915304095749996433529289345343354014053497259763634807185574625083086530845826753917501205256830476778420360134506120523072721911581360095606227015653281816068227446162580447923674366359937175319235829504150334568883363290447806506489478286295953953014041150074100258011365009533123873926257027836411355391716581749548808341824204687359818827507636050911824870677852930788119423744850786615136127672563274010141700606948985448757348569502263944611272672645781078031218583591674672931378429585656054066328881483537931960060570030453367855595574501152666049289521745784469869015382711015874129606064953878459978172446744548648960390817143161950396910543916139703095236925029519114592376831233681197493278686482770016097660760404600333240865183592929348798085164194305707720780746291629830743689493906748935547235701867954171080251712562785347637588605192371424682759713105499202586024909790812603913294314717414550972177468184939529101998217557828016512226622413488766134751155518554319219096889425345977286050658491128048076828081403884286691257883354289181546477119502950986555534231778244072031925535785733832263118757787708812397520963071040594154578800607861378984214049379376884297541454900852167911647439942335883660101131343887881539558288749735459145825793949453811460397680601356158228342017266863414117827560631727748640945984117412408156223540595281287976485927459139790984421409505953277236814305711877297697754130300606244799203010097255084012670255629100653064518648746036059268661787280009508964172932710928975822670341180133246249964443072436698022207438006907991269573560533649435556052181924133749328448188545431151343678344436390517370679645387622782418046129213337887024066878759960061907227481751853216646877245144116705119322173622717407543144087042089191992639551943502634205090773573836620649124155670657620777415210497563762487115773655195619448636902839195774608642620679448959842557961017870943574714187167418578440539672127334512356055072557146970285350455315890277967168643946557508991224253646420495079711230051862792005807057402679613460728373576923144473065006556239118262503750707526537789094872000003915225938144340227084243828916523933027372720924512114983751171576982012109456879334298862032838852840148590382223117508032579438020301752077921910887927103918506640336632541441312130130000605569850466618375657298189736586189302499421470919226753190238027273553536444053195241125356756967650885596202007011460970074275393275129145032928174229514170546036263849398275697620312107366591606628685074507612984794886674059360096219633828522508346238750274827527728784982180847974638420038890959225811602611198349576606140476366100816789509932548879790587265904271420799247437685572974508900181182711329190321875674207169543395140144439172417409024969144302932199640053488537841502095049456788569697118912580037949596198845080655587894015131731832906293223628845260552024389054472962894686117182876224343688875050510980637772753575421305426013948282373417125327237056309769396078893985271176637532555137306912639523524303677375877953939358257145018603109472881227105043616050895390140886927711849391758020191287873811167708472159168919710852327660476570814521137125651613929373006830734425927825181179320355144568806403797011691206990441992842939560454694473296161628738230182614102360360783052215976007557182826902669710735720426877829168831304704400016625118169289939961564349854881323832554389674206991423238876531260389503483612737322909584352973113093957528625582040833635668169132856078545796967423739877517848229895454720735453420695225847914922241486140443651334343888601073222060537652209504334736263298611247314906758634663338930157829318209823207774922916099264040464323843056688556312681977058910803936306437169558787251731701460280823706710950499606766038309787851987635337321432034346486916200217125054299130336495238730980326365130472697199355681871413384942197416854332594629617987005725780255503302145612909400748886474896132957841441211858674759717010358531635927156874774150047717797359452272147733783290676266565964872833905993706156551733819431841975838131631637463324191530456267892546138437776179199398270406533783955704103953085983776253548902101666187483969507578556507977225741200416116062680095748029869197868583080062646106219942711359693772624922556399843340582760795447236025650010509207399587625402362309231692569066215432561295614734066598613074084437407382225611901323449307872384850271440927077171298421504324403803797572219097618180863486258844753634285735301767526290932456845630951253826019511414614699734215472991669033200905690779415258615385685868160700136168194474949725968973182402953772839982505849066582425389487165139427465686747407698732055992792033099743662736189827709963773296842536268415586892014544517356601153824021332087392583501547725089182211822186861130522844089918533497676863784158940430303097458147616779984117337611005296049275119199831997683745274637923644673230382567822566268524813025908382248022062304700135021041371148924476978576549279602405240322766762252308703826126001063997180911639260616635948248641163174716076824657283077034447158310225093378164019705091934502049046228553162059161137851450467092532756062747795846510582156179084132489445038382023455892381029746114245102466259099044314924579549401061168039706531705639943839559822934801633526982002180574493721689182768352480783950362201166320527087980194472541495340322361092914823853550909307403859294745021631161997992946692223781516750283690843226541429298902342132867678463588269876429383444273308640387356836630921616934948789821800092276048111902930696381780742083667941530157265096154854485285598881172500761501146361976488059922615755267885620901918358516208291908602978191535511166868341465084504711483558158042018675959445263827834394158301478241424513101484111545543922234348246013622253329007119166094364716248942180964833063583050991782727252617769300779885817934575585980440210721316726123404642413298982682348902233536815534973175112199656922816918780126543995569764531004467625979511857926378007750082824581713832501676512516025129580300237939808388195109155544830379765051299809252298813190231589849294675681055611248571250987415830436648624789978524979125219317902044844647825711000808669431804868593542358790196321268634577058716101531997113048474657625294205553916900489656409616387542491435348944865705653214601812904522119675204483242908475283107954026674114096095613455253011647739128835930320475895892855180997677227288197708614228777439959001387034320993189115474196338190974117068124853663176896828041579218610666334737253528408368550290178730117313236412774728752882707546353492444623030920182289317922243044522216441176771026829438394554980208524379831052592727357633896383487573024331220869134861123885473275102653030145126194924250586975790863959765056307568243546240625190013666532408938746879414167683522958292703558326928440649986260342734897498833908955433155418892988601227729066409996804849878010033844138102777914418418788070716243089122116936370600906987497757877610388137671319138621872435349684022106458702510349278476112959935301966916231324407164382480534086311291484050779827221012353849834345073156108765218095212875106962427342680260781613978144356044846620616401976329623389230319600165869447583369299185170043355035587228791771645528731561765777733364815911590327228689636260264357978732449486987132412143502959684941978258756109245832077787555448976932523795962084246187300754045899758318101036581450708609531058350438048693553492308887641493620219420362730801217981851942911437477959429582633760805786141940130133529761950053028493864684780308887741587320237785610949450620304977026880414267002893321563858021719096503130524886846581464225444533216169326353275023073340737903988216797069485820264089059589802837864575169317698881477698870882853709200736953602355957315854937994475361135239300011990706280562273041919704939097379805324377256696493264581889142524954857343411886749066154838307854974371111874792430376578020409171894148265855745207124589673323446089553395938204655588317919440229223816300942890191340914743475495832084305200261714628917518265069769884305254874447331482648425439882177529190979349412434103962550614770362931312054231782047103820142048220273869875503090855885873005340810763783220125291744112481769438777061614543257142588231825409729977594369654108833645974758832948895870716003664958279539141709093087931230710575704245118187868898040793110509744943076354700720622681467150525089737690304613911464312268548965886065489005651217600856660688433127920759747939775909493714060580451340171392729437338902714507454920758543023316932751073973376888580306722461789819503570654542538500410886472500654987262120466588153325458199909724979265598991595981254496024723867959756181652656178650068915928833019888141367050654359771688246241467883134601188691593721271702002089807006617927271718949919859952886483985901809884277820002110890443389418535558287566373371993559589418959435033782860355487105504630341537340926806786232815653686177158013413765628015083602551999964322313528983632412597101287347549531013597447906511393533704818625980094064878846735704080696150989768555207788439719937674974052960036775759067227581289944554093824562539393031445361245220171468876970870394021725376972708506016937560143226102367980365133066449944985819588228912717666367154719907178673571570865898761737415473893334999123253065058706644569071094328750657118836417401664155983384304392403601196317174340797828615388221337588928221666464258656234803316056214710102511884630903526127856113690184413883162366451026100039821252770429555928642124622856707896576746825160622124106979631487300474248810411688041051980758375526143117561544734524052254823053904265650642028778713206664515784891677892723938541865568687976620547690547417587652080975342979750321452655611224964336300994638537223212541908645532094491639698543252308779116626696459753490964732771622919098698150908124105459415921447248602530396609028339349580993754248050345933767142242147279001642468725738758258673114503169189422476781651334730760775642193496703361854615107807721940608023934577262889698588195530295434610856330905485488473714947393611081878154893908860920999976177189362598788585600437034429990486974016915451034763854850332884439733345721713041244198280937878083340163365208640892283313493837454471586571534280480085518719024384646098965426278889556372271124367730036088655442466172253049712749147260798239564072128039589307045084890845567045594703420792330050082188028757000911826184188121501516312022532828988871602097947957978106547776126810688067242182977645237200359784718176257993643743912919636794691063244654936334230876251463444614607893493796648010803962885545108852163160322466042023553408867623718124212032258914675242599849173258931800658577313716967268879897683609569841306731746506114286010738122682832005887711167157758274905822548788227173824916144664404063671779618858306058487140780988597052151210002456547708858470855094968830420213565769911356364773704034326111918662384416569560005443992996352561121598868042954520141232216359409571366262938684845109353605000128395357781048974302942203561441440132506511710365324903591776638279587922051983841574017818556208952171964967960367142998455981620058108309947766905509689162205334263502342802635181353260341442733793689569864312558361226368760452728452311884348989442211437884599843801861740004773666837909587674840265000100290184929822166907448699489271213940055549124810069325305846002137016163204875821732082669264751333731435107765769161637938925763698691617199555911495661181963674258443090819779170007160320008363007481614627735455552110973504974666973735697166769254566529377791232978307149880128067888095233797254838143406964082875286597982916771116524552359433611440721968672809573460183227240924524798756862845598160244010171979363825741885043416476378298373334181274694924105579545982268490595833121034346352623275166508184198192110119160407819709463788522029786162881378337132060674958572552712332669020228415026206832980694052939948574531296863293558344527893461386306296925633762429808680430530294978929902415503659613402472095395454137912431969748526840922526266617932319358373003198634482598053540232019803826460394806383535498308956176587520044047450600833519442536750427229112962442244371126430396008144859815749417612475037854853215913762949794601576353867814056117733269206041187475495795547529973402345114399835441596712295571510696453337394180744811457672780843809059449890117465378662761358325315536738297437943773073936329186221068961008305918764277243873792309803599208338227530481792354221271666149906126930926155772088689997732684558765776875503910076247665846316374202730499948188947971361170142540968711415410459809621006188905467092907902480609694368025500197862742627116727789135190086203332540857607010386788426215025426487978812443723132652658078300680510745607074119414734390520795187640866248441152852681809122728969413155187138067447955316998438352294175686883723712773432171693786814800107812919129511464915625726454061104978153826101233283498770690163654892360421902237484269804905728690049478961524681733398320183056545834611090284719707108503572407559494579868009253573639392036485583514109879196181619500567738110918099402153948387251695966765921049463729319541173035775804722890689800334176301593224205687185311736049882811596901957333295637089852025070243607355013301576708640453093649307216789749722357881566475814841019085654631668329689792647776862215760431578138970902407027038074756720829091221056339110539547929815266925980205534164962386729132735663861162134521936424889148195570505085121800229200202374074588425970530147643529744126733058952818140309643514852095209183624944297435699790272234749871470308614510154910952265440940139104780471361854215897566361049237005839024809641795098596738478778944733176008609846344776672066675493003711071813242237350957674112732726025217060308492116960437168118717575446609550625315242519637852427408560686149544032420722509079150787184884784072034793108056466497183496799778970520291664231717788453563664011176015841756422423411658188239534904067391191365556841677703739741791636622028272869585212779211571919084958105721640219576822664901058828792958996099085056869479024603850343749665380714069509258043346282352174907217028274525140497959211886998586084208406037132005844356197243274913071068668309843385842798536148256277849664788989995558043717775638922339274977264971388213825875880606608334968165753895182219222143457970203237868637198687446198459041992119745641466068937975767940346850461116351418218172013306811437754459297964227128769806734866635093991601695498734193622665990206488963019915113066916337085307728712760244039764028855744238180920353444841225443184754108500077614886436024420404001895452452419477820432164528987639272638838503295691034643344276199424187673097833540886766514736214035199819424637527398433079070113957479697350863796598674661297131096391172064285046290092742809569028763952204460149722614222840196813686926932246526834454396494823069128098106646908813482522357273797655219915726255316389689220105893539288257554049026747607149967976212211180157174428813852879867791057307484474342907936363955129438227461676817339423590767676709915703831686502961586589500930301016126248391359490972381374111311862710392850699840218260627555572953125632914860060478257790876075665934352251767871657018930978608031854700326519706198499025146869742071703884372728931851009722531648980319620653548499236099563939033841761435545200914187788095985732758998005175826710899641481506511847602432122702699306046649706943089165798769928758590217152528359822743551341956853562157257309229838507259127441926639041650830329793609573747137793175325897507993830008349305057418423765996060558215565546901314617991158486379893443224097219700937733587001397745913567643193908381396683486704042979423383294433352790740662284692142850202938482944364374582423277118208456841811085979824622079943268610127205797340441292309298641950217976927443479127655575454642812759338986590449234671322344473143019250369488145993784800779916431372474951075316529183736119882047949251139515773371117253948731408543899608031640833266354073893680072929603919734525398539055113429912974565350650249132006729744369026285056597417398649637711092260983038129179893223607386439669904321570176960480033102192122131490573080842359472360777627611545110602893108854709586227946328009715525376296543815048323501882749408906851011523712590251232794451838162158255315752073587753301058760562422591578608227681605366622905865231853434561538295120396356611682486838604804306804673753358343239743030849791881575243877692899084781813479634755229293947635160390916083231654746121683994778713229451072840998865244277360962079635895040694385650309842210960874616768080854584183337117898092121885910162526602254834955161658567772849611627420292270077611030691514797670689790747036841574792349902843110144649311867464056350084324315600941670432424343625546058133767906090051108457366909996004464434297375790050030433535336194871334826842787601513217286785407307853041189931661060495323053285934265992641589846452373837213972109512510505311548698725723531669489373611197201372012230853737035185651282536254493499981797823933498575678281794430977008143702379993136599501725163338744174542350145990487664694979040950906070371665935257286326413327652117909172796378543802776752172008908422146541977124130094173235752028631313824313616979591801727093892854805640103708005568445583945101055570538046926780172877516490577518319866757186497333715122283850738150838239455395338453886102915362490417931887197872445878706977639418057749310218889678244541322273279795564484255370004759136913143982907315096286995294040037106424385853120532674933724252980846110862044041420145356681605719002493368109273753821172017056049219032153834377363768011125414227101591273100619372029355456224670845475789691960071985669902596613388785846221153795966629676350042271943784239100545155313819161497337293054670922224429376093940534797111080733200263854141892242783944205232614176173505640932008909361856203274720032106900140772258065948963729794909364646035164046188515705253205740649424803876489314168485145058074635312381877129290533562592962486958932221551036016449427126491283611259444809763851663116358362136586670308672033795500535819903395173421113226471261054005646241698580781596372618530746211721007921521652649175857494980094659777868058771653981447677852649721217584222677884340427279610323064173475336110196469274394871407937935781230581756077444289357432097987652298383555083836717610774886796049259622637984009250609516968447919833928454827261142250809284928702383305760348001155144797174154391245554430309315897309355605597138214964395801526834864988656672573198408415760551744461187615645387907349106874190523233435927814504665053481289807160046825344776732708848987320459565375658351142099679691597102737142576994568666442007050576084756352580105448239873182116538346280019222744040659532637850235656750533812749774727659434013139243112958070732567175647600238046281261552328370690977425338841148328724219235262187421059643775066895480073758443063959801640897017345569048596832888025544925047278512318134601995036713115579409211408064188393571053800839203265129809768080323480704033211524473555168009087393055721349737368696538020106392524796981316171854213363388604427254258961268486456817564954222373455475530167012732936823001928753222153385903215491862732343336820064610613960304744296980623503520715117124812762308233835787298645805276599455484150992985093491862410755742101437648128253530651481335443148565731973980276444158658693871513473938257561332322551842149206685318587187799797054356164552039915230433653504362757770155317046827565369164083481000047605360997140216428281926820413299996628712093964419846235873413517190111331804073016652462125684011156972925780315275486356660944689127954265992150843807605006858346327360096746062155396005144250641708036037942081817545321547202953027486704484044547906701946558504468518521431208348637087737185374969100539773062049384680667137537260671911226318549460166053583543867271975874700048305743266149784128952527646983873886247355336039773803635995570723720590380380355813212732047530075858583623581893985480872007876854663099320431316613793945702420119556830269704041887003693052741567587703617896988842558301156872265332883615662064243928741423702385535709128017378010699447320558633480158213060292879218165705506389883749874815920603052337250619400505467092459096022713396861790337201600766874624510694103257927137001371154018842604014341473821945638804828356792741373403070363794269208129524771206599737070651213137156381900296143353560135008091780697318870475868418132035743636717529091893683751806564187965155292141908146977993164676896414324632130809996069085226211741369307662539270969228495860244836583966625012282755938859186395801529117293919225895404767304326795108144078156481174481082165319623469469174617370029714555751006086115448061764964069179242486678605467721209239490830868801286443123878586844631463742549607402264969938540970862610910692491124735595733017603319418754805494264400116194368042095105434232231435574185376736989674855980295200113295664249323508861699294931692693945493842050766794209532596726939795548384975627817266530144403435910294443686766460332012699706123672430299431431946523030642266040184118471110437728290016255460195191071207510015634313682436730155064056520252550392417848305574663738991541143844444641175124724879819929725866038815347304428653710415845559324704381971196565565357821670441740374142847363323581534782667793136596685493321076883909048729956231223393683798146395569004851815125588413094693895249385170900095785407284184996901727733575587511667999518865985341406976908069809574082935515954386453571372809771098793556973156057976686421241399504369575226763209503068405469072746839273383613796677052810075951812336412723429601758643391166817421946380984503815357438917685438424828749344499510661202455292437543122383140126686673504623541455982620935778362892104671730421209348236358230743075439266704716590755098646126885938181428549692484632085615914569139732983865745490973506099678725816843086929403895836508949984816027233064059441280862620918952001577320501800730014178727957582162685825777874635879726155308148265551889285690882130825288090940222263194908635262184266124692249907050590755786302991670303460167083487384470398725922966262497745043134269458831686106271505456962093331609215734188167734540140794561961894113487846606018971814606457641698852954996538952613131424913031223300729773437678071329841481508710252957912671013714530468862831725830825181951468472470268170223047851773322282613274528393828467282970419549256015818441856577252641960195615580963102818709995873563450062699029914026624963850878555393210865773685933992431027895273336592989573488387286612538063278443566104607988758502570467356838122247681320331058099565947452834205589833459768373684471221992780335982028839238168170241746899061116635079090870333061258073296669097014010072078534596761052896128537491950771169784227672759681507638128103918861789953248315311930452559902379330119421270657862719625668635547698056842276098434811340108207524466073207821159345519914990992695002985082804775406689508582439101212924315177284708467293246797698592967365057871150567765864123527903770227454106087311558209153169708981471012942015689841071115734167290173174666346624428719951686398801175389239842002631755857564868488067638371931213857877656554117172024354940067054884487299342798328615962032475954840323470900093354332592374414621019541528739474274210382801294352534698919541280429493068134778973286779577147669826341384437764793546733959393703848493335658451274866323455192219319657230294887041489644159210762031731344637725296469452063743284741537588574635476596619754724849567014053095683097138756609408089651972909772425736615359567700960657903322869922916847513927440550203325336745669316872405527739532169779637894335965965285086061688955787185654579603434512099475877880448008935401543980651767463741592475661737152521706063508701903764904608274550416218148770000130229348045754848343675503852477041004605673510860741604414709376006553650900050049853943492961367350004706891513743789031695865799452460331569412639975048208880727245108303373245885456514332419619451255684993686784134313728572728652596257635683888619142899433762657515705959556752823381980772682036163014553882403508558740798111290768149951150451695037301879760193818455231121948857735177447916054817214242823673365653001826170492135437154256510249035758930743401289529324714619772182188886747165397823243096048428021384645839538932812728763773010250085761462771495097559142334566588449154882277129993678413836436444530150340907422770265436740183076481942622979850274765248901722606177376361026555788899600071770895299143292842068699357622884473121344657058900786168038721119400988563054594136225394820019148384412371401137332219902799668519920050841523202845921788719195558945361705219151132074579009559391762939313989916934292243259206829565365399906350157290856765835975539027572383818688683803143168232360660396059698008482648725983317473639626122818721942376162871778412336892884467775828778585245131225246710986002327413834968620198493441373800815754498002363836465415729811175594503849508776560039868394088363851732240192449460702676727213839448478694784643749600042339169462367834227346947304765808604670984359975137835868715671464582466885738052416171870268336612734968767386400658014266966028344350378374253343542736207279949922813677041271318562338718737430647486201104291439971310114553461097215459980083601210195921929617662627649785810595798125101422436567517232332510756106136379298540333053444119791179114097243002352660777374069960158439075582916812546812536389196385271347918227709209074819231267618091939568997376048997110646862366896198343492322782384503760467817156158975331429116962727175000163495003536142828340177202049808690884819591584959181225913191602076352735262978247305008891189176524271973853110382930515629149681384510368243416730057233828328994961672752192538778502905997451117409245326613278485741048813242862689325696550826659688024045425870730816814104027097948261871772856122481566487268594077985410338876518761135957882342444814438534461041977676079043164839491237901177157316513342673232990976600202147009987868756956196096800549490387913401032190586343669197805439393625273577413160171762572163716971120711506885806299298640702061568661422610968204892891568776962799662924371136040020853327529143209043814334697286639140801232287442243502716011646303268236328287817728731316759852006004244670294064416464969020550530424730148654234484865161259689867216769811252221155063614244908982015650125354994194273464004462822212669748767494532393470353559640818905322004634891893860341873624283700125753014739841770928692997031431151864013958483179291264197969744760893356496065927762255707523748675392435990700070818296718842596645712908104484256720973748188263740901748582274913136711857332291844203992128486557146938615849892031497218428405027347623371382382503514195968488804852619629876220713524987498656011091993689604287821656535265001223892796509463038914661803337973236464348917158630055717748669708456731073688775585501107430956671310298907141593383884907483077124618693916918608028740309264832850277754879824624044195831648360363641926326722136047987548247129871100930925877879660013249333647130447385239202226008653937641080296886059417548308447433625583196818831775123342029154631821034818471576199333857841914452225131667057186331387650485398976747987029943889052817529984389002569560483669680230962476529752286251821584734531194347813593410875401054186097297563488370351365638726075166442466843727314899293096487120866726659628981465726603734011971396155467791343700051516161917554996992640894161479441774470684576304526751118614038363423539206427014097833851338839845483675092443704035531961563048657914575182978097112856451940756446843998488198525448772872753164483186477217930640621009846810025966160071259004280935354504447334892009147703820658718668547192335029405109808474185227782736375623240526602163297907575217369564626887409141309985180405909119593966934908273648587898871656087351027026232708984769454698057152833346830455956053781504364440720519523524796854711202892644169874014079958004035445917462240167268664848259029157592579928788474886272088081693789945705797680063848426346230801998998244686825773138033390110570284371834774808103413589984452895755444553830075687864162216716344027141375924997335505576590366082884924659699912876868161784311636722197382741338036565791309601000051139697394191676232036221188025604613455841123902971602215927971690077966371466145048665126107474129445486549724346055747219139388105544098189184087593678309866975614925923693347739543219928514540201872745653354103972936184378074981348994867881086168373305738697758357543182083205382511845300815322558834055749722351056396007757441602051913287431003216696600414961096432268401160242412468564443363943273919941528987134481351538315253122814156371849293315985591840091256610661239121917014537593796467912578045594574945802327243869411039330067129485746165392252012711751861778574105742678192256501362673328045359633391638202237386623362587565720227703398490911945732797875560101244897440140583527281747166663917673711272044887864111542678966161600529689622240883161178993642778421896575635395923529494311455803437507589852615233749979246187072249949401973169189258856705407099574660722367292968399015335628397413830978258478601136569456983574333563733662197178325423518238602789671791705333595915717461729009582186161086835124763292695938960145126496951680786363171615318132935209036368244147543302777018067271033753839745792346942996922665235227244502213618721491406189800189059064597268446004075443591319832213452340193200584909657498443865089211992711570801170610973752968064525747277984245941760740776073638162548346725908970289525689678334410923160277315228462067450714884078219364718981980372677054912303589919938101027512148550146516902061269100039604751876849904978775143764678231595197271587316360242123069572492999048052243521596723545183487560021230718278259300165496944675379850908849030781165902387274395893673337013671500161619951589564590874821724142937157393490802338734597931192890346240673510292557099279066935106161319833036624256511633848538572018424271802263805888582513392084192303623288976996583279108777578870077278049736921142180457971838819395645317809648022677246384640798557838653071327320384773980189666942537175071647104761820484757880219204604929466522136984227951808251044958995043135320450773555259018126887747269570765101768262261371979700425040309091637483950654330451168039954236278282037424635598268971151661584234179458320050065958541704197110019986310259633108415511202218340278183063002560296776204223729844882920075624742905005368494390137570962126340224349148849663374138583879597890696078585922813754394291429320489275971119472434037114847495334497851917403950089298662297814263110639791019733701550101920283305796166101419656239800599813454502364720302455001474394436136209582887432985514145177338688662003373112731171280752755898231977204428560159576504081095919320801483508068659921914175521528994011265041324386213268143200143504247252415786525932942622258635732972872341950027497276398135467436713071778101107211424890463068112138434024330138312024802736586051468158154539310030858683078469760395097615079181230828389119282594085248385604632760655510268897907884531620271380643348266344716208509958132995042417578026089915859095087752052275029446686189712341215225124563554715130151867641788683894933344867822016575560867203073583967384045556003474167674585494028950054550574578748173190498344816177439348632142542593002608013997194941313675222495919171305005940759518567698033305538428994256856717833129033552591978105163047090418382432817884821902362784296805247220568400344888924294375770987004411184702991835513238038495425115691297258953637979749741920708649605406731412856062328433050968876552020051039070841029469865870917409540669667905547078442114524333755563599755202218357356895725385414842926528759556344316871184648704280901497658425182050449920078595848635981066917035772783373981495286747050342082635074703918211757719963008020899066824739387578111199490556008651385194227075387702551615284382872686413456930972510115244888182692132304006699785473999298343670863429376423924349407835011302966677186959184386824892074433465468248833626168732341846780177663164054675185824008151516781524041056978128982043676854869231047563417548953018604765405626705026590952917477570864697498085594123429578070488390227476160991422468541144565328551765654924937805794312088032438001121909839743761380807680854115869579187019768300846171740348389448853137463778309919104389578502575710173147315773341386804128822407709289782073845548805247687041903566818012240542889131790805439740652772433147831981435258355704536262653774644027848475754713601264456289504118790867651225522612668068261631823489791415103849546374319602523577535874415015313848895319188090750758650715170704712826108180369545843761613143254143083456456381417119778961360206173114467309379408870257706423987692054049959335397956276052951050145095747074296337031952274798355643043552382472100003446540290444517196589299243643477411662335750690917424778033068859705228700799751442188189398763209401723448109690510509809953651692907556077686699792362833147226511627040560432675679450296685728793139511169974390195447649966480078224837058248569724636574278778998910545026457663527128454092876255925939382639225879024486151894702535831650538296588224532941601531160848333035690601558509358506616556043570927764489894384918386218190082265626412737516475344133948888299168454295001802199553323373767886443244560914547936458943445902796160559168950217039567977331719523771150134566388769241803247401828586395981384707418757616236192154788457764661960657648338986438004600539778557809812758515306684281346340600824855517155074389003122590103952167201578343406610297962423644460502759860285092763371490668957834201787680652658782332411383043459120143040242640681249225309860753895009595619171927356625845988359524369518159065796154188424406256320666168945778547888661543384050498518070148599293729110687317305166808259941898391981037244709343548227742350222573337991833951299564365903064078013013816881109299825169580439524714339021805957597946953036283506755530453370164261883791215902908203952766046452058246012619491371408301398530279112030594847526784571653151458115480267815803560233810641139120594097654854025770720763842851973279818565962288809828851121172830385801937043329503129146902939745208391765986854307910240163626553604464364319715249190566395315072149276078752076405069230878168299938740032899954964880598502219235302660814917991412972834486085825757241347776222763707651645140253492022210339884559829094163168939644345111940266912541972151873877039480227476416068337484300507410632395930623842979008296753450681412404640645404085045369318523834866262436626682455232155330331430687749370180897249611050248084257230700421411718646122660534858784293083427624055401254995002023101079548000932050088367608899414973344008172674274260890493008434687397514957057037338002527753997460792160767174219650980781848595201623714502230758514890869569167560411779644211486545249219314753214971995191302616603263542474196380706879313737208214627794643109316526648503607036047457135831081860400260074044823949989315472196601584090174938345994290032079192008089374271076144502470097731996216273097583025072627989042702492596998725391459849784472708249235383398756588302509990715460979442288165343302450828336419834798981856345182075645038033386955924660452011973472975091397872790349391287465496830014937930645524502596747275557497720038031253848816621460015887113552709241786135869592412183020856175731217547516999583158563855983487915560625311135010334552617615650228988906248406895589302392350577410877573104911524215955898319159725146646525158108665837456443334728217844105333792072029258817275274719358916928296760190185141280287916468687607011617985331911962128144993937705936163338704905541156071514394065876562776190517730946640220897417198693262520973908726966255391640601179496530253879981031140077356667912651159425295372731869286626547348380731449422979958562573493800060170189820021413301162550669268766970609018893916364156022460593711005870007859891104768003242205682411225220742827519419282870920784459604655541348627172522961631971715960258580521321625020584322966350949728332493880202874876556018546898817146248618429107318451343043707859508949855985555728094543455940535602619629222492710299355050234096337699146400390951907873613569912911681369865131976009528935894088338416000928578304413931892331076744478373896074324431962361730574934468114730742128962440675041140603029655493023606289427219257186639711084693403389489377806504042508273838802331482720843206150721563791119831890763580355121852795443118700768170131566388980162878586876037970229556462099785083209754053492544107545599638577176742715812431361441975113847398506885513648983835781304116061678768050232916261156388776341984471561342606716874206254129943964485848089644242352448547745750460077131821812630489880850545379604408671933602979119084935958207018521330951904637613696018898909776876611218039643049679445740857176385212075073635463686746801135149975258133495305816745160239811266139891880184154476983371516663791675950252182038453377228570311766115854848072401182128848766964636025020377327667682431793515956845588110532074435593782122550387362938629592641949007588239192123801321043240259446047912291994522521149204209313007557795479649582915164200900082284784386568831849956157684852728384763807974881827909564453355359187391241388488379124551766104433782966103992471299794598648762731065366710116066584048264178236127220826912157617241127060750491360749687326743851541464085410122721423936418277370755304462548894791938355506944847740362316491680746713885417900007870259029962650957261509575327754776459584792454892709009265088622741580677018962105363699939157580612076787253238082449751952845370143993016292166793458390201226317120857389589653230963833342183267391297879899778360520104999234311032979400012502208112402791043320575450040738608288266807579122105979595471554043283996012581592434895358188039387719439489730784820942658909965270659325992075528872341420879446648814286300157203966508997073429386841721432947217680436879452531499054435692870807700978291006820089276932751809971582325469687001056248281784726730887601454353374973101010316536554699860360826432317449731472695547617389939785305276642675914116738264935278290499141081489231239410237667436525254244667632190641031127680628059250917991456940131085690012225448880638513323875695160966574688572475920850426878877879227607740636558707300939592399500560157592588548635913824971124126797100363014485348905195351879044026752979532483376466795743470252727650902744097888428372542135686208074114866595293964185039939040331001826480592922752036496166485239176848860761953527485438927597266935879755852569542776880150152402227341664783742444736639660098223829259902458435037891122389199592941924479284658346631156875918722851284522393727716960859303300785182553727942275706748678493347679582681638280187182511707903912133724675837609657825020514709287342074493043831104968686755132079952631562143915091389789680415616533384575762925093990777682677647863754695091971111798524591594988709241192590653938211204944743243984796075603460821125235997028800092354670644452987366826279578968015605053420499703998931131180082224169654001923986465241961907160602288144718265027750716766418112469666424234327836989051341049768900987559958165513422974857074542002865040721605330071327615933244940882366901141740288968302094442886802623753459946260195545480230620333144731558275667761715604723628464094793356558317457648720627046563456301726294538049024151460255184430554260949515453236110746408863164883695954425442952900308827258183217748927183701834726986965508015172775194001614972207195113068245292369390708783934924032452543960628881697480421036704316553819014553447319469590268662613300580802660539199485538873948615911550534087442866760167895624851472231622256512151856895668871579006399694676529050700609340102729868195002214328505689455393152902198832103880393660925460348533912045255282926655035817113722275535045640207533085663609043675179045681485624708183729881880844636373562880830228710112920910221811741988150653277844117375224800966349196121521665039316422576318151563553799638227833652844979805066870382429698442699219544086836176674314457368140744875732500872039667106366271096993440614073406646992199458766782518105930638451133868694451123114853535689830472498352474360036411256798327025615658009592550796720940367100987240093714472014120799860560045269079195483987598596179981321359313715208809838417021957692052779137658627544618114209344138173919430207723154064025509148439038394271888135197995994771472704183743822792426683798035553123160680494424502450448122819274199138408776031753754848957012279009925542536773241372079688603443616060145667844188152192671581142626359717095648712467066390817626481534378992582403953181876347300746292459807129308363833202596835707124145850577517581568228213684303467717819373650347560042298020048085429736206346620151576260350868532494836167618361523777860057343650489582432802150231704590771692206948127146999038846668648992044294686405317269667409685429871083341697048847954271603053565221663990925056203813060140733474817665178073303739497353408244674210327358856552715337257650386799129400523043426680861401960431368587166993461080329090311396262123701672418022701954529030954770077036965679639909932602098333744644088572533542097451616725012620308044002374029582162919026489908095517554958132554778553499688956333523828503955776923454745392437242251397531330942581929486748888807426927046628843143725626975809941857035614183159062607861562872936552457059177558542560389876638732838006495842631623955976642162649235175316204509483502968978904330046535108519377203159177122252401139866282071903984271493241123610361106870577750191621718150177769442077697961222288505747631541196677463471979558135312131900355198531132379407021292397849190634319021116872716237456144397026391541765825135628143138496747204432732350789946021095142968538596738952373213435186922592093664717061824016378104155113346530821174106905110729821462424668415810655032930004563201817734514724165291187915944332925381326790539903492752776606982497702598519046118624813538523419872584232353849133673956732242256747219305803556996036980035793775296638314800804515145712770107564719952375049882727718589263676447064507794426310639439526598016864166161709599037748776456736760629788682204647919121143038454886380525875656253841609276481995392672556200226976801743336513153085816606383604279144443861451212855216104082163218972163730010778804516806032723832695686306455197357269504793720802213400420312910265663975094497096190737964312388802390081931249908812680881071419787098886241873227964826424624887491476964880803419291485009962895485708727164041451000822555140000510453909561034678614497554177138084588675017648083131322900933479576742600539673906620573510673862216367417013321770067603608958310779279666301344289354819864749532759801222096350909117958565420968115931364027597905995645382587063310781836845624777861904414279166843071947647102327885186175074628826154009460673435725068272043561531813458011440181582800849427371046546714967071734453793942725626168942079681416644964235622045339942447719682126398375814395944901787968091657943411410760410015978860010194131623134282273419667637122289428350312051533094776808824613363704332553068323618496991088806605445333247003163522163804746131102933385865100038628129362219360260447961304374114176714414388851327487766022227983961567627545858758460468254698671646674018336729989520333245641594622814864922428393145296285949128709739674696635396933568304201967297820921824876229760557320917548574413570725529243529965950882427025771614827495121568607881144600048713266567853239446422785372853909668356873628780008556861895613194327807026104134125034540618755122095606944459967786603417792082213302708022407331943516792292200824912421445406448032947810602168112127900421678881135978735869113264246224122450724285838710335425359484888667748246474097395181536912817189413312496007458151089259725598351419353777129825830789094688431416070133172959491394843085566395929069541573790573240914562088951740958930275925865980553004067264517166395432373326885277614213132102527692549195781615071867645143496577581293739332357247629826419631159161216300199053997275418951749174200756997967536409711069765191025833049746905055498952136351194504662230299667652981739235803245578882445425743850245898459377317152884111399727427448378726753969135433830150773529272684994216229306380206281422106211089167153885570166763330281468358691616790442851261793849797002371000048961097509803205138981409425014638843833972225695788304733779225836122630416419634308594902829846161602247612305750810842757335330963636330486697703534613785978757947318003437314811858834040292104427896923117157487853942027857449785035249006191951961739355280800615057505716756094033329899285882612425911878455236978556682128748811513627851765090536615907864180696675711893306113532821721495609685618721286801199508969844227245062012511457707424632508728856441126032484498427871729552317258745581148571803835283673134630800351710733594748864614932920983145497879387460035282075511431311396496619793061321042179555939004429584139711054406375219748734083391087790702003836564607519871993098715555115682739384100566451291514549062853964909200466335830252419138752037355494315002396480209994268518290276441624554842717281186122445533241491659857488125013326624689983997990001616883816120364735678561101455908850310370962813960570878356263076272495015505485049369961522626304501440841005577197518255410590355614317308141745297874780042768480849616678595805543767725239127524045485361359440408939793638109485029960604011759642338826545405653723629370668165694347372089088774600383300019911872752768944017127032634279637689813693972921168696850539802963022740048464287168955785309121771850961648130305432485735484418838814017658770771757504620200898445375417322534589958592325586761328731019423984895528145689853732010036924318963189206756114191086324758635351132596077510212359517838845897181591017331031516562048352736801391846054257546177447764048388222436562200177570363771326966914793508118364519232725058447413069829680240525232002518197010861998169429118070077077029599794881509389254842304140320504328729571611118845622790638805633289429700188041174398383263677629689041682963009024939466074848501760092579400131320689586925493286234322100890632784804011893440009797349033590913441825838020725900393210494376821099640286102136315345933769035854511765727339109976497838532278529044353608253938177838610376849443027372362156310147441896587608427193580424703918667337285632236407807630402949832139270885265800490426596384090790056744793728754802272369933593934071469901282991440027011950314526812078689631734341083574074872264241477131099938879217433587788386942179161183922110620032160302698555731378027969889182293118440284316076699037421245070662623007595299636951011916779120553772982062010272230531280472704972863320365494204209167266527040962660886042579909593572425634832366524601430093288401517337582316884112796573178146912886851800994050272084052343540063389589245068595460589725731084550460689518679569822722186080954315385520983768661773565853089619440669952191172147217350399264483166473211354780951264109408993305376967099929631031895316377978575627364346972282911917723403317472498443251837255993041880581813907386200763992989116036233089682008093474485362558085615820308880168778194807788427326696520104860376510911826122867928909584730536841735799440463375360609132938200355478048643881421306477269844211586249191728836007319695867070435067763990924771190829424292450740229478855709148197712787482887940652595155728652189524009007665746461830503361504777015821175508957513451081074056812647008920007430962151070661248344243108844492112926408933063153352586072244097626109446053040127928157040312632322616697550453357885077636995150380735363896599298173723800823321681732521750821002382342761241841038824178913843068630376453499218055027865989377471601606389785134068753494657711168504037338290417270193399924416720967564797342172697554345582593625633942498295039109039457927639006400207272162880908344959720995927523457883812239294694943060984270105661706520274892572942217905589909650409855445467186611606679850302426478299800438013080336593383047323549609308329592340440918085539023142320625145721775105081583569358357997208257953783216070152428700590124343378594518241414120530442456907156238576626350849618208554744138680596639327242305256891495158667706026724878527848067649475602481902377164850452243000025423501354982722560760659068770385727378896948178077504309568661284426412186489390922351196074894830686322739991512534526067268646992071864774474426039070504029349803244684773451449020939054679069820023347129627339397051675602916014266022769619482265418558419379044392446580307313203355203420267967988919467973081182515599882473959776618680300259170275475290651154329709288058361832083190987270148989637523709082148962108512136894032112857611175068068442257630235121850477959505343686350765218858817374969897570110718204176239599624676461725067597795993267000061154572615517138134985108182944649133851993100893011126272979677547563861010407718627890809113159762949690777590604658554597902496281454021236474945929620776197796507258416032624518730834325322982632915622438656851470107666761267427693508697588566885272255520202288984159972589194573536907591624826952988125640413638174629094815600678476086465760432238453921158320672035425364072917366847630047590964487313395803481695782361817384538096949837089470268732861738379024059876217999285522926216037046384823496620305659272005779570348194239482142919329344051072364435772987587403517559504284671343442566165338047858221128419437139038117735807812314455113018973049942645620147714433139216215750376019694046767014442649990906731488881866982741664388380492851018636808464726161659692189415080662291560204795110300570786271655711515206949128170666381965008619516211886427317277832009087140453964568542462508032257902510417777251134748958517213454047564619385015415811359869626002733654252301615362957198598185295673834971425834598799244368095767560552223113309526085565688504221151956712901227186304829484511000085512232067029741116659958365289757109217238943812546874051666834150796127193378629872875281133912772185684602249481835789423151517391340586241645098076093900108214082211119175629658218895674811969821538657176784665184266356443155116656262022723208928198158669660424519369442051300229556474835537629391186544532899010711384487104525248395048772564265802673993803642238286947574423680051110400412844918242613833253652022081035673234107285697628198494235339970267258163877014805359901398323651630492372216381892552217933143143071361343576449057751927082738426607562917571533601008685322047476574983976973375702547649727187215767626601123125633078974370586302859184073677691743138735507502582269826747050953499205410844640927742485390345487378794392805631921013607064395841425276289136722497851502088764540009702070910057655152204131551718399124226599257742128360060753298073225935465430513380239526911490779848689584139874735033658725043004767570774973990381165479462805698086945791565013382955612839855776252763668956230226302307283752011624239468740274538584412277883907673240456212455342160222315362375533180612895128427684176369272084406572952417946765501272766419828294643498090246161849547792571971412818233896143654399704677630293731646026199299180658216456359386186624524549165110439229617371688224321981084233153176413973659917368341192174045840362184915929717478749766185589115261794781340871289338309542034319284070153863134511729002085419119056272024518696164860491002411239007811445966183003057594319282504683316318340627478731613870135537843892016788650345548372547542034230845214061253461875762430986337588352668811864223407033811965161273851982654451699345808318889620311028371197214090836827216945165242569391345960455942874544749311173820830129252670139558749883628765186324556919240473647487611225950230446426041003302922946950139758307706444996208230040144301710170018158731472827142425469444546346858391174841075111769955317329827729310581337249479222188273496036285575159922936380010233238838743618396005748484806240901621073663423835887074738675014906782070659847432622778403221024188985182270018231198483732361025320329640384268298181442942263351785361517024351110846528277061944033801575061263262543071575369382400759564602008443877021359352853607544065432585524747542448911635829031118810726325827711323840667735496131841334561298870449513730511249089872995577205032839762114113745209996957687321537685349489240743476866761359340806175409723821598704075290130440745687526332594011358046580472002190375756783535550314405213428084018739546043215737888359607017401464458857472014160340435909506271117134656260628699457420418904330722090108458431106454659751600476717787831426308934050222010479062475697235048327723477671189001562574151272913146869920609009702242167821842518051561309151061027790310594034305329118717409946599410974675003751012246307650673420965750586346007000522553321836060412324750933908467324098625216740076846651367816242341076160003488425122868803567518107235978242953998436607750379645921968189553186126128122662420560588131952762182968515393034237549775168355021764951442640404631481828418688622854117121352441836960372641082251405164650623902788074144981553968856088582879806078436124437205115497958937559566800901639682935746574024457466206383712459526327644151273885255085651880989687600596130222876115485147268993011016366709286823928455678823327826471123509689964544736560164204220427345852177580861514597096412706967895114315115850500599274027862875160588464218992751841168390666720174736178111284399395004344958540682619051699426702639914520116129543801851698745399022583654426076867948052661727652445169008098521715650413613907000406098241977488160095570397229081477807385000844202184325554703896329177023131509589671875336871158436262669293402721955773670069141820770231377040314260239267889699059840442062950553399513436658992115855073801697921495989536077030424258111399944835515453749306519170484353808903102708324484472053778220530639220364844400893528743263524923885664054315880001988076053877876071404883642765960243903344966680153298682559004362515346881911112819888547865143199676102653721506636662597002939340580138270079352670763299798503760281710870607812386908964930834748712605873678456743432866325492320480036618074596074190588650917188848636174114375250458997328954802647125807007356723302514277457574803338480111877183501498904225814537258689064761306167448372429614924662011403553820151428594512399430916804545989871674990870639700771492582693528168023881700622531135299598254542248405845298452090601167168850645121558181615305612324361894852883250918293149714263348037665799497168414148386463712916196347274947590743383556189087656563682476452871713947289167615624736636524585621798594275143175224073538514559056318904800755513240678766455607029566747721739155710339056563613461700406640603389456000871486187259872955833244534621926128321027290911949305646341692952790556195585818430421689594823541228707868157342778954785010056159622480987861594472186280639147665306013554377483168697380949237640907371850035845434308738960012799372391030099570321120293717404356255955833124684097631859979269765011639218551874195623820331243345797099207104628229353371479383515148375351264445293964961027701964044576380460835984445332090128784113542574262752113752901088566181098101383667257414889487684544110759680831563670837069092382719875016932632153693545244136503255529034018020020827453373990253243577723906414811658229906329897251347949170571872373537763890594567199445753423354696875041111536207257425044289641371100136551572410920783726428940753067109165076518388682993658923463196527806693341418071636933079774923844830809787667652709698969143573591900642264310666925888359994298399969465484478473939274515564478888130089671579507420746007942211929375689865143145308235196971768017973613480927531091929050155518057971676120810055588662286319943686650031746340503141059446423580337345922342302031602097033091601595629536385623542120347073123152663567187557212252546468787147978523089512016836864671942783422064990114251622278213562816896562765355963178986612754323213286512639887729380235644307993649400371092999231858457699988471827677307328187350493210872949277447889888387065472724462064509458063765813006979034177952432697040514252979335731122063470944943817948152959783480597908243501827936267888617648499749221420656205652117556205432150200602070750227691004950178761984204272861750044080104058546507917388179398621785545568850898795200251841183856441829187870193479770379248796096439708062657645904790264739974483166919752139600197027194259640259769194586477963277383606258820195464491937056019797894048459679613615376797311355965310852756852596474534241924986026931010038169759505121824979797271863726100991867761363050724805292853481973510185806799101310075174371002382504803562597988658232571686613700105876721160705240258589011309618012732671096075177192319859272685050505421283921188560867977771547015680565411058522270165199380132806971848885190456893895324774216575382283814594064643273664956645303941918975137427427010659424139428421205045021334194472029405048128507175230372617257497589653350509048280502900191393437711761356654047769383975487658784441875597144337415985277755930832330388162269529266160881411660145330801346563119340670647470782895478375971915654484177999685305389967881468898136624106760251846516183054629286959341751947898680321005776077344583347814009879882466843327965795267018572497928020688737480888507178467363850598228459847926432923936355213966480540481347587367696330096766334959093182888662389714114529862549165416914319669430633512318662509963160649992512001919361529929800721359125055775721155060203120099660797723751283433939313749508386328282701821716504527591081975230266568429534052453890986435481196378174529651947310773739297480637523211224721071293180067640788512593699221440238944912977360190003722497851390699185186730831939801636349923027637096519747413767946596104956455516142897858235649491318670565411642260045997893579729461475735461313380559634565318427813845987218052957760479064251385321245161970463392665410612408793138667998803543557506328247083283328681195540946572051938180926427656057986124319930374387211522110728655984682729315342280774640685074945980135956185287829636137574165155992373066070781491183817108107518678691338766588604709868665620452620948703721433699240062025575599286199180892970119672590894504877977594302856670802665203536146162822218974925696851230916297253248417949160262274757573849269311321606225624326011438668587054230185477083222532151387425392629729968541722967990833459645135125704943675943160278339842098615480436787625037452943551036432362324880139041573088406415743983635663397597533721953666918856641559821756654998650008452090018571644869863739327663265016512605992555981997306965335785796261833065404497193304390663057628563222035962474674183130195055266405317314062463358794495553653797547056463463795267256362809189003721383502034535615388938428379184395213416337195143903390913063428203332537872196865832529694862586932072477215321856972287279336227010128670069392865528432338660920976249983436574592687097152163651111685774395053842510499285858867238238835849809231145962966395452173094659865078803749404653415416992461026546946878227599200617196259385762902374108297863821508955482068984951096797762531340083862822355726226674349396602655285864288442465914526994055160752930765055788013919817042271303701333000224807487170840152242396815271091936695871864413086086950558825431658741474782467224563329079238824156338431575331013779603970915365913247256700303666045791503399232397196292251265767495767905351618560084774073198764523797197263661027261136888741406874503095404214969400089668180470054038312789270173125551160480357920916963838911994609354573487879791808667798902948160805818503730779796626227794003661768829198886139395041265945953953143304247805706481354380820363803166525316667023898496618445126049277300019433194842171670349994178576701420510686886834020821127963486690776732138722837075384113974272882985569213563836647152891510632736526702910617794249319320158851689307019314648650825034995445863838280211027206224022516887953207006463559192382657100512997550820072418720319990654533419437843908923017145814985587137502518047065435102433366687346461731100607247187271013237337125658879512062477534207070995484220746323621363268941851990490149330849520622770430061561828596024649588527015778168160704596280414635203573067971037101398251192170048200677197077215946055949154461999586071197564302129447111822288797568119154205182281678765966106578917782117205371482349831448795682642609374416048479423569251405044377684352966325475545444504531442411759632627814753386031499829075620830473870819218992262139730187583684937546630720192079286366238578527195420424379731801423408153042062905676037465000502380245863170827911104702616631772378334148346294490580871309581695688092072719650253037175071831328707110095271446460319534600684869773138427739734895590658556090751627285017925367867644584770620191453695799582291584420532358383883308412658729677925109287202407967409698690184356804741221278549299251090443721329713603332991932279556986653845412743555990725232993831554109960690451458813958326419784854067558885635490010336333125268297655346252373664313042760044886975247336639693204399045931251888303314645756687607533332457759481659601526056221672890679534645168754722696426006861490243626771011458599942907396019126781596088755038968489181086412553838501285163154366999814136097839391413452182002988647331998910984567632602001167017356376263138415893141717716515003497228955391577608017940519760148247525852013092439693205483675760089788072097393518147521843216596586537921499676160300212540063341810964388685416546548563007250273837068147060575295366791935518215139396095178677381333299642326461053834157612500756190561189631645984063589794867540754712251902766529957483637555983777272812929129386202003969723261510910995922814132946398592298775086306637439774466301784419393182314717119580451912595608990285014322739139532039039757448006634582791213271128311876716882348897552714272916258848944780708217138024698349250366295706243738317285205741732550075926111671999348685105111703869789761130910341426503747129451442412533158895850282741610339020314423071748850262394092974716514265423581365372766056632945885679655705868069050374208325066637539228915086092678461423305371202508389601320224920788589710520639676293114789031163845988383174573824502053390688901524776354902473289224039792509662218816080620384562841304168037555364301036128022970426299913138698900064480725459016494943357070873393460870651208008510854979533077266389796010718352241702297119347039525516885972130313722128168616358351010782340191217930659546835639750064279207591895263113121479505509528185759257831323093035677727300469798876247185165141511943489896923807972288106526220872230527777566332281408493863415385313221866312163317237403582075982748310650022665014026450869082145144680588911297366076825326165939848719435307308078673703626753634598990471956467418145435751999805599036105094081090477157078272405258725072513649447701129514289172405461950318491416042991537617378049152653092237937704770761375823002059035270220618897162155452979260668741448036152419728209890969148477457658581732307945366018116928126135885313095197851679510399305039462646739727702238786497636679253026931918241529985675022398161657845503866707390851262188427421964554122181520494738780177671399241448108204288826636361363306757396568358374735267021608466839586146636303638469952573719090488309096630469966580079089904548787627472898256690687093656605055734648452752115386227022573289238086484022862835700543201793785800183054863082948744142199185315264774606428376465200834232200075315853094365839065178924307895166015175842294831491374007678426543032909513018501663657670007917918670386519999273146541821047138380671381731612439887853672346860849753606840023313440370065134262805480567801371151636574639219610509816019105019601451666520844804316399963902258597124889578357170524588081985865916761667407595696926221510353214764632702966345726366813093804811870947073524332398693427777332859166020630503925984987263521546366021370725949127324715730814153722513816575921219402076859410067379317554441807423362202237778977503811098820122095611181446267974902167772049886374535191585696279898596508556070619866062491817746778511954697259630336091616712514267320608393181597605515073352554498908562791180439856714228185711083579812219991617236553704560593702510769710075859765134158707450332522945752115769778875674321232857832795820403441523210097906369424237985483996137693242623464775683676981809603545783838052877286914773235190939067705702890662215065713038509248296425182882872660918941147675154795815013092853435255573460902806624670593913803713626996541664621777786149003949207470453080713214049102322272464479858016176113223204584276130145544578627644899594058316452602862235190410728885004606274514765998013292860969352988802481121263068698869879612240709277395358454827886530155862451435353280587919700826371975805170062568080119944814030148964353918385698358548835984416210164581833990657549231845871912977455857721191453669983119681665599229102684391303546380742946154808544821061749023222908977497548745784814179913663325911643403429414661316147356064489522790236976858349155497372671698685314348226167632745474073595153458523099551912641737975913464132769269671635527200968977200293739934431919322508253062702964873939064607487187974527219053617727210302301597475869196310272894695483315593298806811152403531176106854756993083287175764032754923914609865059106708993779877963921725177110292659841392324560619350840265340551859039968340617526403631337552492408204779915246478587950431775912782911540297092308621511266047405378162750726760015710643462651724378351664688928561966001529149333849036710592676464242711280720186704130818803599223788250906791434130869688839179121837706457534035112448894652424782044647781894404909747324349747457541245879515963241811840860328156075905925414370631086359553026196454937754160631941804079429674489370300511577817332776952482087285882515034452427333985502471028386605183566596290611853495157541550003268488158420361822722124958596886485789002505272419431381012046369010315777194219843326068801838919854460823948533140422253015211478726256149627517513712765739278188849196361036582735797216466754484727548608253773519782743556495534143367590261469178821782242220200307354564279964591176031942574455466925960760296222661033020797755077685757056849033914220912920275611713704570447478116171728894318901461082219754921453850585436804024113915498637736050863690384030809589188564806988685819450838728119473609544073446255487863582701001991602036831398273902111743353855002285191651977547250084964206429678817437538778546169963535215528554676188171377498881815266465818818077816304875448896536465318858817978985977476732916662849812773363402457499887464196526222248233173086431341278527582213497388404869656903823818429772351212299675724405054917723135997955621108977938412268071528755210859654504935170117093409320948113654266057928962972294151223573792501874931068252273147765358080672164074690555949950927386684782271230424365419802521679869787753260424214731370589789476321687359977358363233531745509828256733920520551849757569469012433148904454224173479219358347364017966653675731270362880610385377098275116718196069364074891525116473800907617765414074570129416442170217765340929503099536295283523575435505880905783887004761744870847397540568365072073305664363975808366589602915377080920336605508913624477033904749860867842895032508708948971057308698577416228950364075909051279274350341527988032341408930943710001121185635757121475287221658109672086222852740144164957034100377654056690161301333992628084722494194335258959401547379216383935706554749724004100160625930603937665005613398112844459594420691843768416772756404501128250290958476636751564362740215868310651809357145392011233215305463992631730339447028873896289305486570344839707280525217470016758794251194347732031873811539007499849282160370430204612856350742973391536493271862654014343217214419206487507928302292472520096837237041412660204106559436218765828077967820109288319763780358528799983594446710281980708816029403647575044448042075692881252463250973605947727880949309043704620884741565756493104283649316802060320182875718984818029232779336682145295688799920755112923595460527379977811806442714612340963963099772438931015609365412549998869528675025007633638731933397505401732202309689528060424435366413059451023946511989474211421465355865498799941399961357373800432399457491871723936838418556963839509856229390812613731215337976519890599970193822840805303704928885311495729739262009622350340625534157606540757646619217953867114199138173200689962576051706210637850085874737254050683240165220406160212678541780656047955481823102729379779139255370572826468854612383933721704575142389368162279139036569896584061483064858816098018298093563000334708951102518824402504892817016374771841784111907953902035007316881422460912646201044419371879656270099133609432188187449512442829502022139937277534244327345731492940979968247179977217931408073406515172089625007997878716110929840250340838748837316429149608689920521503920185972295202466243225164382762686456827502986217659947149549099744699060388436718757975635307328236029427897742478849227781974045800569175832498493558342185219897883170534057835440718719205495176248427536549210318208926114758200407776028222139770063305126740781858120544859908049101665944562791536188531873939275777740305958457474651959411720896592671482980901989345032446548226887376768699549478271746872701355032198205434037475318590859469703266343814314823179182857445689222882319046564274799749350975940879702961377273512241674408370668308044181393023710180354409473555659934449796149603730306211069084051613115656912747435703504832561985737871077672786317571955978139602723987386052114179730290130253255403016386058535365618033401329923874264301076058646812182951568594343067125573473564191748503829675145459527361171274305589655373138859107638763986844996564990140146379224578799611492373195350554649049009510761992736692960209401840715874048717473432797259400955253469422719537851283728418894689377783948183149384016755878670844115245487282139547947305841356585105345373706969279029691357353704678074073911464319439590645801871242943601244361186360385224825937344533668463287966018394406169336453431636837759661617240914716817815515434406970418872862192420616315682670530956775488089080421317677116615421332531890039046593635523963691773390365845290594127521964828481391850426973007241242444266576777205338163452200504456153905393891921053638577483566404665679508719532870841644759555133041471500050346890755783853796849191006389694221528321010579725455136958528250916464952839289596915603185812123932825692704523701675598734425696544399727411715955329683727908140825871303730765470456358960248677403918279503242933280643553933815546610528483292494473806331007542219988882320784949927458047745573980020082179075580951730169844036960439895969993366611246056420190432009269977257873321144024813345460694254001562863456383279907035246233523291333643330600105336466258581144523644172819408204052727248190884628410145393547457632698876293096534487362570572958377389481362352780071766534875715128485392380637093041610485402858555609061637938053177546835233406703835995107346884746242219166202910173560360029292286672813086105042161756392736136999459498238370850570166360175727898177683333745738603334460818001787245502982487683524704192627484580258677554384338941261169561646281317161313621895101497961330729982226869799152025413124281474605654273921254467593084125829795552201555455986442131222493395818519049811504394433491114737584849971082053236859470594111014151870576096296154059066689125944408540608956288394751056858203726379472787897418330868756650012047797040688605708311288913923922845643140906709188509303128020148593819770278236230345636996264522698116635487364226009100865420105809395054282791108565796992847279879006341719175044769239018151048910004421431318187365164450379891954364463170183640188836696387676319064465997942494661438489167920905391242998228781290307640427250410225297462694257867626898930547213016936066728600894021117275544748732702812346980220229049562941634798579939759771199414771862350347544933141775355707897314691231745766660264906227631386405105843796217822444904718797221720616669831023926679308030297555142749088346568461716399538395101906434974643806196881829141033452927657462153455609427225206232762007774087382738180629550701657009087505330505342423932742312553588693958758051741757982392567726314748515456674114227433208692080364538917834826768381961573157866651530866923902465483598741553791604650233738889870345905301656368307597135444518801820034127828315771485643484836325991704342360314957252716906117957116039138867167524583331622853729210268195378672690991037433185132358677885859122805207218644491786132613090451224665836659633882881181765695936175765577729919676194224060333050199070955822428704108441914221182926503783970031282764960326113363277628958370944998211577300919807585936909612728529127654278954207770241053441654212848505883233547329701010078126601564610156123231586012329849339057765015104634095965533853813005062721424444063188799980780178621671429627818213216584581132274385810246306458144688544479133567283421000692457339595053056641321835577465819405472679187503366491428466638604456877934729759973632023021447702879190853495686808556687592067394207326536175916772335357871521091249330576948518628700192768257393596278170221873984122912776051298750597874271916817015913301521971758537227477860072187674361273026230969226011274282034796329538002032287559088267358408907641782619740605232013178620094552039159297081895659208304059198461483718966635236664734759813900687134787535507608719043978013778021312051912048344160688637145583185097095034921380570261887733086697754492507863269463282565971164203700879401935619884351954920157288610164053032537613897722774537466563734531616538842135951042884053608215229021379805865964931661403868822977205229363248496592334358120872167295262042805281377082042478722680002943224527008374470328388084372552073289028559704661329078521823620046262338108262947565692854461795314100504365358738987097298095143501143699303644752856259109736188131187115962291955499144644921687693807039343798575477952083719943301400178938035715688904239903324232350507897903962918239362766842410236123338227689136007063840014950404482922319571320533900694073995556273523300298413007311237762488130808570457889065437006257272110727853960479142392435630553347253215647815022162200579866807301412712727399249841390020837966523903315235705462358223013051116531393905852040049094030478883568351900288462563275653778102886725178344026889770688908284286230947537627583412197367736491113818321881002013307108136338562924080243832984183886070925344533647894824691237326040578717539255242537696659878870785659343754862650783373384486206956657253141257364631116308779276579284735512105117772738645871697438392024376241119554900379443045135595659357386109142819527404128809755576916272931168621217062911502065776187821544343746191940359742560269697561809920152114006322786657749085775665076472251138836340869677077395127931436194946526650716253516894751081402933255132907304935051875134754652154662182849557808430643627357683155102534907548213941472992698269442454439451888245947851367270836768881944373912808414261922029075767469558839965585215505546566571921330266724165614662054139637107527504256541035712828108768827636042372647533715724789017832650101951851265655178494891997422376033450394666558860058294877322884463719482450172992249849412003400428564580163151723520082203709207429517133609355007545852500747331757729629352052784865196584064249889774588760069927890011350695736288635172811011128996756462276190363088791620031117402267279566676100879047145342824338173808964984537545276030456526304413748568348645824466272778423012401749343807473074865280113320419403040450861351452759953724230147621947052520077022629893392712661678289219153254640388817585184824056596438687680227188210647231202729800616467358499990743588774277736679558443499783375498575379539202003646752160642495938012910008725588358021439873570112119078771981696798738584459510185232514035784599427409976786183589817674065607615160820329620984947460550045689926786823365021314321412177048915970739046591825472495186179190201344976276650753959618105171084312980493768075867560106194744963417180623490668156414457816793025508101110636531652851308065432657999471538316077894493760528234197859786236379728536809101507518955381474704006126287293231906431721469558881944547473818519185129192174637707392384859442270555261394131255296610707219406079487281927575399967766168258590298776234675197992574535840930310810295794301840882148456639065920646708372133803465529461721495632720703969333911159849646228075667509608622588761727926253394816519741545640934740327468327190268193939981495766442324230526290003019360528170515034759897507894928246625603945747086161671434263107975558891860466811556812690842903250261431347459718225971427823027504912773713148293932335050544813369954752017193163958873141677035769799531682669289165442260515142105292016324535643787577663644438855457684147064136876258936875424312752805077322548721717728079968887786620582986890118046649709665260539165674866942480486735000609752143878818750183141509108733311665425568820656449046263250073191428237148927630741380829750830677905345859888404491384990705162134179646176857091819502906309107475839244457669303286256444614645203504358174735588253530176446607906300774321306055630519243898054227635508839323899329359407932967065187152659849683252113361459070759049565978829016999793229351558637004065736759846622136207831856546572850249059259082837043787738871418565872994096330221713514614470012630044362629335010101663857540264269077782703680630101300010830302725846911349846022459301120080737781981127275236121677285054325251841403654257512087351671674683388285378816144579701441307941135548395583791706913998193104998443331487734062963315163493808378822858176266683041739817249089489846693617298110703012162966564576993099858688417544559506420311037577574666383272783236886027719586451650171143402275533852552168581370884516453381512290734228804716240204352848165698007574183105924089900483771095123647106605626935664150527722534322254993870560963904314455769725493167176782889072463228780893952090977697859700142678661723084227191691008124932180288926351790753847856772868197652043713947293159066719954613830099396989088071430764817800268118842797679409482358223006207140559013927010496179208673229818365476926692535722079539875205043131882133636477577298877406016218489982402286721853524097712062414372769998210099581229113784522144183897214017727129659682640044953003145694803659992659635127475088960579924257610847324020401075065476019953638985721246318409430026992751070416479843633102462645653031120530765967982075896113133112443943599682917272612274139813098218036257735972420262025912200964619575542448451529346641669280656561439226489328094538485805446582002807602007993535737568573471789804665123683143011377031736499637952095812716374794627464783641506614835625832307497396347624063000132318706745004491242383386767130760997504683790151476189573306616006239978975044387803379380129816707102856180980583478210661898787663161830464670590111037441846041686897040213870677200446094093291454401879271479898093587432776956406134454281104706708316862294105668728632505355916104365927216029984402333880701770276826566580293826507822730462371826836094923835137665954329414131381633492747423413408211080216190006597513600159901036788363423249048088073029659166761011257789356368836645347285108485857182340670488088173771779198575846788812385029395791506846221851440343000024727548148614560381232326236045946080520848954820550694882054569451115946241473010907662395481807016996365793429893067498541781352721664077974513063194470004209352616944677137325496509513172041040188258336386409809389627908521758321298868845220692430151706994908783166501686614236205118076627711527949055562775574947626511352920502618968203666788013561614939395273975760355579896132562798558833902893788749088904789952306235693334738957115474159256539455459848613506892032357217052346606041627107663980148401716043295707202600631126930515889824553305898890553765103677220328628444854036965256254056165120429710868082695188699906794334703669101242808814003740711320186267702260090949591583364128999412006214720543973663069918943741948180486739519125770480610256092543703231161123257635325228868354787073377304943128768885056882975244207840085693482524425060251013541969675193762869798357669987568605975625559255405052936637426875086271085068437050237945538431233430324213762826488657823650414460324970595150999583375473422997197226615976820552405819767010799625955853157196436987870069537593319208774558833638479988575751912427358301599533067419859883853184635792845889619136916026754721410813403652026402949026972479821549611096680885090085335997031866309975548719346301346120014821160474271644802766505430881156507085562539257020265970102235123298679445399842162961989686249238550887996744564760196342329957371714422807549464660183967222036643717043043445552671177584174179952992714608669392789807542560927005481416886844526012253480406553856154050705527159559390983818357131531779306188187294533607587498222815845749377941494573554880895135197072932088459960350706607239201269614249365007841207371277930462210565859363804974340657276982329327686016614589898483789957738871939735906656523209334155310069242975977955220396890127252238779770221974682825746704145881887074792415140127569876401867004262432832022691354992926066608096773283860477570019158367334588248188196071176725638116692995537392631868545309807689329080218734697878519000263289917271800261401078051082537188781731587523553517702278282693675915011938023778428956389597368429873045308403398858517730941871643960909268743187851243608973009646701605350527881609092251543530574282702751575607795831445246561549105902603962803682734070596517927942856006434457334178009153947495949010370155852365311383658497303695294702737807171766209031098769917160706947555533963878821064426115338403696301977359457027730152437016441879785829785859219159438191932259945058435016924632160602745626705571567445836997971115711750976586846716679263480770133028016304735953137878960003784931169834996170470406320208894999614641024654126070505140567409413394828221435091079166141097702209422793629878560080941959845254509688418313202025422901395657940346771257264830688300285427174378603587528338682769726621657010172284599188884406023695403701722115119997455591799421485164151167972046885516713617008155607288447037308164023489530887024073043499336840360440223580626604165566953970015334024592148446210555450272130243009225043930499359861311577742356405504557309509815840689028749066484815271466444906543805510937758924323878534103723457371076249242434118700125855426355725128239126196725331448174504558594095455452625508970565327354998442187722358051126344322580598640041157144457962193318955921106142168937153995683506759443569763315563902454082714870835204384557494028570451206244774148519540278875151728751632983049608489622806423233507594396176662150367500005335529162084913643826631786125035187661737484616157864367632967822283469775821955135987732112531677213918398851042493002876088417919222850993820984112233865984565331984621714134421861247815580039804738975997828780580306937787080090106123888016049542709557130876027961182422161926590312479424844551528717324873596003209799850684561585821667322268598385804996695153448213982094496971517931096645515205614290648343569161928400606651092937343609714442271629317849312890240471069730665674671600789269235645492618108095386335698307249864992559944649825715520548026104049626696015316131934828045507361303560313760308728560783940912850809543894288330756176956487459000523838981055667996453817008667086886140923995812561314618161610234297372671747105773267113197059894381151187451214897004755866436155044666122421611464650560277401744091888954803861593887689021103768608665828589946991998392071233669519211098311074940601141545587141446237458347018180985383230604264960370362010248851837199863234672693790367757172840574177775226982071579711401511650752290727148532147490400465410857051694073237829188685206117522853257537843100422284495900431320623534688036805798244837807512634486681519891234374203212591562906707202947379601238096969747784840846287813402421911948217004862728152867675968900294580911729320393243054120775412283096135835342828571244516140221073334504901366803643056938435239376149754208872840349502915250173064064010926140756079205205804157379738476246190968304186760421876551129169795135001113960804405308452248237473028844593543792097988604666989991812829859721731943030030177166329153039054226712625209080160348663157405365419390916588274503635184697308581911755817648107138775588642216295466582196438541940049418279363558606931182490390642411158957505194118262040263322516121462253109252759024489375509351273954825290974846843797048318937935654485080809754933067471848190347228153047051658590281657413600491339274295468817883731921985311558795768360065461174287141890632856673522615770410049183926536816167828278918606786260290041287133106995174557611288723974703433531884035244367869347514433436688032371552470513554246209648553984710667294836926883782354448381777113578061617401748510625867208744321135189648690768644648891746264861227184470544086325404783299842399841674798438836860519145930968180093022262434498536597906784939012717230369783993495071074203184690645929735824120677717648494098032453433790027509114510434297203506309086934892382659149958615149015468784360096776724196552548167481510644312307176157912030844639496465986593741737931734316308928818186970542982967893631386867579397937710549240343599794933559665498477569728341369503812491847737469018863681447193756080843004659192152389741223970660851763512607123746853239100817368331764338663444097491102297630951050233149747983969335145007608747206505597786276203130165309970914565715491548097526651981196885103289853921213887697000227736559041641645474713636720079237228684499824326192673191867484327907603827256002827707667080683157890822527189651540445685165519436717728237438107495461287919463308162342855033073915791589463369547702560145107017955641832516394418570908192551313319753733751882459534384966214435604149940594540490094162440275689874228857517362357570029963298234688089240889952077350811520822712997367416604902312840384612438877819670739897774607256345738307662761573326068857574099200563006455512475023142150194770943644534761729222535226197790137521342127850413836992916961513648333428181473499399345355613852411860540068761286064337030015928944233636801651815419075421945450910952048939415210665073385371513258873616755224599086716275109343083639248602180984699496444036870623393819173462730270310823646910429569482446468724208933311728554477445405293789815441529978223518348017376816623021351123148334214812319396622335316971036432621088568280895811168941805632624651291166851088875337736047842876521022537353045904796534504640413886039095559228773646892684113703540722769299289311613245346110615654930521170607501662671352585601977684722346817894940789603575293861830737669772153804329843352366292064985861598719113767541226850807982505947893415998619759375735111112033956508523700790910331381546571593191082155511787171561236991478926529670475283067347303126044417964925524274551197151326965443070256823058059184904055073585621057734583088157104156550432597423034501906707274433094681517455168506620710898863668894779409779495430709497759910563677062025787835147335989859672551900555598240490365689071283599871887470280831170013753975786986414762286092482850669197264182497832413453900768098473711586996138074938026345541946416497025762136983408894650201369880214012460125620796549337854779211325763399480890221237350921092129808775230630799222247582762068521566348399573188281625215857056194872522915245675359715113491279067378728347339176924586554533637905215693681766116093598799479378556806285809283609985655639043825065587162835335946670266650193765154098837664201953598482839238384922025592494605257193718177838001289238022023861677825775098337196162119352282904765326341525824596183184038603660084152806814215474476824761493538904315435193319668992431026396794531996005828460761099119715110334174204166238305615416080654735064496877175513430162226466379578992216812271451617829206945329172815796580600524305443494365016223363312855948722096804132097045901563213230562435065546343178515605477005040391168757483896403769173707057663728015095326196494597666364662605704476673561441517558737910960349886694878002525357327267604185313667016187890859157954576621360112467485403040002959741064317268626252138854754575414584630631581235022146899199517281606957615776803376873842093298831231646535872397006005827522755628034292436398262475048419531246476910731535339381682279937718934048258851606764979359268155216080305240165087596211956269560407954799482687232092412574236890417314536147234596227066333912392926088797730759204252952897339150441232850325661076708479103846998615060670695443002811244700941654415597060752878569008964011348338100554263689141136808494011884874535780529531263791656173968991619098544489981004211059704229929735947337826330310619552546211906015244461834259614312359036000579396360350961615232505593746160261596048375390074980691710090783193357144998138652699629625243729707617455641998900402790908775363332411713834503291128118770716264332045799212632358639746409064299798188938920713295866454169252463411991080889641529864186234226443980458508756606488782916274069848799485543074943379774853823444635149147122167150037325221748148299749633873607907361479150500331204640357892980708681008501848797455370107360883772453406294094440079092594520790075636397065842018343719815376988117440732299163167728923479561352303963039082285075349320806292223170186493370516620815989472396328018551708665879219634716048489373877255193384587475669528039315579688259703461363732491077461141462037046621178497204844550272703885435992121305141853099617595465961146947794123302497708088942525244691940017216570514442878615044580394002735044793554519840037524971313420793661825512717790268419325065753284922229285397292357992369380314869825595954702287532608836562379397899240820458567322685302864856614331904158880586862589688072941479635459658323262574477334123180746880377535838415025560944662976780842941777251121500047069699681535024202177236016329684677953613846012654309461892961723882570733842164526406631796684178585449561178040706036922130109087852939915105086659024512048025152681931872649524079649077770192812202283945722953229681838968178228184279690334036288728111413102854029447600714951230485354043658537662694436866432133221725675167071067960265974952491540471166411061951556094560453272691150793062114847378747932628045188559599284177336059511416833824240217620934418672474518748999185210705851209469024197758727607014460339802323624901316334995623112593472258354441768737187665999819790594606656740621496847346605486113875145587461276695222387719401887490206814756018808499276086826714772153631112632627708163433793315146238400700557023733288749274907936466621438740405815832591259244896269960760190010271109524977260421704159547718482803670014585247294554290958032730783107980721610482280532081090104156705625858545382650842784728248449636597234439539332395215943203728689726574296669981193270590418024344890374969587278573358792765195967362970691144922414051943285517907537947000438104647359568337310818317081036574289591744437353586803272801032968899628658928469257696535198821831522327720719662794190350582930174629296118732126415610006109724735992626660250881964016629904769807769333183584338239930690621753369698458023280018661831402513611208720038539755377465109985791678169149693463292977758890550063704333409216362544950346801834662478519771775581576825835544836486929792011256631852819323908832163876657510031912181656539400709394070730838071699002501322086125834573635660869075998880671846430909998869214705686690968032911463554157537293535463506430974562723020930894931624515161985041745503124542835694600480729956595613330519452264351915608518101251833074705834261778890595507870526991937442190712399402409577418262369954705935524015962172092606260479864492071368697108745658566272968567824054282506812328681265995159989384901579823595558802773517535784689807490768799248178614122462533738660123611243799753158177863022766945540144478503232502485877908538193786993064324127232248931640256966516762439761711643294740553276266115046008646505935006693017244197268707384908840046412245659391534199452973557840750025755772823701423867607565280882208271524263481331894298713877769285407941689565531430984921525381940833099658168644685938756848521984681152323426586709225725601837328218826331164845006643634471955659152677879826983370382608645808183061055179284144264126512729513855181011684615495918373057714546693904803234033253531394103813243642096399946826133661585878793481333153807742272753232274573425404914938830415673729120318512707598823664757426314318169327327451643001444339579701533441203501261447247731270839682575023403708339424295999582985911595024867810332296980709615226879282314965080831047557001331582331556059333939691793930252601051560364460070949504279248469141449709724736717293895130050032241834240703855861966479125185817407558372286855095004782644357324171828721090708121613462944142776916138126523089555759154585881824437352115010628942603257181728100017160047528801396888559820425975595476526737098743715779595808198790559203290338398720464633951662708398856503044141003528645330441374546726742195626635042514839320029287746562028168175744018672077550516371378205247805367350554827797808252222749783641828372469774854638385965457408485065184303900923432016813424800535904151386241166463442249093272285467838925307875545528126964252679215763414225939208722404865512977013461726175359658631307083911199444198488676058856207904720366484196579738335640323770676467956860871140852056682589801295672804361624498383284144041926460606961449208127213427948160098445534353410453260288102006859167684350407437349763477283793207848035067735898257875948808148574153968075511151613829881976334173605193034566030842502171937048058989602498080424360791712467001527105743953411953301124531352708220740778311527946174451242351956913140754601971088162353254655673596085450919539857708938432446062761912843625602836709890544364879216850961452146585920530212356156184527646184590282262716900522383274834402274926011679904184066283113699119275376560775011651646188611115459884053509181518396073425767315744832278173607167558866343413038485972855961018181153058305248351064869119815222258076353907102113804796618198383217197435524486822922172084621783147220350364458206028304197783301574490445109932427636245778193652223699066099559554003378001451295520459451493852669948318554572474256308145858882803836764944333163490070624599025510935131748357772652624396538223510900286418995712816934391223690419460788536291785986072276925291940715722024702044172216622732924711298215841738000132079864760019990620869603403246280571352001493316830371990360934236253191542282136034309517483001166028834197923981526631877002609223284699185393059668457970909627205206485950149035100915775859515574239152080375426598008287906644678287211579344669595670155049485636935071867377006785746239953446603852255409107453109936131483487770551730935074092047472983485635749742992906874373820839448155180671429167708404216029594672717762063520205740447884568825108690105356882294900308057646967930265801325769675869164583876092631091399953197361076619029504718223726449172630944419344897611716101227469258644104096054591328518975095374753978439609666381359054571420721541989134146724038479117889091708817353645169493297184656330510725527392163895515448041264741548648978719918405636466546736191845488912886274186630761255831874366990454811668336140277311212679249565424771104331576080736208012547826591614423634372797269017769392985802766187372232762780109584276148901772442381142566719591501440190875500042337393632445699513492054669971006655011451127639779517665677279233968975387653931238361942725389417642088062095090559896135975761182900952734859384847115133565694380604011143721800933569679864695818087143810479543091995897514434973560199270805550916942119690170249589112485021640822937877121636150312140795541929938349886236731309409174306350395380494061444775848314354628468439674057033912334302161684358840015007153893687626890640655426759853212956263863264840124352486458808905979167261055544089388035246845599332198114521763752031252521205918840614895330335775256171430856308847595886898229708425993395042769919660301819007048353184631290787627418497488088514588133535663357156347000711129121937068793766030329095379598024553683643125773266569111273134891540821089636502181163388910248968255226070993028850876952934664343722104636968759993036431536627618345409109285638808051382904371220646189734450356005963278837479194407188590506130827310550117429833160984645326856854752499300228960126593145837295179200703277319331848724770309773637685196007871045770905214184935552277143750247492572591714629206621260683296388624459003191407183034663219080386157574053633873657977218005108357096976656185076338170781861799547637886711337936748818036569545377208496914700785874506343377898893645012119374318892572729868217751951529528642853887907881289002579056367028655459303563955341044797824314472134948050626128234632693008246514145028875644120270819629256227778179807739829734841300039287976509975886302974365874601430514684874095207767448216844293768791373237856502100461723904977769750784964253373661893847747303963726342381817059559946049255784002825191824099123930816207817234987954803253230638710092126079729070309104355289839992181052099792037912009819190015946186755033502391735723783789244069868085979331322401778131486003200827307675672037280849162092756110845988444924208460837552112830572567698721775231322432523659152755043309034987148906500429705968071981986780565495094503748476429849175227622267651815595261025551097901528883245718402985700353468542391979940996961076989462077307776796368763496252674524532203156593857407756548924302956040544664653898091964100216122716866516509420112659636442770022747310026453283058500801485321418174266289327525143240850526121444967544738167661730537443518502478464110034605840209992065937571034627823732437996873569913624212573964432828287422009845655936722164318267819239795039127998739789975423741581188811559377457777921078512648854620242663173777782095126915336689835836879693216522301912664054564040825618144157287026202841506607230856408453800328647267262121298932684530136814078109745710551840281832496185281021634851550253279921632329127401766428251631244358775808224443781403408406997506932415864728897042527540766523915247509019149126126814695893624786862481412913693355145672844452054295659188497883921820965208958062280816539258266197915886724593322515468126440249212156967802543200711208374262160915927880839460561061551381497543628443077384570255502100344772332273362779783143939107041707585363543315190001294546321505385877236301589734956618680029750620374095452322009308310124227059374788878477693591214985968473289561113148873189171596863802117371790387851973143933696486281024074008184532384659773610612571269271998890414979734567997707166978559714384416803585357887636288223158242865374505782316904148711584847929110363029891526991353269419059941515214208243114401527715260155782310306335909017454142026755192252436306848283830107401923079399324041459512900127881485808645131017559588043084417170681546269200384411544445787243343436916665507753290841833618758776543617280406558110418668632803624688033441621083411288808703758074629557108826661127847450361102470254843914712048179903754272650352697269851255810811079921187368738870374612186878188014541641940756896142541669016834787707590071598423308394267307422654939829484710796747748347691966392303164748073884917289259422083331869292082876816919882995745667593873375264362303898910801849274510828314028450874750431203508563065620450386407556258935202652847951093362791477943914128907387197391377720514665048706884747875322196345356018483431599932114710841547756396830275577879621613344691801788199190534342514045873855941760161153596569664688333017771551133432226070264813848347082193287618610982867322837376523536686608245256232827691512567803142796429530425283933104528558558402955800997259491023755390336616943667208643200213032221315053033441182945822598770734904388110995164392723961284265297730276136409568935799195705945616539390656064043541921390680800208386405021631043328175453911657814386812234416591232546263799106793593479429901761942590556847137079966488742947379915741357303494472786438919756690283698207771399263144734334864098249870885460599235784649638922286021729790156287791693843470217902485828319474434245788916573154965733769300045533036567388049722258602184397446304325642882016285509062692540047914152787663173512513807608412113746295563642269596061904108717985434185136841801723996827799147669075879989646624709598547204466489506319762600106633924259281390522945211719046923935720346608834277799922781453708635917699854681743659775670953612601226273251158393279717625186587568130840002149453551930600153852932547873529960200093254063817183693073299618003385827398752755011477917127872681370889512060925757107047220718294216605765936579120077963639160162367363912776778543434530503269084084103682162485375327211042375382447415189537309588140595459171814262537170445852964846124625569179971074410901708071242395275781618994781050802604022017579756395801940402246695434287758406114450562772473753700977227607138924306655194475709102338686388024391519306826894597083134956008302625766746944484195890084078045860992643200782812889905884792795002118441904309257646248142141390235384925251202909777643423475147423237577592186013486960046967526562494491676950194986797451709999555480431925411751017081117207162536000922425380428652361597780710110724394243186020337049944863348504371184897575384558309915898865819296968825488683299058996213520204033349063713510518141490883751114560917798098216552953879774531774549502765718717643627110808280242258443396955970518676381508132215398678477236299109452459699603007470131628461134661799844038580886419448285943278161184585277264004514365615557103373739141906553304492373596517562401893611125633164198914957267347848447198165767929684383533477292013491359469924397387411178222552238213582544867303681191591551078109870384923582399757189068622053923416498864081227516934898892009507637549358621287995424227435150827133925118237059703480024252019795465880303972923472651955202713474619804471707892902410088814530694497184445448675722991677474126375560924393506605259551698759098462586920728276226916411897904889725100215372982295099140255940953154636553074109503751344289818599903080768669797038525498402650409453995789155217400616838954182296214238327601505216548106843740062056675876342536436950270097196892198919067806305839083430027331060383122732850694734747147451171713970861833963549547398086521421567123866520461429322129871797804356984280506100490053353305354721597050426504156526368311837173468206109452729465013928002111495328249835653288165850163831188167000756102664573867497441852841006497726235542671196478168775094460059752271417528398376243377238049684874872897838256677982274362066593317851933199135339113030820161679911357264366054117202841744738966194286200252451246083703634229973057861941885841238885413783119053100271841877770265831258849827256113909742789465044615240899111024718934486569436946925659691142906690637746280637186619566316643631978169290769199559691686146658377731368984013914768462800637440680714800333044972709063834661473287075540917546914902511624962144685970218310339696787726887612263195616416277430797945011191648623130354741244502091040355106517972631066013635581638763031538101972301902796969358460788113236730402029223792178495726966438955530377898031077427665500305868419644685368403107328523373592900277895660459979590706436657936707785095728049108306763405429637678049119870980151570389448077425305168242032621819456689267229446153196246613129143165681960102507032972790041512455479031655738711419547642035012480628230086631595895174496996423371420140453541417298389907272112620779443509113154081963060060662625112914752397276932326616889289101300659282858459904811490150130739535119499573779911881258178941518670224034235939024733341884679154782665093601637182322024086614359272666270074047152417024010292604017757808743100012017892603230242368055519485053905448419832591126646635233064097777632822185158329713050908175134431197374388588412106748876292469829324518656268472085500818542839141943887529380521382544372386721814322331074409200937966936520275317261985287103888438726540476837632753857355021003310805629479204897196345022409209526750548600565829519852815755520131582584656745020171500279646774092018804263685009861858053876235178557101385697883648305971100801843942340573539343088032787322384913479921433726065607036665401597665278210950217568063523849555159686460202138069306133352802087205940561234470865001621586658803700919654456946050800091878467877517401104232929097942838812909666786974310181781880220624879981354798076853292009217382877010681175681449660253286516609396689397786630477465733768116595310700777393719420183916853314905110795185427002491390834800644842176121226417822830280588862462408243736303801399095224285345646017650807560720357691247965074649581353338353293371260421358320930298662475451228237315361760410824063251250351006099128841763843749366920323138694857149089934172407005748245156093616003897140046366288579593019866975240516561295501554331331299114502732339749976504695003362510485880317194476117973725019872759722214000509913518260035161622539249600331186799562017698559625612060945084775700243898231034992404074938392582656819738586844257740784450308466514570884061432572007646259640121279218257610041136593174572298432009403660436180905300260420540466698694523512137550169806525857102803676144272938320167456145066942296554522543697924007959143355994658083350279395042739800340458056302705203698681444937054572741029735670299055752087667161077883050329552807015524835676811119836754004957434309501184882815662157514360686911106630131601499517685923616777937652482346913672271235094125458594961011178900374920732719180003973026590872305460199427560169243164058022045308399939020143613614478534228419592073106504491543288020186062787187457455715298841761651318314477390758966195067461382355112027885033279682189070482888548629951770966805162643745340018089056273081563807716999710354658243354031113668182658237017000920541121296977591387011937890972254937424906612302626452226466764786143318627362014352451884928659479604484235025611096224926883301333975872753795576888489294534450832868633671049268070619278419747644198462106998584573175843498653166753324273827741869224668446685657579461403158679430394674053656721844885903839824963894924769297181455435227071376733644842812246594153313439235625867767689454750720161439181394127393123750841262735945101870498242088971247544092493932489366766804482675973292959916562004791745050488613229993162434441819354081405003146255363517145379450241476786271543639386063114139741895927180381618993106854238077649181664730383888092802299913181069451577912269231636841928187255391071163337989525732548572463721046240310487649451959072721725300304327657509095890756167833795073392348746967864325055102079775751979252332900726149763303075736725101506512854673855111588219411375760625451190362097114811273737742633949688648472454603332070103274546607392970980430672987263342131533981597644943123703350728853489217694430471225279679394205579160864291077388087951748518365281691693293302315267304194626520529620257532272546884872533824870158818340276188677587866142680334449066814971604561523151378405532035897273673408980932909809363195718784852895442400216815865831420024518705010356350890175280042789673921834312281911732845682897712162168539297748370521321880097864627295753399251734071223691001475603249974690311146161321056074368100949165102833206255102071294768468401606131883647798302663974301586367847842916537402921475325558453261396756939644421123270847102688412500188839551126004660770664779263159260571900814781182369750472418653706778014490176989464131728877234330808117846039971005721168598456133437969258610026550043605151309139249464633169013265272415784829753096472938961041499062396388123260432960227169452765500563561048403378152413638551690864414305427594384101673474052139444217827909696635465621262109037310855138768262765018878906138729419990207392639726338930130354877524590680065406429585830401317060994981499525080401043310562192077669479544289691612671957460881811030173259008280084878773779482966626446671527517465082730346832312431957273047427475737393604195552778933205303581977211867111969361814387637084114392081644055748861204146328473676527402497994529414650248605367376834239722345569710359491464942568616076022508875212591150108110850344519271673655449877741881747724053356956663641226473175357488884105785394889351743359276825293075959701643268787918314062820894429972578692695621588635466114631188100380110937667225529332668992041969578473824162970222414350175536135500364379114499253199548858588979315826388737926462185693298005638745016733580390570641740869270813790434577683564820676467106949766121592253043957283209572685332556499896694184720060968166865144919523118357905093625227828903265372839279435832544486405777095307178826599647396981805663654491692123107565553187457257630155628494864960295768134064705534252805470858917217137671966406444827668040694747579911673965723679734447548213889988932787864895187727298414367503710329001447398491788597062154185529884225935573168318341969644381588144799234485829944988950054061406032732787882691861109818993961047334528940944317603775798436935823348606101496761209945205781654812375953067639972127120020765553364870910406200792163227011013805914160361112088173846259320821485960060878805565050086795444711353523363133038712986926439585488615042323341417796419259827377239685299861989249822195100302567522304338916283188843199462020698232934728051232503125921499798926076162682037739246503586645938604319927523991824195426678817856335405356409877665633243097591388053218544555984946716184983898666959815979559374604993435250880825048302270333235930905309417038242596369207504784138297155517389285815962026106300744318888266139717835562767520293021794440340653434075882919974626904629442729542221563376294344285084066298724585382902634740506207963149913020157038148535582212481668495560313194483315822729398446609072563591595509956891285647259551218223555686873183321537862588037045489904604817872245305154459686477879302092851952141126467987385176318880230728989476188740167054210717425873395440240354210949307419480725300681797170687751254980428213650393491358939333537498523127620930524177907103909983264510815249477750975827973648541462569852402538788824760374015682849097752126908079295676919060188333758739561240569483758221375166308989648093330090887370344487664181778811351389508048499624500074134411081392518166415113050773908246313074315427782850882037510569008029133923562203798906382589764792112789344101125012391745134028728142095843522510622564265719896612022256914782064296263239292189847741213521268893828709752378075996494200727965824708016733434445444459460442904849483378966420236953916201166836484114885174630206609288494713735323832620770217706009701892491421333623935606217315943686612250476093432044393587167656099393719587610959316663359015401010799489357361048473607742816373138271652378801989293891776852074155717825188460473423682047902833962021638641005700501590763154062963906347567922229686491835728828855266221641965608629423082283507788710081914790233082797698383861397819273382725749511790960407359098026846832238314213319955048281918448666696021142565038030797733821879671943232615678249080778962862959547079337803245049727841509485852108823683517341497891924829657743454089809765456403094767938261444652711952213853488878865722959149757639365289994379621037844884684418454175840018947217152314330448283624448996422291826575766112554810507968723097825712960388806021847722316865470508650111333410737433373102472698765309783791516293283593931480684999445782330392203097177737791754199615692411942917461559927496669885233785376042814508969596657343000214927818872165503751289725515164015756516006928450012814492055418659371073513114742520691541911429246254943900203408607048471685580932948957451110843339944551048157237506575195079234352920815401770490093607075047345969860736146633427172848509344376818912535256726223959846592529550555699041409906826717084916218646082241832910480801401502958449600677428848676910595007182238810538515231759513454053043278947091899325991063643497231957129990667003441889649548811721856571210248277022038298957502349523798168083235138219016707981292794370208875427923147219058168473971014294647433493517870272301036571229269458041512130190661748090299045462622986002507805001707198963104726602073464986148805113721920079165932371711275694854752295734469695376562602161771755349023308085578972903817387773966806195046310311601891311500531821564793896336171231459356832986088385751050326056707918434124254725048936359108134692079813772361679599598430941633499447291703884544494015943125981389405223680260484399345803408427607875730244051929279907484203583847897154033861245616317521989056179635673127580959248213674442227183554214333512481238515408511057110127728394860777257444743756452871327212543742800920642246130024767810173124522189685511608748065040422321928694877510146637432457120882180474593107621564193790272091399974191603456932969850009435576364747950341609490950504516503620190970398963817415224978980782359009790268457954233104835313326335183001886864693194501777453401527824213438672284793381076106790705196394647415902254823636257008876608467983347981194306619858297938381250914298555573286893930818121841422650321218712365617888381374174436737156427579066275806792012745618909346823764769070838041301811700612692364149067341267599747727643777436338509144728762092342611693680401511212960328230023891432309260632158854632410852852624172141680732169009074908567464155807182956073685887135902654030244633684588104362230614035488984986091321831375276886596266328865030036540688186230299832257952655811362692807652126876512214117260216130965816066774417887927575680314254354478958813781085505898710060901739207140657249080854998920542126262793128807855017293117360346184310814508168774561507382136575280349098742009115267510217750530521466299421454998294195502830150398218792687093995455213175594149931222111737285505853637504632904022160081356552980564394994476030555489243326345820122680775541851218991619532312047349215801644839906198833402517050277552689709412409580221641872719343254811824820252825967140081886663729100122969983230388237165181834602713744842851106832659450086746138623793645006362521175295422114309582728992589591512200900923232419220822634489562607745700828164661983489445628989138958327446327631424639187371243369084510262258631356570240307652114347920811211963091283950792349721242186184295539265512335414312773218316266036332040054193510006332790698980955343832166447623552551925286571862025537890452152770429507083557088536002729737625681151212709008304810397934724575623100843855478763862326032900284345590239640270258688972847681305115539606590148095384615279757585308513141117508649495818949876928324818435403992359150340001879157050626527721598510719399373923702182547447418987349088286619933652403601096147225791400869357709500781776089694606318249021452940702740374954722247480876358301622162172955921408860070089719048454122022363909230703417923487692408330023712001408049793278321821847619154370758907063256657884892374736546297577786190541590949541283224262812565144171357580985475707740678300777562721761755432709130229970246863401929712022158058944621165596495355707327295983964811093172780703293122724759084500788318440687095389228762389728284254009176530807332308445435582524627864602105780787168154445745002248109312471201217029566185983048966622617771592741321508910678411691153790280196815315165055121619562265525755794864772739744215660209907463564218836893379313780555699478197452879073808499024171202816439240487396454755620118649576598768991648124831967604071209259274377118984710275564420465096821525799801625197162243445906823815250551398436388749191335863486452894575701363689370119866021615181622195748722960752916906785638623232670827338049408316582643688907748401643490002207997137614146275689113964705265902596536753165674717444517705753974640333460709020308169156078972135626420442470572064878464219313242393369683948230258628006747505151192631533252911876615530919716717139904065339180856392742792135961174054290820160577348944151890667030823391174986414922546881609777375197987740081966433702362736214787195192836155045780044169131445798355799233325234027202910022727313580987520356755673055521382755863815800130688143573437970139108983271976807234493878781582482202717824280110353911288175342347565061053964882369432667148730296630992282678965656775299214623819246656671064014079999755938655678686848168287578101887553126510845429012077495650126209595719176633418974872534362392632142891679599993167251121742831792726801961132319941207774166703331806388151537726052541017262236518610760572782753904722088249986862679395563089928853945297254196842461911256005376920018027882070175550056481994503037663907662557164007891936984991020358930044562129459954617902047076870043086388529938298041442544408692939061413776511827872176299254822416594411564500794583352051903748448304035617592383600522303259652179053716817338184672594182680339857109216984585098900792803163924377394759064734826269464788399014972405313938146360277413600185813327886098238355164928638587726573079699631554504627183223895828479541342278389988286964876119281350348757089170595272344788334990266024992534572571735951272607168256646670568239954380588585946275663482463904592720505456063255700405577491892904315980789533239383536142795200697821601357437189234063999921863280603095114847527518868102602058974150202616416674411291999771438498635305192694900931801244171785062830272848195115067841321401036377093603626591774980637202789465719256486805023229430635402253944418198191267896852744411966544420023436523123542550290228903793837622606142551781956215275558862774185392364534263363793646986572256552256611090647483789322024599201353192767133942259419910450209484859694165897231188065746141959519168089221806799853480673940277721745979053372305080268783857831792548533861101105314999787899876562066795756678195188667676969390988876022997440109384473407845360493554523299760357610525145697956236035937746466009915170117251404363665621550657009196374639871231463019607121517142471041853365452435376598750325799798203984582102953119691897559506654189796371757982612063763487265868702622991288593044213150185781817209759109733926035651764596240394954761653696042457317724304660196773887641781188218091108551999398917928917361387805842327648763222664865818231420352870015704096010501976238112086211590880404334183479995950682087743414523122015218078497335560775086511311219046612995918277564054737041064001138837371243937943322029991896606160932198328263754267553528559882567007542256306907859244258791473503075665408835777992887618938094639403822260913523361527898846938697709950595891587121113860193754672909029323694973375300920362604082183992961333998494720851452857864760216184152644404537815949679654762456997280676593860060149209528374571949133378023382472939584809401668096102174391030257482922617604776495607856663081536940353705904088070373793452003729647050227427519528289383535735089108480741636540176914574055611591640653366982598901094881861687596583398755202331222294832767963394972632463430178259497258065682270606463795252784891016971917776452509145060802510656467857411459871930423277275677339676001647573866231698073477907959900256752482085702584122979455736445350181131935952729016618047625741931754251405755151858252566158411365563800106002213792656883962981924323978499316644110230899016951126273757198393915048791105104376102101133245051667560717110368586166122453056127442362164476998276944448595407974426715827812517733049459451538929347515146876345227144111419953470484495229904734651160121614103276241327928534640676331115535274179115992479399847199213515688976461122567233444925964036977780727259163820916413917650071326793137550608707719428003454802893114018891409082106477724015483355130214652999667841761903864525325212005603608241369171884881056733475253797989124344467809636374001672856201254604091768923463442221001758013334461930867692672607802956470426565399621874405073561645207887623590264612795128950560720541871719604864711895835792883562230491133741935724077994614294290211224573881128531360957601217226951091294780803385391874619308891182732513546805168437614882390423702846995054722103944348340799265238155512970166647779276432370500095204029458843217069583996873287882476543608766511449887337542156232570557039113515772930873443660809721047019357802874240906509649272432831218103266321239986745782854015557019415208087195711440229762409699847262456054123645279062730477424518455351710526550458230489228821277928071560609552244025248746803418332089899938202750590213374079832479505887176104041239900144420112104116436734041625079303327380652427338628225078334597506608005095797972404272927946248255496429093435149910430801577956703456532040795115342970859285594046235211145417478230533309117180756151259867474421442245549175239905117074311402764411298027652733684483207800358963774267332848222613823725882007790722041374060801830368456283005692594518966259483466315696313139487565444895885252509403557766405928769560261456342959708712833413816028432436208225575506141453212077782325989011906244769881308050062976479215320662477895950323491802524835109325913777384519482850767478085567745774346507808589688143894281185309542157754883701422781580539332017964414756836890336300653888798218116611450316884540330139231244307966039087517312970081337125398208850334219857066749271825001952255785201770450757857605511906147604258652681851297196699054924194804125857613657399589162161775776856978384053314674224562575772562358707600445501224964887999646224978191889774060975352874628531182987453115361621045706114868762111287021543398711718787270257356135634353535213281571770935424928207709305869284486598274436932659791745497044017037130177292039930917280820941109908029729199719983996807260157809192137892125695681908399440016576446821725579597488041164749114467950952713039739497183683596099751518926386918684590880920119575588796759717548736865184648487747246209138428130452492103886015112764411696631326428743988274306126476455084419365954118866305707037054226494325947896403561790421754093654247688471543139302843289352188880282738327400078374058692127863323778775887590148416033803456496325844232695292813603269517991048724290124216035423255610890020312744203795450792090313101319102255951517063661649695300874432774464745472480078558853088652934697934582107278218373910302878491572610371485906849129981336823058487502622213314587792460226272543873712135612066546729073787414426897987110555621796508045827185889663229614400831803501714820384208395154642439006734355675218214680855974503392727216958221509767375674037284153124088313166961712964838716905885579484149526574697089473625832812045738077073893841727243820859776820226049673698655224964336260976892283450206371951555467009305291920507394193878427755543254825872907882327616438713132339728909724990612454169337376324118676578577618627794246790398207629618034777486674674602156981719044683156492055358216701652459693056220313965538393006390540048068671310086637036736459154690341897556696352024077087203897592475066289460933903278147056722514893278040865511060254146383023044789957970144837069536199468677090097406724613284676895259799466492645924707754751658400500120638153562530966375861457353249068299848087466931407019663635358267146634024685030549826966091511020030294798687790413140382316402938570989614496343013318894974597600707092263275831438236618661816500312841774579104326051239621248016863475910822920631883208429771546812849573065946374170641790643975203038967821566679292745592095098203642291362727261169926057799136381093704651741965303649205381299524178767285550530180283123090557839728637782539978215862342798456090046250597347988345864373940991312105668669985622276293622098109405294039082943864100674774918359787289827678956570569301871619012273164550042761756807283636577476659674919561325600298833130006230519458426060860343024381665907256869710172624356712911572212629350815679840507186645538534196498327439916145090395491589135645961595945535438211064786929514808389294556607291189825773419266554721150728464668432770467222874390333510839407328640198211681440372829823798033172392318115239046948086895922339465577717475477833194427870364304747357480782862034252147459095424282553542559623493504236653096972315199435277454494826016386678250947815076604998891326403093000857639381809022728071481278716916032394011502596239917304281925163972932679335102187029298989884302856243386846326269619421352853503883156738236377810362458497315412329958083042881556205532254975629749260166799007559671909230215616693234866480849247827333065517841895344312083677747130965896730032066621527076043563844420771354855311802588322622925473990015210936964630445365919643930830709451319154837472298068051668604480989606178688168793508248775166557268239311469879978737388516438248326642952612983415399153683034477551447606458519523970936282919489840513409807533009111040173362592704449245180338536926281243494383898472343800291273468278909666002552562178591890679731751330524658222654474116789990599752266103007611209205549691863032476144866550346833613844786587739240101782485386977014183292794494974497142772172256137393752736683035784155304871052544059448700908174047620301935693553872900390689981334267855932148376148265818841944252846487319648479076479565270998653436150396331342447719469021505363472458657233203350199689169043934274247822121139287258320071584561279922726792183373064783904293882218750829367637306833519622428102726276839691373927509813324075052398245952148946019131282494582483084739096492031364400270420055713395558664366203579232401283672948859965047795069884853486915625423553522292589084481499070088775961082655515154870999520747038723289908117208402908636659254367396535029934936701709709549192193957738304171955860055489028373069698080065250493270147781763813441641872123400132124258813294899950812985420450109009842016231616272327354597179683386509342561852823730214462537709214836913869170442116629674696849906298434922401947851811495190032653554086292500115781033569720238493524558106954167724795256328814184984977541743112547028659515456861522563544683527047509215524463780841184295516279731114780561112819648578956099435349543121338098746992864872106166610607569048108534210417692778090042057331494463985940590108750639613466438451481112876888144664397853013577486076691225777729210130276865012651917335918570892392170443062668111284229556916919819147529364216526098923016253804646700981555728704241514669122410206590344358101049750986748186585604638741742840731307767475156835825443084558784436635110339863100584071074890451188229821194875074768479474559875705337616329952573561949799324345546462290821557642808673410877313821838489870098557075993537314380333623590433239243843336146924038587750744573007409598264595659581165030614992508372379188599515738619903734270124117594323611482082368523387608457136665560216164659773050896925297200893426485403695149048009541360410218697755525549935677222615429281748631499449771729523429869571469401478224851288997102454381175647988957608085502794811784297623746508457879063589253453674582420008276779875796436252117918235939033303947229627096097437932776032922472715737594423162187747624864794682794511187539685583119203416109361327196560982734701374524454508052474293747603940841471069386051789544378496984015501334350955113990666035354871751374201350922480051974542172551462203751361779668921625653069772947870748632105805647212516174913372270773449738366260006110976568745683706602853659456032174992561558835235199371355678079668190912890076777145035684804116351544714435651259766967843584291964548259298767742401293654289051801750077293535812494300778417919058629792380152015917891161865100633465933526883280034249978840532098817005584711090694674801764956315926906393584963306237459756958917667497253968261484299837663554405498072000765492245662974963270649966935828808427860710834862211769896598872919582468941163956270583898053001592992729120852506612609622141229400089474489832026346213794102135702491697715485602027647806863153121056619833916050497597280892736290441113666838036659922376247732020998593286226420530279461924469851345076804898684761388433201956345680622702584942456484625401072559651520343328930509334437178537699767078970333028738496524076088671215086038518013254050679711972570819960152669055658803054227422473428151391387934744141009091950423981695367131197880194670657163790596281715973020037385621387263470200852559746354311408365463025576832137435607853014613926180257000053048715760999402645298222173462677373055432962070709572331383440260028479636172379148989280518630946044494941242230223936654694598140234697008133970613895015463066853683525481424400847003889356187960195926864516656376206403949671974925697885528622937353689641614135395003149374462280744444381157463247456960200026694451301977710457204246616174548983908929391339434332930850529600621487844088221115477056351368668954009975741733384101599718306602724473432660080878248240034337983246303341179979364723722748067696072738417207716885620888249229180878752524032213340341406359558251796972605772514457637974851517178445062264109326733773054097549518492369434800934629486744346063169905810047039464696441057906505197467731019081654552064937873421326679107120796286938572654386039709834383833355102951370933043789557624634523612850415509815653518505987589353318212222807658631612268838862512947532043302547664485438273186924107525654884694323671471347561220612318656053608231990662031191128818613204280573270549672433093890859014948832186186426955952480453181338151786939213466909189816037741698450723936815354015500206841959998766481936694792620654784382870545273019003664077630408542769106190656558583123121530565783398407673414514411140703820401793397472730933745583766339861830979981928926471960516559179170653602900630827185530455737976274150512134101529274762664345137190990345370596017940721537617323984888408593003227754203953374351050663521421619879502656395495155319042896730385694800855483872065563813056982046696126529313881817864724046316249533656134991189870269120546932530008894915580726094948687294787201213143104651146646187010111040487615658678363310684708399936744581636347782012023715022412365489355430543659246751826782690464789027711680542692653694361522822957569003606853695279641389444784668913776026035709195180769766102900803077523954830892488336899555026464193729139533539281008301567073853844065010037997233926737567546300840707498078939041266122188291786538067453371171551086768835355730541345810392019476851026986210620626130444326076928698949513758218930040787837559931132181048874247136680723199110505561526198889873341302496957115649878847247295842876193430250560498175422635335109389125962980110562036738855684558196383209484844499276469281347034852495545161312592719452202752813615748240874171104450207061354076981611294698257968450143333927284725060947133351206794792755638681350503233305242221124466253799372234549360633483930280852914749378477879787950408364258209974357039583760496504423887014045949138110734743457129055695693445175637889852881960528823266010598088013889653706610387587461373684078498009688331817475145245169564423024444880676199138658971824015344287568140455234138689830158085746281501770064127785369370624497742561359078517886950873973207832290976055199326983685149813478562858187728453769560240423493093592398974376386495413617069782036907427979237329794146419523559165727329644757170961038717976281533962010454232620199192113812285127414533926937556704571276607037306501080341487421032700834600697630456430336000518035024861083993532631337930088461154730825011439947386082401347697838647243481611492565930738552783281885140315542849353717253776122050833119048281909654711252968485573189901917055479319399991232906191813455108653323238300746179327621777626007508540500451057053499433356460180565096787254977412021140781705451831943669128282644684517801074815811984727209631238549961490509511560033794763886822037004981431459201438956555311923396136163193518779413706350284901655379411370228146186895910499324342342760049129809476999211631664871778051497803198728534840443082479735890311976871647744299689243914812474488027142939755608716890820993731724182121228232997556999021300840785360885345352739759415645943080937919896209732338189659379673763856006620127413066360751148316885221265389127329033804078864378984596028431036340440854309332276048610471511661342930299907883712207359434429642592570027183717859964261294317086678871343656684442737534736135882448252832919928454044194779311738881794664152745418779637578453222027890814530267761585420247508377960907956392232658163630110031550293635410177836680649095937670059112765193469154290175068673103564121086490277337235886232319271885509940218026875564550995687244741020390338217815451332412900599654655917341460386363708207216308085479992652610555778950282991046369690474670587397675404278038791997860248669237247755972500473303591748670961572326230498746847043259116044941386841911895920367033913104395512967527454007507169471699994238052957914428076701532930381424925432697580433324280132757830839214078291753531390256858661460991419490083596893579478623039244201276954208724263266494751185391650623996339885451214735187427978741198631269643883898200834710892505295815010614315094503415392690789417400918650971784349479173613190678739303519584864246383730213186094378295257427811337812024970829897019215388951161442539788539281353290797792730712960189910717365598493518826942189140334265543282357111254765690676641069787536658014469048334069779948782446608512782813904850321239828378498455915065235819636947980554034130478964964303237700966855272561305565012094509011424569552005236407097672102901910462060858376572911778837333874933600403187627136318548802230517797213254177998607894372309571882619220747172481591744310688965138400808044822712979754661736860075590077617370273795695039475117011789924297373328472706732975809951155773433848467814088743882324779197384721927650107686850322134307764752616299440554885564403109196502543916117137397539688072277636881597049557182201157182166237942836614539812591534942321163807337961237422481574661034117214215205945896155735607611867850723414452286055064271677062441161861153490899571007944998865327531858123145727468440128086523475847522623738840922681741217748406365828955619532469167994924501376215577131761957371615734185133098046348807748614716583456212592144522235478291058793392050662344180376836258390734737950665395072102273979898463104886270750131752731731648084447787080573425051274531784825773624512984480718179050191807213983199015492740414836223361614703213822946218075068659786187067147482235186669547479772835567706887253064302546444303851804414294851200994675936831556913229358952669581910088646110016097990556617572266514540347696884595968857598937461757151309125979122164450899733707184612506421220018728272824029337540266825802799273030068055387701416057813623939825715488607442497016549955230984581871984487188098530673220220949325653670259708126369366055713173361670357661546986653801391697752305350023472395673086711555592304282107816338757152963395723317806752589087864747155494853084574352220342867949407715101571665993075370104959473758118971437092469436251682287173230000294857664124758653708096739537197263387667446444065863313965689667029760358206830246829483450910925812841406196494235936140460418032834903338796347205356207417197902022179288090759382477931578300354694452075418157210633052161206736091364867568481632154781566561048769637209159140505315109601961947009594554216727452078190328487595683617563287029611898438994988410203049693746603845576308948797479695687370574899977010026303777769308498467962333308395880219976717644293737975074412848414571330659103175967724284471486533491287764390220934529608209482254764923673700808034232427856627011021869342214247809424261936262144375071363485986769841206550075078720346778983688264922170500526016251178344249911883602289236452897578933363682217246066947866531892629571176110860732264003315544766143463814550447833849625189547756232049248081074803334623099040871055335101034907328726386552961199465455142296781470433932789105010509144947927396207496044463705037273850330163722292817759624206935979653218427127051770776526800135317425444694729082188247010058947154283238146268676873701825572492393043094652464315057443350377707074830139471187920023476461221843179608439341205330298186240391590255334980415661123074481475620711668560669809751946712447955195226348067870583397594121635776866360794797006754154209784651007592971645442957266607290517834795187970219919882728147546888914875675459477776311346261928917322227891172628334400611357116388290219469383245721887469937255209027129775082991623772645804829870560110805514828109336296827099584025997852480789035932930415732505391248142794267631483316582017853832617767815234935909584831368893258093791488789107595444010570731637778103849117581031657081261334158010001681437664175809951230385167292519216015711395984557679289501751644948392708154617435930084173321416493145430078299813059950046818574457365906071266026125880386319689862360764465939745077338935108101149233788074758816691038063651586433897492055324504459614067566351057899386084120624158559361312033361519739558064745033044212285431650514742117100889825724644597276393148916576208742608681086189205497715888431525456063191180745688272995274792046054045554828232805985403209827710097460261927025093498247907243024774202518201226226048126197120979237157195575177456350087428288426734994184997829137065985100921741370838580194253868439548963259212861101418406712278281925411328420239391576867093753554987182471260850269489373374064871685080090635276164345114269256695198669487669395290113677869481753757656886840975173262620927481232654793439999240000532420476759174198161133669418880700751179795958644135936036151950160550227233909906954238105242190864255983969144513625503143045966258708156900353574067574418983268007070690170851136489731097653532286954912146400933201355433946059235279751937050625789182183717558011769956809613103408600648572527136779007267461634227754355655728535768139139663474968589810338488489653398975401502463914594016624263090970510222963350540402395974898241915732929733774030173304377725413837746252005511150918155795058091615397496557615779022615569960628970461415380682192036135302892567884121291527939216182395562231089512812278771467350143315075124110811765504499016550675869975442368034701353022483001670497843467785239982000109505521792129985530247542206446199157109539561285484029975033127073698064916814978045765093407654904056251430103800741169815848404018490694560032693027058029026082476517026331470120962778425310709699992566329702618004031415157247747771313804029728194145367177102546790210453397766390966231621791758203527860201857741516113536051263503947991016096333769117679897348096069150222603666348331763048422490906859852587771511143968393833087967116529693485151927905227164591840766164783011920259951636616807194485562765009536273170299755072851659058873584379968486089795659523001448194070918590084014883881802318116913854026408495446147021038425476450001749991284289474285753168379861071090357979543593073770186378249116987546117432625831857642326062059513122624336969556084766520352057837678369188500002529136388286105818970972587519126332451859153731499751084212806723678386879613670210801044303518475872838734256320714777764413869421919633908589395716161476489714810923124626189533549468500990831769293382112197116987267812047379526198080127039468740498554563909668006169528097848501345711410190662483598439236164098769849697895647325307703857853232798552262446540569792875615387072682219713428081068640296475934281463405580692074636550271471502025718200432551311827203521840488428452907086999807205185159530836397388575993892341918064628833265721673605510928473418715386346709811098414921688300254520734931446094927437875962873557637160214741412740043031525221359859214486699029868590497948667402367084125489372641390487344930177584103881684289081702262088913000673452336262119413246860596880919804646830389326375068381879351762483956044400757446158892075264563368888845513885916080960547628595460905883193270047766234607312320809640144741671528460971699604287371242396319641080888490109137202192633510009880508966460439556556852532251218741955593149611136296268198221834400858541448629652836804416964423749059113173093878676608573420918915307346198609638311577885827551696758945829354135119646786787981062242847142627178289016983428192217874800360337588969062244947986059112987525560945405749978311895292002565910603218413484672055532219063336709571631009389175613305066456833023690016848325987955934185650740846906478579814742649094126157732579936688489835801414610714884304274184037478849789810543989910835949807696323018953228737843854230690116587014922051713278025867761885316906841612187235025170913498100452024956962438856798966851946770675197720513864856740858584869414043646772551267775380756283622767680535181294642591499534544300241441180723334599310366124111470151949543448437690060066292485013388293815281022709739101697350116834052585506356880429226751348173756839805334936328552758905373645614897048505904359809017786924373068650724293161373155559886866117215644689137769178267557398290223266130424470898862533861955655910958059003697028931470419107799886260771577399043816157875177009860272336199783490578210073957892356333896418482664097917109005206615338000163701577078463897392025560216486092138556287767878116373616771418715133146748608551317781454691641605683610885689927682622455094663844852811442149870914562732018353292665824985443665597719636429577137953122184817378344528958967807859886218797425656216855864073507603496176767950092170107848381865423443615406915760906445324621007713635544233535755719575825664875278333229216111702788264986646659946275345914443773175611735017946889750140442077889803175675565067731622347893032152323514555814039831554295492198793856037587558871052460524524247820291335426909001427238383360046909133305614972792190334530742138459049089901295426619887368375435416533424450959969226455845593228086819515635389204829977593225098609708137891898735606399142808164407169203610148424337491516867363245277057912436841198760835565650217182730956964663596416428044848024023395407343454076048406985093468322930478000734242296961110410121155108619904262936608909591777494137663726503550109052829998327202166076622701639507568439544182962832696521283059821424858982651039367772371071051070761093836666858829337230143215531928782677195135765669704852142971247368750392705970912614570086076845290195548859886552880936588005807716494610905096892476089857543072426143930758920794928056850276997113921358103305566245252550971176252577988627343886635930937283103557342187316189553869435752144127277498734186366810498855699801346944097097033999220132220922704407310855892860456020554801058876077775013916931295285862061972781824683754212967218253495404337620364439541516953259284597720896137200560615791942681471793515091921995012967572065398031316990492126677122736058322416325457455369063324621544995202567194653648827071664873070318468774727856544277295051446657225204306192532894793271137142581444680083504193451372237144387647013358832132506120851393953701596895551129916883621917168796318342077895895408267535279939964075672988462048723402891821773658894311869610844736377764590768207590832269611618528193361311078794073296024435283444364625172903837388331979190890591380385124788382005129933552045769033058333791197140488210837537032132164581961951312333677507466730819342239899697931824832379758776702980986949688006976485787322585432626451253550504779617035048754710699280419100558132085803644408323889513957596992761428926144492843640064097589635890548627141243214863371369311114806559231772207268497271309936403041735728382754521098180174076768268079419448874843386448080386377323227332857106962207828122070268907369281530856469819369838913381362352171779801249653640799388139876570249712653259649678797618209249620577586546270299245117158149351245703276811301315423672868589216180035690837227021696264123955431629146716285680910602639250094410894017921701086944537325802976441621742643371328483559011543025481113101872492465835382693663968300406588988421409332023778972502912032634163403962232961385291104320911386166470463543140562698256769749319141156676758696714328220219190430438465251754633542900982122643956957405948968149411648057333283822446615673508321471808644022029469972287423244464484158605464070278973588695549879370368093527907216294286619499097395679499379585917268822064459520060872480874222410675380184215935012994745553197401728416209378964218062540107708520317795943414756623434168829491129098789317016907086538655952273725991677110708975077508438379022841995088174055354302139938885135399300559724393816517056451733593889176228209104037141462919031286447044503375637875893131942750825032857469980781867560995545730722348198638342148962719009377649399832344860726944655351753788905286058349852504471490307422664574156766827849194415806124908091357513992787564024599099264546884558856270901168011777018531857368088199133315793982154440228764875009252157369772159391785877752096295075929967416404158887355280224740296572686963144363555502955874315327048807157573609183464304275430174022579877831161158670100891146185262591160765225077264250961813487417843085194347114447734760389912629014137353392256914584594528833768508005651905181495322370613602034079872035500571286132152303674332553946374838196103094403705575685340339870603028683303224919817844759789073231791081389882035102704594438355279779453754115000310135144509755501137683479260052204486243394747781645752697381626125382188443765530469874220622553411964294947866249500838102866033625322922708454268800556418829230107650044593245304941261146843077848414092663216603990931757581652287579277571233744590087500245475847794072774876648659981722449411736483521073450683935601408968141728681353050295539430336580802832709977763448553352933985569242757500832338242659770934330711664159534752819549215202502248377247358317178333500124077205693075604264933517335599083839862086112120357447606792736292761162886097650431524024731331934459591732845567571045068950209006083268134681028239374497231233445456899058956023440138434790022351324788776320111916298055730616854047839955557367733879312798174866850972445743721711851044897357381619002143359498043552739967328915851088504550880576477030212472969305143642202116519438537679580900278681248728583786178499879959413081571276344281006690860457629732519040287348217285938446897866213707939005043076812970531001506713302994007612257460313153827295641133651415403398602960252872103373414347553854086448475580728757566673842486177042220138400383107396761078727362217541757910432585976186848815714937778069432391814164376091868322892124431372212353769506016421723965360797084467561697288938399767406302267180843762699518212958617179507173838176913811915624708554801961299659959462966550758367118817342433043441603807066638779145941558165945913796808021799667246304359823150272105131369665570316223242168491887817995998194223070887077502061538583087339419562961347278314156620805640621375596967171787756765189517854808055320615183120230171287255804794270394260301924825395088617839973637996925286888356093271004038041963973593404273190273433572176767250045685013582059710343540324241522020327410438866908340849715752047167879579059383314809857553349591441905483752586883562744168664292993752660376740867406561909716518763949713763661566803268216326468067888119774235626374043378059739880483919151922976497899386447548120426901285857541845471824203733315695617383363713500074360625257010640213052822785539325749152994540465679480228170148524187669518923866187252707717115848170702387546878987829255452258346598436274631352310581529752169899710538521481751066696543280216569010656263710921868789146990062186295694316076401808686280754160245315091582152180248031336498399758754001185947147483819256864755186639503747091921367405928086994258179310226931613638263208113477779389785673016051867323223613147088187667393464098349359964331359044237702644982093229407988715972745586887351302342024813027536152836350242111156457984509599567020522288698096194152870011781225494153297654166152749548308569775471585787616893009142220057650294877309177041334006185322806761770244837516533073583677528943111800823564284347201351867634956867498780258131685031805886160648827070530866180109089929665231244146604918217986952840100889176229569784489145177962641250607713374820894854889917672210051336826851007776435329860662419866257331251594771841213931482705579569613219052882419201287213514662285972497038313620048887195866547608237301662700856583702068698873959708535960367463646007959973297644374689518459408054407818020045791546519320544924327344036129472270409882458978983428308240841195597746489369362397667264123858085331303133016236771234258157442750200921787926005983940047250400118762672934597567727122269058600039892195001399220386988495259668803200778984961927681138657366919045150031849597595503426294679104486927529547023660035464048339890944989665145242968740844557038792087432190325510449722087491287228336618687443856254530804752981649820707986012346642598720656849054085343059211931959989793509235275244627538236740201517763344922701128090140898315859675859296041460290294946260041791309241989011560652053250885782245162052507217307350855657130350088417663037103686193749848890857847648475155881286673853010972434280361437216275913714448281906271102055631241306986012477754644192692575920177029677439385046673244114797382704987973965246168920428219648954741546796683626160765681733401484788332459670050338547123861737101278901308420107500674428539377005738365208112833298950970932130287757107081099561200341626926720578036790124155758838612714279113869720438167561771698054988345752664505691688827447005733179453062695351643820734807345882568805152071195262860597265956847035642997054359636519348357410986700574603239755377773976289257943887559504995190376802695535738130455544763783886091622193028760058291662218543591234584105426332225726353157607677427135275233259761565031782577384332570227008864243815228044931278877555654448238215079650057817286541404980535753601760289324491383260336210477568804633083098686984409556781107571016640648655691964383803083928063641353142715137565909456131039724696955811245356290605123068864019951737432404359068819993484682674265508775014733484127952344716486363924691191155085084734850122578842220559638614732553474430971523332385810445761082749312627005060803394941153424663415329905829958129103854097606845692836366061495190417843100203528207803142443543696967121809014774006280366499044924999040719689434688990404002776328916553371576581539454538333483449078315386445829483003358863620613176978334833249001565625661735162686151899725128825904085526552586279151084879801000649768436889172684491563854276845359230941459539627048077019299046192890824840976010658342366096722855345669391803875342017868657207611929335134512833491621956353806872829377748858024179453001407602615251770156556522840993294694597573301024208107264035515452111833582433122069717909651786006343007229247378252155712842853459781203006807186236227772338160504661788787663243920090999066979170892425034589197932316564562903414084588421756218436446760729577108827270817134357028219470767985461941182634952572201566520428599970575979960096064695427539194179048039830387387708473195500994220448157137712174121593293537934042766045920328971070841317346300870518643728496383536995112789778539364578589232041813903781913303083305799202880637189386424649124337982730288123775412623799292346305329850868137627399721029462947443767533551768623393981667259012112065485869659569988796302428274824278378823782135307924357440986648798513957552710003809158418122106354113562495613452924009735458744657731725007245028195834678338406016795043869533836487411372551702692678978706949045293075522325173958109249277434033070159266330044061438811995771098138449908175336297557068308403921365690582830860191647531612408545951673108045896852758738816794312400885755573317874879887160924201108922636501376927462768080520241348270792493137990966403170882003991433816487222429330764942644784640304040860217539132160042613539543199747655304256763606276512194176336902320213083776449357213357511864957898287437742738580618122962559192678037018609691178259718683906104280841154560736843904501431182584124941169775313313636725586998140958585851528789773605267142086572465382204132136075598458859308679916831048471645827716058964188393016601757882813918145034964128547991084007802440849051824073294091929126513850969033535069165921161011867162942380721916366822287713750823900098495213555157080931602826935559409941273663258237674055682627211711438993984914487553799899004386293205017823941163034831924413207591508424029907444984828602970497349528554548410746865245853803517000838018527610305579560890267006967800195987739519663407224728216795393806590505164721002976894745839825168395778251751103263705056856880194847461501386227677246170778699666714617601626098219965567868999364902501452565555452854289544201850662320550314616537998752511517059036701029790896049257888410343007737242174813590329617562082459266959560105681986336422954350593206411844455807634063103126995071165921711940317517173093479943963499182124636246565069350444075586049059636199056953754909562841543737165601484950078956515580782355832378694164343304334466918878285547563710201409537039856866865626493902255789985344522676499938035217060049078250921586909284187213923946464848851650506180530294043574597446499574219138726433111552765460212994917001910157126040963069980635916207024474973127448549523172583336770203448664308369905386314926947218002120373940100291271591694111429906066354354582837896884012675720300426069356185662428318177899357301836757870318254877596265753888084465471715824132419202641982627044488821539109654959624462852253662683123220524198018655594036098866108097877113819505195053955548150350895399223682442734462102663857250211078516062694218084020388340012224182036630902410418695243983039595829652033928121660179689379193586753352291249796464212826504398789037277495562830009556861807653002237326255223194180088212643654762695109509836585280936147033636000929245316257060558202814020067121475599466324136880996787488255288084126631667762728712218419647891754990063249313026023385962503614546214710456951318852528057255339929238972018697615453395468589945197636426145327204607592340196577260347837128591268108731501312927122738410231462190916239253150513635081430160891905146726754818556990823505885208893896372204415934728129012095322733092122313666366573378012439261141911297474625724463624252540959598627288879821961156056237307711587165534467047305189155027990121123084398522957072993060792145943875973770394772733003024765106535624181199120767231096794706110427083242074349191790122378992588818060096514132875273085357509806739240151649515218436323712044827138095747366448432863738062804914363721515304355823254655113247075456825730633355252637375758978130364986270522302307700285666511025691528540842993422287766073417365604359613531424151356345417131754015282444089413930954540639866317105933816977588161426703181785653711254918495702717911722885557082278614316598041210741362617842556042258775844254196568282137685989674471658345216642481033192371713757211786888563920600372404470339474868394739605384640814795169953446512361338630963344915376322421392904632231902333760089012580593948612033244656437300116102262928053787168137100416802181362004460154596579856715192308352042619562656584211722606784086862597782553459444856422528424658891468656588098868711377811671645149225728918715436778363354005862409915591828809500445168316594979176546554322683879397107367016297796023889621077341653877867565972421533660583317534540429138899209370629375077651513224560592456737849177307135848687860250952521200727843999617516095291223286235595492041975180409253202673187851824310866869419150669334164576947952452718644295977856378194959800321485728917780885821757441394638495264395498211726841948844274421777519514350638662128450639187190312983972473797503017059654395151330045142648614891628379513943187014053293478609821722747648114801932387220165768860189745772432359193350075714851379293712609256689395282013049776583629830283830764971826277648996678377452721126843014442672043182326401984778879762596117265528789762708459707568367882764422592538447250692678305798395739424843280198455789582818739999146411574113121412506021332412392533872118037448445410679507876626884475056728524330478150236505082236797014089404206670514091249658376754816978252006922316956953129799098470661158543787197778039001091787270337319548684875869177062327721930176446566685429684232569526640554172469449178418248177630126576118431872270293402141098783324206340191109962686434057685044372392466193884802308785676770919240269587879748581780910105092599390871651831988009672762805843944062841036819834213645252927031427523596317787363581145201799318609582973568171500421127693782355400744427532939976319889018465068031618629799290084657521311988794202578332269360874035507962040326117923229871320289888917100504767038879150753249462634163370887333578169868918465531855354471311999171763757112532001277061133840408855355543004311040332538985575126945089387364730844497359047842489118623316288524226268959735864237931080946373763990189947738664871830127712537632097312918227598017612105348421691548289170089584455179560224467376513322068636409110098513896272205636793762431490992576821719302450842422695478433804506627817943376328093740876521932578077654158187810646568607607875751797069574172759088288773083595671971190794281068935592143767786248720544846543130735863898038100399086814076749557714460132427605357030932253303804242474433972357872035457836619258863138306042984768603516211549059740347992275543890809033094603801118925257303566462050260805235529866893271241233343395320934183627818965744722765629286495897049296415477972394228831518366175438680515528279941700312213392472921202038997909867044517486455633534225279669383668847088256199815876692237942405434475699612890887337754770560518183562886440224854255483074223877250889677037567728978629596879172583161510508497843198158291927093327884205676546771453685526464983914528716432401279979368354767185433635730554549600014528975318236350091457841886402039011054607952419087802830699220940124571739310790619803284756113201549398022100919122219996862741908842909545524640592408845848664621718669255206745014314794837541984090110954337650831812071387909192344580375986782456915285514557878125331548067072532701381652752285314504942826894954919860924928536058075921084642010959779451841152307107880072436335762708019849318405848829138257568325681251490316692994898506695004593846263365367441283543011888453815719180520860059900426823059547777349924614612506596651051422250972946501151239696843803865557349638353983848658287768609729560189171499078172331437818885847087646394976251856801029741483411176783375951095877420654511524514488955328295323128044738012173101703726702938410021351623427241794846110630684731581391001584046437693183896664067865040406208259259772363547231822126207535670836454251121205846603247519556724133642005894882007032211494359407950614895788421214722693430078008237204564311245329418900618650012611650668781548079624484971829526361843971973731288148163176374739011915068943828111924231695559611053312267341188725312226200798763496959478809011864677408987829218042721023986202700925803649535490658722829435122400901063669264092878370341064950780872014476055890010234067070135464989125989087824656077550631965937479505453239533919073989401525857451889047430133946239089686756234896701265726687895474000716637772609218908664511684468628634861046685371520637971168935827840083590558993777526657690549769058092409064449142874548784992388418929566626860124957487969526173167228528168836779255123546193866482706411218367004568744783417924625988000779468501398989257924533109994859870660544144199634303488143794991606518175084342524471226011979098050989125835513768030608069538244423208912708381127127405019094385995299209306640466597914180563077382178404954381772064275548339797229243174094236684901901174778440965734160151678692959315828929844214132572297487387875176989098607818208116067885854206925740709934037351803716400601147729836760049458530395797615037001771287226311643632478644758753737142151267346988096221626918898787888948501653478641405889307003650224912556140338864249073976269567811954992888968061198359884754049353691963550521782560858604043887578672089414722789736542381233167727541762820641148525791230207150369283015940358337387514897963949903599930244370191299183322924575246944593227499490662917688542362325822849275267966420218820762969359124133453516365953733581640634024044657194888605511798191481728888731464348699988172415634756994413923514206656151525263997615625896211832353746572783144171463250908026262132985355128321454773489924367624728369309421192240448599129787183179248551122386011789279293441056498642380535685823020500816094861670304263217768369770882392863816654721195146181382722518685630960337875685968822432839834066354084982667885727181408584225465278710577802349831869411227114499703447834853480843392226526521183390312287849389744429462105879612748611889342945470037456055489791497971042915060769243452770886766946546496367077093513051849469270658591511188465711464904100081436269905862648101183295701296440936516464973895894964125680013458200751664022426389426264240333906328755048797526709051173645455431386520054076808575033356713467154579807446945125721317660408397629219342315210686056001547119572347602030679539267284461028520268071414607896579686503150477435738713526706758771987584308334046157252957176069093323899786292176297655750269032522779487603768474115211899918512749783204084612408003558815399943165811433545779655678779233667982546830691651425441183181623703415450037711794281181758734863226988991388390799821070625686728504970394034730502202410399927712978788421916625120670631992176313535125464420445906765191513102025427255271297219935081414953873042813731315000989854133719233350126838768270866892154771748029415451811624054245702907736535908514468274880364419515207431858429072641514665127144334879610595597901337215548590217665656569540602135702514338628421471906189192638937704283620884633261973788628276324666909761842534657262762270098526526527065422932753694475506833533258199876774784636423558764649746255344436224335924272921100820697095314081505962293271247314805984821787759582384806338328020207074602874954422589308660982195377287185412006398940534994243730935516952980584469262959981176983268473979172237144695268905484201859448465507272898073476660774786892153649773570260731455420306711373298877200976251427842159511248716863757757712863889661769779137670672832593838016274110075839301358910521688377559167219843976822363055860959270950656259468822229844965314086622248869343858870053408560541691260874955098170116628027762623985828777964203266582768714498786931845552299301607907011126846395320457468681368898386986162984505624813495821081960127542167369118891527767316234972682206396854510076453047561501378352338546801218336195255690563035014797959055488020558906932315744800957036828199471934419812054531912615042096511957712214393027208362656188118751886947323137205691561280831345928274734831899398408471238186079052665096597218365186814066233725359884575325995561555591993111379991946895554236480873269775160299319839569772203190395194741331173472842842971719509821313398151600610132112651455576473245993589708175005995487911830392198903671042484671346041058652883263193993649367347078196997892206419759387446720300694704599393038922716803655222067735726186443430244312837514515996863026627154923778280553521296094054856878961894894294219185594086225093258514034975234314441306745112337765089678758582326414303906993751819138538767991466541862144785196563160351953779142545082021446532965593716172315987178072479307460431545233517539982001913925123583981065102002903756083012459972421282585306969988668863680473393013784404560557697687121610179848841900876966445353658866695706837501309165513994830786894028861366868998419825330700691718041643715093828126125623427263735451668260744263416780081590110667165837886391548058712053839015402372738551968765396924664361045769414922455740946984380290624321202372624062059081820300220349266729820509014334205840594512595002009126551877548109349207986387791514749696021623134270138464474159387927080103794008989099602464288920535936532341372038822256077935338387620370187333739064599430819590928817922174261891929847115126517895735942518652454224171597962565755655524359723046562839858309152300933851809464811189826701307451126477689424575069059774689494735455796260145273036920365122643169116214080366839399782670397245216182384383591997266718754309256222776040089454441351795200826309166859543867465705342656565798056546237050725755702489089258922637118945992321456362175074538843194496857439562524227159545727454558718612689699735302848875831981840294519855251599060699354164917482349901942591491855781170141871631696237069106543364825363169994900005404186192609316695633946247624435352267424896983581619676488635138055525285053489973852114082595624817804623273478532972060929611508109771810794184883398258405013052844141288320068940454144366215669436595190180139007501616709132529308706596396809597190178796199357197038847952237074508268895383869432127558827068442667409614733478611669801276565772834540887512102546017459958859140793088543465187403608323477231055734135930699835293091972403618930100432236267094605534023991284046046843280892915453830649436720089147051732881844844430547754760472033103032369193979608245766768455138249893569303194985101226390782516656794577203641282394915176692452695548042347834900167276241044307554966678319404710336779988900889844498756341328531995811364057476134515708560402995698580688742003415359647148138641945633178427317535169081722267302894143309784289249849312385702465454010066316525826489255488767051614731119709874124336257988085630704658319993775225928581699278604079763173247465864816748683003996279846269285671858831878699856420390217140362000747060061244376589186827506897543762847342204183553032346268788786071892840136749327901310087068414078099968831100327799679681432801968390563173443139536171643275637335804249484326006482632956233923925817959490385285079191702261120644623004976751531313330821366941265233829515722004863552353504805356201606793887858243339830617945888170071555942390095675077607752481896673172655139626287202542125129745487591443269201332217258408411708249711030620119832234068448699542063456087960677946845701383801241822569058519344508260802761263361431603303553396761188835256744168887729785883141520048138345921585653347241048011533676004978108999004581062949898275426496980921394317806804471121755776010400901833076473242149318666953298834280609489255820116359142526508291950764884108720473934262771434971556337738069737448946738196315937714187013765626252016067256919685102577591662932022787973721305775623562237348973755606892804956106633224972543725830776113662701301565817947179948235487471621119681255568307440404943845959201142952666520100151537902896314740248555191342580538363647057289900309764675842529965752814702441823014361027513706374488259045947385085838796827696723105438555489251644403398843989879730874300630554997176994076122295526570363789861960845156089046726625662157335736877818365131239759258743378644513598123959672049282358306313961141025179837222885722960932371432645657343286438134349647823181163453111208435812321996839786638244063777440721352081105253928076419776408303637390213598319972800235845074807308978079774157113901762381237531662990032739153169102818969041974012194502502858955175246334493401760607787482999665197866982488130507591556901931533378566793479212521991070078201825269897194322133174154372388303837394613792434107015238390681805939607685606941116980510300258547848068838366971611238492717954750474265303225878426953227017629354326128616568606590313705996152608789643816338324730537812109017509751830621943678294232226578729512716930417577581653287218904243850152007246697455723113733439018529205834843227607843748986641630381188884438375944480424655070114431253042790704773929425486279106296773724454602249456238014389296050154403457863396774787271892303708595432369314095943553481017955965106278445590886665889068609334151343786895088520516856348273765850198236468676449361305797884723121324968673125476228353072700093841914015998124988063338302422390388405993570156729405645443333875264236118863261873165689056094041872045051266755676697427163234427869214897445494061028827219033992196886141202185343619823744245599087440985038746002017079584520062978653665238976745892984528283026677501414804051137431922883392798782509719402173279669629138943745281991943547108706441403183925624463043064769740440571741108738307065478031779318951392567183367404512049678247634024900278129716356212254325869509529915206373715321731106621054237653775390984806696038882911673783673307677056923525325567713517781664725243915875400708246006307115609221517561165791588069644111445965779952558906544543756242823102403696999357289995713651163362046894735316030907988973216550199707518383052403738553950351368592255028653923362336096255460552282878036860755607438306831824261676942064964650265946963876893005458206255171171998801607500392214080512207989763182972615045054042972044381180778590245552189431750995522073497573772374851011594045094787833784963292997408992419591112844263966136671529969552154930231364328045663559340144907128508719531539300577969126089852162970480527376143415224310549800710179199873315584692854167395337590691579500547091965485289685269698367696788989541510211389497745997102335309172571638134349741200613983987870510810396050077246780562592449511216760569727275809357511358411190357179603307649700829470093129770774203840384907363090945384713799503313073341657626566417121810645274531371223693360690772020457315163022009225359847565745739857588163295332374484708845245982354770724021605766221507766668514886745311388751720457450569573277668186970552331346165800404261163583978486869094000711099117438590398132350661821945241410631743415085514183360498455825035439232355579980288034384102709349132068686242621006905701198169945412723020886254845615483583554792487748217215030181112915834021982738549923186758100751464749012761047076166298240126238297389282021616534679129927255843548879303934124273800186074956286838803049711889721730363229841409003914433400699977762268404158978523819297680837642095018269183019989968856979912732411624922910194882289197441589486165811186226473553228111137388316174365942392100893502280622670898922862010849562922621473725251852637190197405555244004678564116962729027573479138713373299490939298386619870382007162947068702296293000879739004343316698722422390618832193836125815392726335201774138966402895028632250297971600711869706564988971486920643880147894458450805498209500029573940637452641874858321502071795555349889420212220801883177303934455014887081200595771807246686920052918796777422234437179524154311464336140552641251062476365485896203731077228734429000514837463862626111981633849272667102580349605688142585453136780233939797885563473958912726389893779187439345126065163020927293268349584872869421573123569899398140796339035167969202338057283115363262888965650241696910763842364944222026879583543151649993680867023315751005449925976406606767243565070324669416385294382142464620217280908021177600431881482341737849194233890341819641527257244876225496200147503285548932367701512685410460477472358263601444156801774955057261366731026858796373962331247473312252084077288291429188343570849291948909563606344645117662086588415466203213221335632345603493234710026850419395010974762900126291787171802192853748281070703649614448650129344586541445413136000484629442301750722160756511713268510384241156130395366410162359853019650060103620732055965885066884647592481979547861527175013405230334037985429060646619482227145208442119262219869640928736683667101517259915055430451059796650879286680435481472107375886452583107547065623186297386987527645441298029142566471350158706755781949637507399894202206420942418823579942547110163905596379174677357357204398490786027920608109725156582361202032119361781777331045523639150901848269564805214357122490761290608249035779662559698493466921900168961328726213334250655982882533589358317140960534868097973035333426499853179341702313404581799795507165056283465042423576095172501883047513969874382693528930886379145149725458679278322942093793295117508642130666280575253534795332252497655884127984157913686069297660116777247988416001494633068005038019312558406818608903697394788641664404031004707295021566527851751136991572494269055991233358681876525452135188737436958419085682536653976977917699205518893720648348245079858576361020389150970000026325979949188318478291046955713158732540646514063149236874455242630593653547409479262915629464046788099974293743403982519416503777071600184730070015435022549747718663902223521995754466774481566174973536978554439040080249701835754917185951374392621521317123036908165631965515291746486733403857803319591831461995808110773740136005262148727342792473514764392511791871442186703185248560763302875400728556461899544577774952512953859532031880514895431295223403033556757672303120930405725627424408009108980812671123321092125832162467396119956188862663366411910218197444833051664943570631812141806532496460790499026165332809305298245132437889244287592589907959575850839642801897406301400976193984582249368471995092539121871238295210100849699188158300504072143998023302319713709571597085941077690467214222093660976128161634311222816692512803041940554621558879340843781302609573741655584205013437590129114159700227993491826151049834687167015436595703148664140394403498630012632118953145254991636430287600277765890426196764046645774101599653650050519969826780863739453994843843355979787210419983676656005135856937831517060762112551094878410227312765938892804956225675229585075740902844892213856272245674075417676409104947507337677295844029718955586219805313236971448464105797181638466398212819626932976952350140811180729757438953675181917139611235136695434831192330008565839757903175438658903653874411683186348811639404379276176151100226792558444996885024029350942824724177812868581685443245228535988403425378692215141097893162252637149214930802884451529729351368997084075001565496029045731320075192419079576154221152792675333257595210478689878871707706869923044626741370361340843131503389496919162891068501734714298666949358152463269940754703140861453898761691963249427636976459506643706615305945825029391196187904242451875829887357945777528344063216460809833756400033842570525862490717637555848495336925588535714854420487907766902700599970558726104379116633344375157527064188301067077164434805142854794832006081312302074863471694895778379039312605713290809528429468042523713603246526894046738723027516777900123900550515086016971846415902778562873493168174642006056952076841105159319010135124924799399520806162295491662514126922541807757402904360092399619979043423630603264560881103396059862760796026510621956170813026514943689122917594860480332285414094269489656158449180859026345358085676161730763975698096711515799546850768285437315026885849180923104630402971656396230279125491948498166111971172372512097327424326147500950655296107313245318339278539714130530425340569085823924255239868570620492063348202981741677223354085691048125227981403649087552247257854564873990556340514553397830289848947680062388466881658991771260946845374456368527794362401147249084461952484631574272091937686630876944894547321855448484138792770606955904695011643940870262653565095545422761297214083434239879356341838857406288192950246662694462814649160341936305194299190736191409766589996149168645694891709500553372314530628081681240000726002963773038312451618746667887526413963875465020273924104156675418457142789057889387375484976152098091832230129101020413150483760147085727938292514823638676342150225824455676527018458412773224573747439161390322250828697848852059739234527822830709919330809233855580240885850217211833320482938891196630544669843533807109342884551403050428062898151931007058648975737633924107307715701508677084455187165827746864326263372406535154623457530503423882727363696141586897243552838996337103398270835666990240017440441535275342213475477074296406771813691321843673291095002920622807090613427076075663594135679644186855651382717860451697810024339396973410215539384400693199972281237168770234710941799125217231320129106385713957702784101991954600961053375450790235519331434557154059943004275109882540066476626476651628883219010249275875548721427311241202609430721706287690554840020843012590847639449608186030754021010218170280191054632875979505004959839087063249453750343099369538209670382192683719000973595284773224735484666537861067358743535465598728918302912131876973181056390596441591589310116261669159779724027904556309909094990552722567980925882680763404982014775270199537790796781139087138465605833459473104596480080459271796639945243574734919056725825207742370304846545069948479958907460977245859954459601666824393610672165038387166188742465166807676557911756689181192121532241921224515760740104248785711660182951287188900478686247037498207706451763881321983058669053517625191969494667923074199519735662467486232094137506021761093605629353185092174379723939090190055119403082536496558303053271746298880870181815761986944279316657163502958186479651432502307223392896812158467720762992276894216423191777863422171619488945714558562517167528805829367940884923024493011284633349868219130803060797986920731901565273023997874439867147853920326161305194161796122074987564757582321435684481968009966342180408745006882956293495812959514586090568617050769933518524667812607141736498400747475197245055743386478545560344473511933907080601213075290133053795773311529099785977155117076166313612010650583229943045041832628676206419852533437302401701803581348238006651023819179079872106251055051240094053249859110523024741944375020465582010849081883692943784838872362244692071644400487883567463983907016956089206984235106127465421528160530750941729695424975786600515247985403819134145510303981508231831534450537497605085682392370492080067831604018365684465364205223417085652896602525918491530527804480026767936087847651256036754250540299801147502926940896535656896040727007740765762713227771223228419415909199432161316422392038519796658047030795237813246441192867172211124346127666228636139321099820217145761804822827878052895032394556055106623562929563487472611476283110128723416626776935557633224119221343998756604646130995709216195885667403081733962803723122083648645589127723599398841349421033994669068997189427017136555372627624689611486832342935419523037304265502893490046087062622480616984691077494309113292903422417691903688176709561390407643175969493442136927422950362756071260782800782114596409579449967679702212435850785869073159059342278147003053464094380122645259981225432823601408703047685396420762532418442060713808466978852157840247585280143737672141562194085973357348934215864829194591955975784727707189819363117831992196207028064793194809065903489522428882274943930481894493762363165815669575603089944577478401363127513907932882622458860062684305474120432983211492567661326152539918967123692766827221562017504245543791247951681549054736661277695717169717014031109020949667813989003118455894226511278096316818409496757399153080178104915305620689018595314989741320248550700220639766449736736168516320539520038045762443930329753877678229841898302970140114260306111486138038341925465766118518852936170207408370443165217504930242021244412545045946861648193362004081415158625107076981495248012111550642506719148688934897669203688805076893458250232067410259111051640648112696610677898186553060766215429836287045333895434622132250510457293858021881855689612470779043266040565122704079725013949209178895087822137058753230386762506801164424479518004979549772391492396673402292561223609758413090038451066320115057673835193820129089247813129084501167514503794497406292857090767280554779056394769022934307382820041063631272272455954028509684024477591735632489494966230810194632112542811656980767314574065601689092677985129216219006226642463697768857118104678387072929392188281010761149192359587597424855888573670725221216595546431179886388354086522387053521857354582444110404628298272778268126396678010948611053804793691269815290947635637135494870984151263681040096631018817576730122783069173880321265648103437861323137249345041919854891115585546547905264074441848303126954441607976710857664764866358458440407079584952494019679851103529671682757212357167703122089522644261492763630194889913332346245181109422838297919699501679901173583163969492199098744378032634166364190001822545615838221429292154107628683573677321076268702512317993379652750579737056005303934003242927130905354166715990962343642981855945888164320571334049885801489136646894880578603424504586103379457359813546544673088338863819391658623220773560494879650277399394761833817977634779291735452534450714166750496780521543722661785081541685772709686191802200797681769313196278604787757848631893072987046633463516274151293064944723418723781277400184155832204168161685231179552431641794550416962121536424130855215212606059449333807955720013583226248967340056658980014345659571070588077934357339693539829744446783263157892180204308503246074445570511514848022103066269262115767159943369336862000884863850657686884531985549085472291373123039659460677410106501817208978092499850201454549907611655857406201510527767387342994046456322991260452768062707815088398207566882021517844300905730767733735394946520438590748273721641069155620721010772259690171389991021611306967865082837790316410664614489983431248588139768824085955728057730614081185588124360129037914798997411527342417116671392710385273225053146768775721471611810711531877962030545499450969480077856663426985311140895229859914941477082571753923547622480433567565758127730317021156243779642636906551400518604356888491299859614444006083551202035733613404278235219712457962601496128193177044059890338903957625327871207216863816375887498909224523413592756766996497509316786755870516681681462806703859724444483056593687299357906375246274537984476835611661013371278624909002173878208489017465512572443752998588071312292452707499073432501781972187017150666266703660400375128508393588001157171201568360313191022574254160918258644643116012796153837071748948648901119704007197133812077516655416906020563239676408406703653909845245153258087570605641091413850731822709941279732566874931648214284891799661217702351058007175196962340176630189495585440677911751794011466819738616486892553501841112833213491382409545687829753794998552422935020932373951077645525093248599643251935482326859879359598348915226502462428403338747566748545691783679585433288829470975047956600669309533920760525550581218727014356307577375918744021007016972644900491884576955640261500985244915136786388412889261975794101291878464669444553677261007947892180193659855878408047504471846527210060252412739697939394521716888119737831011465128416017943532370609403777044753721330155827692453417692604839206956657207288428199690047706739292425339715624571922334913593754963496501796587970496856994037838365218687508569724488297891918787733754143527154590586004351742803524554340130680088760964659787016277602204210172924704594987363957841916886882450524046582406644682271579828667715379690320067905276283324649211489087403835546623953935692845883825275856921573547344940975898392101410051976805719405054805583909611560551457637072259414762912655574689600501743335541997932694941611089995148316572482077178157654475643321251620029698165287375248919837142956884518595088980173755295146783853679947415274880047984669928000024369043425253707729826150192180637489883531448589275609096423952054043107699563692956105292778981505485645510476227321063411683717693380468128750022826093693208288895825616868007488696889626906375193165873940984443857102523644321672210593772322640429511481463883579215593312824381911985603549334930281468704819280982179178517729105536027733382307468954151731383691171142689065684537573649630626518131915851453898069842373042414220876931969384664172816839804933116419196682734290477178621910810231423940979756795468049838384226388323022181047934626854503779318420699865390819102715401770546654063577447325376958323374243560541739546984728870144191796009859415761172296257310808498907684978439960626815747290459550414074241724958964534855883146683677433862805284804316234994331246838585480790473023346921721665938941384374146323530350580666782668207384785166532376582541642009483198161791022859833717928785252625185734296325210004097365060296954464555259499325797283234624327227206593091052223104352385912068395658792868577168457739685637621083034145919650366524143097615141596026835376307904094198549956557272698724408979654819887818861007797028632906583113576087462669882738858826255797863138292191770055137398294862473392099836196023074485986358184071732698268794897930816722561928086007461674421107943330031048840919343515517794173496239393500430426051121145514996529766125549352453557770191264460888169013016103017553183718276656739377353917315650942671527150150208129986658236947140798705546552914826711098331798961197136318176613260792120953562291080301569909183223483020861425576030673670882835120929513324078226398352761908524781535059006450010217774233696475639019315399108795487482114509564243954950192499978695278264931251794813449543855023132283617699627309428271751286861990328370668519391341897885841344567657127883598747787455796516343008446427570513362743542342686246196371680001041724445520622555517325600976890606507525570204505177830865711764684581521774697937667546369047549979763995239537365220861139971814094904504563726460916969349372434462885171196965057346510163261186839326564324789450448831082944107143547950615442992563243187771976843148758777974597088879807021367912463760477098925669608349950714511359422503577731575456796530617762164300660876942394037862893891404997856400382765554259553768804252452412821693302090638148045111985365995242415741779174111403789667988268459201000436105194939559031534388683320379537439586096631087362957891718261124159300513665099672980849017172664719809638008278239234344866862324428456832802060069833702306272499916004701571181991397449804979692251981440917785668587983417794463566974436415655137508282595569852669065222143406614896195451251987740655412570840521452901856105338333942615102373790680153337776645953650945976450919568018409546700332520259986582267768179347733506023534546049756934683471020385482038043109408161823330014664909490801038833774527035068465040900938363281515997433523956653250075796994637769694701256109557089491006014031922743326266667192704940351598743079439399554380946212390040668988834383498184408201102570747280194291254918802240006288494802366138636747353220021190654707535898312503273833178766541492998979169764887954611748390277995792439910688028344677181040553623791684951180687534992394385036540472648929068062923656517283171309255735567031289243894891315771399750123685884005617100089058249090520222884357503218357425261392118672190803775813635917805564393943893607492727591746940488234353675765671107054800046158252795286045626327704669079452689665900713273130216018261033342789778610726070498422405111050678740987123324705262570282623683181191423238173242638122076710517694628115639808960566635802632752093834835343397407527703900788724664674140592344803672534849571657775113150497658909058172383115813554461873657060841393513670592269870497677123557637127128229816541538449233143216328578787471504462883467905221289814677491864536552072112203096084493330178971670160407057833505426404932672805224024397906215840408573140739121425821141011711084734906631640897796086455206401835180378118088294492368710708320156153019305367494876754977087764702157027773013250017118641859618240634829166305887941380389062367686769338301282486245423157405827009281886570393539338935650515741034404495733999278883365793490293379963197311323284675103334547470037582500754976961595008446467524427537389879228348975693105322023314610146153239647945389629534518461977853683144620859248473169547581531927404468647067707319737608216636698954942844612325687692986991365600980137730738375257039619547314576419483839842779499733982618386839977984069075805924850525067514582790601271042553095256387211555067988612921700551416227798244177053988560303315747475012865497130984583449773043653182258724541014415862473146870440268226543598216620375574724608800292396729465705829530529531970823096156702589635619957159042461478057655037157177505924461644755606989876547831501453843420509711953123061016141441213013262146167217158529783031048810349020542824577477372286339746819578772854859861989275988943420018625941140256602110290406005464971844059144685960469925865050329979534108046613489211446805399946312514389888875279543573837783951369979631038469917681783622073004705216214193966855852533356248520390686821076569562115784459420448554238285370275352719688876694279354691224975408992695581465247149001764326690881688392647757921022157221839056187482717643213976011357948789310001588662399841710301793289256714069183343340549945575140598968001135239337387697874166789979187541119583499472375249341712139691768593291213209621301448201427347808645150527786320816441434611736037746186185051690846497601245585475161866581820877137726235108940989569661433011363293319346237252714412371562181679727280601288784625402656247355878890546472616585304616026147976391295498727186574989290901446590259310808589190757059220525001397157489286618273611916713261136534198055814203286079293722973708588685568068348246264148330260396971242632857442128108254078472956838516564840423776763080541906341100289205025427380698503039240210059711908079991814651391421960168761881206029591452364064647117304694289670664796727290685547350671746632062750565554282778403497446501301491382239101032032057025713819349299516558839600409696273930996306624809776607348869885967061978913588115179689551347719633837241819331912170155974999535153231854795542287087382151882360345831019364483941464846717606174279016586692396260606813059563595024955793809511038739668060246739497321512396897690270641220232905985230171744713464448738380345487246155803005240679270245422054300347605811201794735730098875219032207011176991402761340664881560998384775086702372463252589352497403015682767155776979901303236374896240306662950448423894479554331156201273517067319619038283361819180062012653160665449089384434244448613814414395719822052984560102495696172388066603173446533234078722195295741644973606972573777960134895727969164348162185562208043457779254865105727300620506503526959224121538411654947173823881232679652126937174233617325704741014355567023815492571086018262935097006351151264616484028783971566062387269511533081648134230952523749133911447159977138507420839369028079521875299269804610289422009866638049430597345961956211198840472137052643708710280354519914157786993822073768314039348561319043956729026516957889751449186379905482012038482729658379438149837029604665330417582238422424345706857930076812168577359026031517636439161629677224389369214646665779798088505261394061568952236780587047198261543600877936798340735294426345496280358893775790635087809959360796870636914009579240650235546393607260472640942262439854031166667400336797645509240151259497720530109196814287880869510295878636954335385460613243658531444755176554443459262031468073655429394879060043557645827027905472405257360811414120122289585900983238794960746751916911710609144215065324267924540696684235577654754897211551739281424432438399644318419574413609475919487433529623225306957886573015169186089249651471345794609356332474816900232070047301942144240173480855700185093982113095272787176618911904931594803214508630714149904550972235079681582316252278763016357399341114024865237890440286099007992644340141238044532746657336587413101014963948803900221867449707673106938134947271117281837950616984745871023028718366990714588659683866488624483705911997665703468723256349282219502789394663897962751132235976632840825898494998851382406988179832157111831149503074001382162774360256035643361322098192393230151840415498920842564967867953606638072203372894925430312016389341817275754701155473208785307029163841148598876200817025440205077386827327849018745156427186447619612382108134608650238025291873437391453309030308633619179277954778193340121109697100595225170781433373010060625039283136171674729681104159577931867187939924730314227856027967426853401671993793401883497852642786286021371784024459828449478956434426054323880052901427706899840522100899212627229631054306872658850911290152552430758205859807132869564735540642959098800010105228484993705928578109156786460332917850193831351163988297678667670249957014427677312487601539491669757895253422026181449434480058434877730804911852038913386650440906792905961405557456812262386523819085581056316141938691814575050659707217716951475575452803687208789696726797925926202319537070615301361877245235497942050562291180317555231870321775121911117713920909096075283968593828766532378792612987712495077707180452474056194635557506058096548867900437210754300227251546246079371779678164191000682438109091426193978042151428167720053564389824221657454505589404525530430457195102405214567012112277297052466228168591492747986617722571620619595239148941816085851955815850853334590683599754944938768790527301408151339174447437062617992392584903585950021005084355770785951357226971344361479218980333770707067556076289352463508235768161269173147891726605553610997159150789834587674856236262057691138926810509745076808543471028456098672171987777988578654306560036031710609094994958962821916553889804322724493996440844986326688187222916318193644664869510385074585580562159342428355447323113453980282813026597100753927701289896800617288050959141039292234277333370550086548888543567767363059772738137977833834235306388315959282631700140530176112616573170352195318221757827146677815399810857145440536256091364597891936536573157110304617726062119540593388179309688280113929670005102860012072802232280683234942841429637342131953381487448048453925162144157774308744775808404191336460114210844742853415617220025497476721834127251867976265765550468629077502077358610692188758611832604505821877273608418609146063391024493618975171634626123546483817872772284586101773483778166120757389134838761892155139133922890354522556223093172498667612371891997713674192918945879272972221508118356170002742221146705035994743442970783951721634813699381930386506009530814244149563340601427621940881740270757850373115945872852832076094841974353203211683841552512339233003126837307991485263002754306690093677716357480017963550814608341556129636107841806020700437309502067510401494081073262481417884207631064884390601929261103963588674714852602348269765730997467936100787650596009410610465970554423599891295652394214687812715843363788695292088102298907900838505802918433926770182489069780136519488734319320349606169821041049720927863168265596134197617663705593134211485449192576912142981239364329284970121943442703033778951490573481444221795351104638950441427559383719480106751172298076074360099486990072509122566490504696061286377382502666776747685108190906930301113499592522652067043239307486550533718803152242770060730614552510258297319754568038824164991546092052288986188693878048504309147255327868683376193988224594353211352332677908267197497716097309503545923610834472144111787608632591267263991185466333520647661053358360212155593186502848926319213265153605899069551958494621871429021755393202170987207847078930791122447841744598150637969005190317090241446984518323768122422304320717058188727880927737349562550509697600275190131143484849079425410598433146053114750795857912145318399572083218359672499534632019956925653284917092004565442931630237194529115305170215344151261467632851699420266887344790500193231636490066006797582575040229954877443798856748765521881497356330877894535418681655810357139278720754690681064791627718300690060318546296767035169478714241928183867885488267803976750933153374333832526387414040929769970956589151505109065733652837887271347199569426774163043072769725996597669445936467738799261090849118314277841682177602752589020116895873503350171969618494651628666303154666509414357567950758820039310820408460672275407433296489582784216857199315748752308759994876271414335722943983111080293871717331052450263367474499271273104606337626850727438690741501522935594980073320228515126128851622663673769298526355384287233880032428601619918330424253912550577086465685008911488567305172991956639879335085790424654497265103363930263194702053088479027691114062510443210076652915463769534135027354087653125573345244324734104893958860134262869486218922944756536836724666522352393500478770045146397823796186720811213382532150468009050981068020943698215130109515221132374584319781993351296427252590373521294852994202530737871330027269619604593073621316309644163364389327176341694897061946557282691095635064826224580012516788388892719808233191175112269993884546162776383980128914690474160677186872767974483487967151864923283421614777698373259379936094579361542484933704401616704769809843495528194740037772071629482359922927113840625801213229687032380747887123580247318603542521800736464935793682024095421132554690160139178247526022603196059426830350269516123095517679497997315467892937105410371735803146111838764485490984165598803008653611662527996480305303763044646215139031404941730616924589562297513768091937731123396804568302259328139534920102383054762522842138513295933788758779102905818414421469199781972454589578027998633070047563138304056824536485645784511445555166580322608999594330021988285356684635573295666078916884306641190330701348653828669608786021104279508964560271074177068711080074967244980556891106625569414012455061380092201220339819557972409198654147732746909919178041172858427577421114476023474130636077952144417227928029124538192827216333952459754128275765443651725885756071493520622699402717242686390573384904037363172109036918021616701481647081978204350945816747929167746904829921869501172347188222209302504961756147555855827915695234780234762059885886112460494472120566008824421179511933191531213045451928628980280055088209781632112825210526037826399973310116513101233071651160071553572271808694663175614127224409932067931918969651776225725809304102692797298063292548710893510808575173212788139290741155935032117262466253367537516695597358811110158121374119111968205510884713616084274980801999920192277228389416658980952012252520510857413144499918685035012664774928019806717340411677119889681534059170826969527283958949489940361769539746608347870086814606180963364503630006560745235065676494948724996448384404835254448317364218237269169947531617978730796236827553259127880519281260286745327927114227346457770925792449936034140131030763616634317402259095964624602627657824310601641656771372289196523837113512377477738854483121444266013924273229503932134689928400355359670004457438749280298311461026141397831281086895577777123610318018152860647783300246409277161414881394405626821751146906498921220514838196098263738638547070777021187119410206884910749759797560687802901675697971491983083809703124173729772709702811285253452600910417080153749770482969540619742077443599175825627119381081482844352028578442173127588955812906864660837217204136519009577329158101216352935135602468686738854282073988176162797834279668075828460363999764399652090501133793835216191859866308111973139210568902293692910980999632377422400037814936942598400116189744477685211834300058586170555506416192150485318432617247483253690594800677855977036961450536075352489013241569682194166913464058766316660459277005546317278060673510099926784049562639940234316306121257563461566290465769548785637811835033326622832609186813518368456704293662654709022384563699686853353765438397912687479256181531127572762032671149992342928185779520659850051038154430296420527522894454832875116384171446482300720961580891612929940425929797381795863911016240561769673872076621117618134581584868669015042038330144375695528384650542518397760028910517727664053209215374292250869951812815079822865412106689026083220385079080603665072811212262959127893383527508265429403424223313920054007988497306275795009321503713153271460497070475482049249159019366797159808316155019079016049928698376520021459769721436843349660849315256137074527716902247481649285945370089308019625153418754714319410944054877317343290597771151266726903529121039030945853790566838952370389883224688553470359304232023781959215248668613656737659021490206002462044331291464786183770774589442613847498140601842882206032080857925210985592562729758460061941845438829741594271552805741013645625007855975084920201864275992756793508709374814831761850407307170918445939605017549297574377879940555944134776408398830762653798193901936366679336047413827271997988556141299193665474060254987962088906654447956990946728224421304380612068254391921293543758016687578995871947680932995130225466924057543953570872416887480211169431235741695989252967640763689381706093421398177766386502390584409638026283301781294091766620242007528000269724515109990318946681979112674190639588319182322133765726006418332985979860531412441151597639633832836388762515713789035965946552478249662454965492272219355392116383043932239885239063638465419450010371234354886374871419082755325897165765429588187471156399935428138270702512653388538745195780143225408254528826408750419153506132297754280756885060682967805407938361126289778453004386974353599128699422374585500874577960556804119955788138142714945635836408517999222028798032465482911071424846401218514915358090229818882525257676971882732610501119366040891412397193396461464415034325902646133131791781892427693516170025728410732622521611481816994557673988203020867902088677131900169838944180326818123171358100770152005291129382669506320728677150240841786127241244875000669552564343893414721417841999789924798366342010764736990925668165334868525585921201136417515245197681416253037226022680252609738430591745876562337399065023779706551057182152618363652145607707605677913511338796578812446584582488263513853893011559534124811914887580635758554862959163202500797421674704448037250660878063097280224347258649978063608099514633120928188048775899489446737730083378322143933812009687507136965272491689111706949030286212985410363687052807208215780771755224779261230803509107443700453635933580302212351174389264677702789083422919818987506936981678112497909418580026384752796705452783647770627083896761914213244885812194993049467125154031069909973627689223348638563467895555812236185054029246490444129675199206850577877746554416153459979881485226736300466394498537020380867592050017909539102367059212616871782995913984418794551110163290563173645457462266506143967366022683277427302143142337180632610866261904113598717107516291595991155629867020055225435545438661300296387426055907150721810072573521171343285988028336150274238115493770058290165686433263705492447930566095192549081291304995711854640885736197234160844598493289266976358772280140980239778393392852881325841801332492730778840737680792910291634361804307683606353416977700288581832777168583682000560627593094178768524914300004205895639341572493724633199572031753210398093194875157891313354608196849115298290350644693366941905006577609422891528167910772801860076131638379488147016644100397216294834821201466568838545485839420621349636634952272751392075717981186212324903287551463811184752067724899694472358691146694523563119256594985069237012895432813459100504431854159710341556223429110742704895086466139434448944384120067161621778347288130332264978182530285452937993074191939038911852251160311198356468031746798773293995684843449209012053416384187261551054348641281621303234581596599466578707482981548742518304761000666575121891759520674765258436293545838729812183739066092760530214111139859776690227047592451900848902694221085465745224438397642912262559729119293369268776807493123691930696228606396325490868532183525088573052393199263896525622254185426518979143894383320696888964971363556503237782526646637830055269230563587833017838994029945243626554950204526874976691088847336075350309830262529015570440058335920691924343031165495806086522618150650733157108521020583225626712613695686509936312821926655643248143532076620212959401301643475860716267680199926638758873156121810640666647039079905427527683332835001430107156123941645826062740407073074825437779291760836873564057670222011656463018042691264352875767154061579922588310193743860190603756729982087768434372475574935140748836263938999458971280928390165824978404941809557568166933058518833064725634048072952783408386999532279051118986865653682564393801955201837061561436640417612912588613460263746310489963929384413884664055866971059644766846451222271819479887158530884537273304941007042650107393199570001432466866846237632872983922598130356341387011166774995787719453533630974236185572783385867828521503434373043873732521786769402908142622639681812216069930582843965060098747348797453985729342066915732517191758571995694912995804971773225917974360793867060838543926623191774744572804407901257324310482059542981237686527815959181861889183213121784215408471661567077293141294708494871015037308774128728135042938756019328953825609303432758167253409226767476658313211913206270123643797462244614196224344903376192163080884000474511148466931474419423544151506110588957969811585317411723763590755952033215290335212300752115886112348258108164444909539795852054373987281038062862488891975369121982062160917680254387983049853710410422804611049832243379801081998180139238556616604781708763947912212183908523370230794847192237041626286832541251379680087056564568505611519768324876970781828410123583360651086045686679808411323928546648868220213127218944824258150295073471272323168689727407945395620507969979965448615733682910861978576772260927357936040083594720117347167026498740660706911558568860381733345092761308474811073623935094981889483046150481237618200808443461612227812921577079210779602883466571223606442181187202951392062102804913625038465769539260680257459124804720788066671595249461726600762994261679166512257075953208694512245892478946182711786975976335159049771553169786830867436708458303985515953706892182003970054503109243933073680040111777993943002986382885321520538598919299385600535442776595745556288134570681811658112620775853296650746511381128722051849575267869880688189452174082800429714132103492990870804505910307859211746898381200198832663729324742957157078991973772884647040913876043113963635623331348245689949968748355350863355168506001126259809309414349901142014024283167983374631013547500195939266203358868042433825890885066120308059930718679839265982745774595302713586196077575542641099400930620210483937597462170132775318675791025565450968046047593348209206708069394021702997198750705037854393005570488097497899268736056890964723456064023135454730656792055865314493417396675471979834855400799433553159975300360751197137141823628753549899411300784190477358261648358397969814524591682021052194548168051430491443658530211615962205678220887850555619003732421024079635004528049899354702171208064119211149178785634548278152767354584411388299478220923921112591769305846685892058410530064447521605100331112546571645090331916877705528675710444164685270521342640626567007702102406045106264638858606488926459410149230624107761544837480422605584992911970029726169780583057781419512829621414803979484256647962234730034867849598053700612486653435671203716833946936855786998176584082439551021801496011449205257456041085778006018302207943919753754691859702302119822477581742552994391116403101144617109678042958481264478546708124811706828243621876737076767122747534624658646825542170642308995827314875721971926071707909177555560853975822392559106807253259475838638376504809399754449517133721139747751263278388334114199784111469621876764781934524715850819173524198134616926785705099392722543799031782229089368656897507258037865627126582743562450201364182847246441379399528087559613923145579098902209549310568777517813019303477384994410429918429670614318727278617124369635627325674766958153213170657215402469875555598159629958449527941889695564035258650207005548345603898730729476031751789804349255211484203874381627255864517230479544127817564851370315360292842817459375395359996137943569155048642727031725065089941104151681587803467554210377839580299614164276602000872750060285192364253825483290344393115561451508111009162698320573347045431686727205009234241338630968851311363577193200105653008740783700889773561603395365238148765141789910475346308155356462307080503013648446153075358974192544266474049750827750870430805100578304013499164282851654538140385820918548521828993623794467129682757836394045663570877511660277313594171267393006248976731646376700861922199106946373081704361155746575136623220286990621215816111820132759616351738444459761550896220643712572755332137713241393712705727469088695981306926456030135002196981406844592483738365676658468463051369645482989952299690265552171415775761529746958863269974334460041184980839455022233939463394879010424709037897603535767789002352801330030453380604531797753219099800596898180449437515169998068398290254170094249269400903876990673681747106696047843448746765846681206105423026279569173976867948443162763914661512686861226008263166749886974941090121255196127388718917265861394894906703784481934475128601262991002428826096209927645183296377135873669479447091474093140127463239911759026585624967153314625526833801890520987078896558641729127015801425070969670097002716535062978170080723054770235962122593044545520518077858087901101435473429716414429784134176943388145680809601874992039596441423008101790420277443450229582805113967458340126163607877117497474205459037504843967608199838944542707952243320147047541644085249107035277632928390712809144760192548932760456674090412887270604176106066129843873490806932104817849967228389572529229239698502409573582167802917647013358252701341169248565360925229150263883263938652851322062264028316447233336981400120039446292781150144728882363769603119066770952104830173351083175474771738735634020733419870170660863487164822770562652315250966031797432906160571497432976916977556702550055096707642347581877187573339268328774918625057756355069662372607278417673474712608141159482199418214476928384984629669769388208057558909201361894141548704225536216648495813565563616792384359185104253253926360497864675942206057054206808709072084736989785795069286327011940788121354016773309327312245334608541973427844122190410840016854090287194509823136658400481066932348851925281048005626308411143182460994671621132125225224520196573648937030689975849936155337149839305956592775061036774038604467827721173546439407894712995333500279050870968666636601206105928806470897384602717598029923081599830405674883923247322366184949627327188956466076838696535277237743213602136976428255758319078501657705952358514955581502012645869561664499440605124163060305544699844818181286192687681566156273954801197171691498204428358824899295067925773185460589447917056040353604263100623854450660577396840657160045534948927915584040513821167942111816598311499400382402304690866798445645300008335296312050103513630645267405288949625290701304543613619816126869952047700269877236124404046478697078910225110460496867485484530635049895653974227537921121781357897006079258080131847606590446503825693971344044613910320308280372100569095679131499160887544710024598733559573862279042651714319363950360596305019889586831646786255905008672454645537650101528874068052977184001317805705615317103899227994900535283364784601432910335780005029116452067472326428134300053748760270806786022268967559880829697439417262965547327389267997481939103091473291635284035296890854841571471220276277315006299740048988888771739771293060256893140858440999939666546941850984647094969185125599810783067011433602166117853880206635677343373844477973914383611823209431628598703942338489678244971153508699964604245705641903387480481945055840511913485768689339629038082318309700204936336426321113779916088291990141202670302854918457073637365189274755697881839948746017381597052900503767904162865014988303927572116448484391436848877231215619418176941960237838294769750048341319239066113420960026037559542005286992511927838753943412515052234309173462129108118978162584655074789348334192307583525815094297119741531116075647540408962561313742016695795749760048912828968829096486107386117860506727041276911010401564813875378319249788175373721438860035039498321248791478218828987847752049224013843766701789093488948219225844732635970825197682874540176417344831207822993331346672892798361551851340435000158814587480416365259443485290448430228511070857823734945328136756309338102888346209928318889248840353315742420202527239882113147195050730392388628584561917659851600922369649074021146031639337224193885359283559145640271362977004597495831438260286335127701790623091893789929433620237765616529406347060194240545084501818471027326295019822988826757656462951147429310280148257028644760217646536534748126531735352789989926757622305746406347083246385506954872159443387206074475001485113630716208619413767087057676316796374079741644584589644870634275670319371631860149196847400956074833192201475765757497368261251810510719701800588202450572377354602515369673147991713914201054797990394167363938396035021809832775707338364831385345510492893468453542164371083014734734301974512835597370338339379079521986230004033314168281183850280216797946225705932256489316795474959754573676236079941736774814154409695350212330639594446006716077045963460679228203358672666540649305116379411366551079202041124487860355310550676327265608655134986802744789886012502843434649639309469904216877863147686479550663605871071016872811855037410443272070053098446725463294659993819345120397432727010130720619386169277586120398580372561688702089974791603366607775723244833207172756218727301736103967706141408145596904465523485092973231951521749105184054612295937071409275650582010023140534402319438482182761528116002959658726401884920049695918264579167537101642450232230644692823126106730196273673877270192719178472996605853970685581003108770596493402483169264682769448921670764415461940652737982935091996391350345728767864743375700497941862309505775796317424341631768825469376066849291815944804936454039267909364927574086394020547325714580500006306666113934752783939307800774357952405957907581811777440120321084337182357416868367051101081705382280392904592340499598172509261518213282489369154441814412383805025298790637689392562550277327831200861170121232559155848682368216134660722266790948999693052245414412688599642080702066860329796896621814499876573883062860592250466402867473839665458684374467438464008294280200390137054611073864317927226176270927393894105306607602705177982755542287417743556196684515949549014245652759974974421574114073873861856802095334641753932562707783335652891111838480107154030243776931357435439651734428703028263714510963988095399921114694649755288097451110412893673264823430642713138877330623367289529980585178986581830101692035404588782613934858330634354443899106515218051309123474997754251792616897425497598353682827195561345883165791951036698510475901541100081978645183952482495488671038083298231897085847373622303521407214981467991998394850427567966255017044495277876711526910437886512151870974007822161602365384137590911384788883339918504782973261044147500179013692763065341232250163527192303866960775020470678209361402744489092643735408973325735361945055455591327620367153016501222847596265506813392007274190117037659908185460453872818700622986124247499222442139458751038152981665641049850929680154393358922371659502164376840431375285938385760499079364367811600864161123668342098830347617854178558261383419357834837255630447809152490018783176005153224519973599229132291551996621266026824546422007128662295085433950507675636174311416257289684176127674414109936238866625534061892156308398711661502876797909292867665794743122047301696304691562793452071011317518434196355171721286907225393345679370873956761700177501035546318638502734135513842860637839889313736433046457550123947342122522133415409308478567879755026065009374066314165282879993591882548271895994958733743714577676249373127758532940636524501993742732842493033306957852038326990191308745758171653024202476193614650176987523709580341943770458648369482417780492635525849955703938122754457393230297883458960619191301390482924032456567104262564224165975794718396822634853364473166918931397619335048968644298257197187932160870143584517715322491959389120600615741180134144935777254529316171492915844025831052750218696755794953009048334855901682092342680781444201937623519690956664991610551185947064815187250388757919331277939626049667946637574719650725859712335046814592564442090624231278090500689383664681574359045395932610072489036689620615093162014458133275017706255983997620621823339361073534574852366246897901876300991571542000928044747314767382086580094979502208233475678490104042435262589471632833435440987064734615369372534971646032923435499473286950286862340559684970414094421609279354008583840949094292023854323863089664114721283354960856221803088214256909435150568760734599039341982168013373374109389346948951863193602754301414500056765304049734721381258439350264153948535877067376008135408609730813369500194810220666230922737220573907837553079878294057255302097268066605104280286511700094951251547081359746400568910296198628708222524103575645047169571397381611872669129929670720429587543750491960644809577509933453478520166327984914166977172795687653745260468562302634277655626174557454331334463172251833683917280264757730618563754109684138405236975616534257710764392781619159086311301934521769028575340867529440933980119435756360831105774260366863178557219305450619581346716225167029891806190782366014696449686962253751953156459699198008063800271714822922761813402587676280198745256496033370996630144002261562563164491427558156963212093497959915534883822835304309214972820886643636591743238258761574060769038844681343560767117945118966154370571348394481975352709743478002812738982817654421694839500254738278636462534795561699249942436759686266275901915992786238495968578802899325880549702716069984404446947780224017099578183970022425992765691970381571351160985663990096490341589247601347561117591577505815284498255401987343707048080305189751035505316857314240347897739410744349839954278780490685631765544532037612457590377519763676792700166811864521887127544632526129673201805399757256343198699276293263436525097129577186222151901268631798380614907365152424772697664577881442901681802118152516090961600195144463030333549774260697523904578874203550567753729662210075458864158531830090441709973821622630451380688324760434424323613427172271191377329523399801656442956157926518597934994898332787612399886057776738138079078837918946327714190014810284770697355489544292755033096985532218597464048907895676157614227550515351613919282289661017402123670763669653162587473635798230992806568623356353725839727376392040506047639607378894181486184351933824540757864908017273201064597505662999728637369402315662020634539185767176665598325717629759996532504267237541787123215022315249437586081552537059918408969745873874014814898728765427763094272787270734277633201009434383526293402394778007047615778153514253304238406275563796446058638881928895215874959616854711689023412330026506896215817258671273657898039501719745788380571162467809810930613161348622395161521937517013038468817647872241582701725225556623905069306001390807222361594025933468455057257013370906923239795122141850300745696917104514962524133300461854506536949012371465445361920031342017447630077300936050600928763342713769846778585233653335080447203117474951037758919468489164402478841815298701672383425696580512706750190409805748924853109023167188566857336184377571658820689302420211248838751894793065673651783535891598035244434451892184343328641232346682103094233665752900089336442465323328125677172574202803889434600397341932035194928075182378035573509386426857944585897670296945584882506788345765723222678191808933589430221799483911891440633998394824683452445882893460531275209328335433066112049843759221115104144336175392280343487498392085509356966972683372156421803990739809735001302095437772598522582454391804613788392514964931061176056507869704939060487873779534509798968133422036968097099349114866755744229901482096336536486727941514052618875905411173004209035634404037726116440297858909966810171153875326033296964191711452176363679264937583318728053724624825512508516774042870290289830122303660267351099470346309210135601254557473570864439249282083107394283303392829529823754550855342315968413722196512011904090269860432515044530792487962401287305166066711258222609323311428942660945684136378022958906269463350482076621986211245842289285499140239951973088345945429579723063717792832186324169751999190738239288604616642464063236265121733202889559840606638939495156723670358729159481184620072244328420004180796646599559149616289559789898549378615640211896362893689793576134718071968051689478316225166204928709190695149748740941107977555850975311583056233319793912081756280112846980760350549430236070371506179205766722950283531262976182013831549499001929937531365356608429415118594083873990708311322815516669417459603185525112578430383522333217766127531031454651058499035511588977419792579036107309363074481657685797790188869115413609700488969130822043373681001167803404256933505339144582163375041378924572731670844234191539184084107508780587930734398038954617070424438843442849565254720501361991333128621773531448216723428928344093230908127029914312440468130058817055183292906370706037412452030940913761504818736108775190400021819236515321097694665191649249326860730529126338514997288728059136696455827256169768183937260238825309220269594918738283617277287023745839033426180673185377850046449383611823464797362788151655642469499277969529535948136062924541111694969602006137161869000015920341490676833311805476298472124547878015756323980692241660216516139443828621899265521201196984722527347282914692484270986049333396146035491353965414952363681238381308891530558852016105791335933321236876992610268970928513731740126111954105041574539054091133908298166611404390602432192557675865583464595293680922054635691551768075633636610505242552750247970099445823628268334265470347677850752123389915917671633987971580043404643128382750809639897128617995389528798473772525798464001341150127879828239897186439009023001526322251684503579790559394556023170263825049454785853862982227383631529820210727098351472578159186100741104879466462827783024949702220782438757009962634693590571570113924511958130091081555121995749332027340152158332128847182642536308156201565733181838832839144802324853360584338577357959984781598945675221148799351790181558308125312217763604756879382465501950557163350763129042171360298686497003086444743621472390558976193908104116018661378240123300099858260912211900697625389910397588809181694203100443438831440905225636259730081906669463907563024350365986251924001744913582534297967516611244408884339311032498471832868490297917338541780130200845806372897127651389351231406742194078744483351438525644093068731133708497739162672447296473573271856979745799518797820042543140142484718096269372944734405012307079755744527311407462612342057725813319772920091912700617726686323624161313144202880405063997473211438925402965052363793397411245218217773684441164330524607533995201459035743552005324984376821039232775531260809754989881824173592979511220694084940143168258029941536340726569030783781533786366363348194871813742572790297052597452065941135509085637249538484636124627326402279530673113160685713490870185851379893293529050030231342127640679126924717470294893000031456769001482839015623935580448120744546231689696608252060737725019596901719763510874536398999521920573796154734259212447934775283419129428413597402992837458086340608693064948722901616886186936476750736039235346000165187838264180453060227755431962084880031070975971863250451141199673069563320071427510250706723159614659356804181867530876239760045830901232059641796159089372207244379732599983328056145365970926904344250536539760604033488934475264408422309415900911810419695977812392132978117506302465425369820763297065071924378892653254051307857545770821710203535096431459102127468418674197666207633633967078368215980375245277847231703383540082829019256749251537424517064941599410956907773263612722242391327769681400431746514478018352935997070043742520524403402454343934620646366738774373898725843745494344608010239550768572137152323572938910319692563394183977631296243033611623502986704959062194356586771453073863950278152334152993892959138071437894766150192248008481251464212018348892832334466592123573182720671574220945195966919557373865964585137713355440719094646339732666488664006358316468389729930215467791038230688048585234212457369217369615782000509982707025085919559393565836645799638259966043699634912591920210164317625199180453984584347976909833865362203132159601539041901304753843704822004839666110363295124817618132978943193266622687679365375840774895429505266314577780860427033493529914903744457461869838263882149721642253978197355005217949039212507305279235805718241900346608073610483484179192851233628723885483160260025213327337906864025945319052308065296224908604379483000708247234293018370457085626137326932052920043814279274824955387429301999875047682337953600420575690459502939909580616426926626711124180232699413075964394267381002566217159712206047064073071269442716974578402925316724798947109994119134947457122133348036882897791931733528148780069343659438194733310734501192058158926522958979631498716262026000846985271435609357464942630616183896056583231336403361178235310812243397366807885526104641409018916287440129306577910190123951551248322361371645376108824394404145317958284547400156220389487545916461488755086276788494355042584249732407790609875518799758428425087501606934793378964351513510960011915290737316174366415283801445824478660588089755003524145574403337292044516562880606579244625997460839562485750714992364336345335242098409095411362418518980938093422895465571939448400624586856635523055400902246923554278988104876299238164205935664372454841979460187806223970341741397230471436297630949869895995707424147539847861675960551339278142812385776424014868182909902802585005976128899449220333703827628184534170610276337149444011274950046835434390431211711493996438960545130967343577281530310281404474249360732415057414299508324970678912296541422596411700927571350388862422984067745467917727009817938523851052447644782176150490966860278825966392829904591852029462274931803667762771423579848252006866103716977521639187795826276600740485318595328703835327575703482949603734302402470038352291828474962638441318917379248444016032468927004580585681701347182884022502474689400261662301525301964048707066520992920751681393126918783511967991616692060246631

    #2431 Reply

    Jonathan Basile
    Keymaster

    If you have any trouble selecting the text to look up the image Jon has shared with us, try using Firefox. I find that if I try to select that much text in Chrome or Safari the browser freezes. Once you’ve copied it, go to https://babelia.libraryofbabel.info/slideshow.html and click where it says “babelia #…” beneath the image. Paste the text you’ve copied into the text area that opens up, then click seek.

    A lovely image, Jon. Here is my response: https://babelia.libraryofbabel.info/imagebookmark2.cgi?next_level

Viewing 15 posts - 1 through 15 (of 28 total)
Reply To: Image Bookmarks:
Your information: