43120878523543332260436348489735264726225522037517057071201831099124441650774344354000030598681808205526721501489009002948356940186627102641192102739838840749958208162976947141288161359345318754112842793428296374439440128879165417976843727077235136585723509109261048071537557390781149549463873192515503515617922390730074014963518122331619406321106205420773811959002845062926035120526553144054994737186459319433177735523439776618682072926126939265237846270228480812380876570887468405768339491989655539021237666592373770600171473770280900050297217131252287974612021557460159848945731837802247261229888186149916261333124469224724167888454327779891926044035369325036014733037690117941069662522517200931575731619782165869647201128064794933619582433308421895458857686515681743830385546426980365469125565112211300420505670064833358348375459896512860217503168006635931676541757782182408134910552221704378531606012469532879351649492043797713517697984994694460758747803679864319256300745665073946066650486533729148232015929873437294665156798581597381888649566063138624151945373091759475354863403378270598262067936199730301498189346033686890318862515407560623874147506894955518558140941643382890627390612229791259534230520228685084040600051344448065439836113661310919449435889316394210896546313438360698112580751191997892031562177991889635173709460709913222230675667589501138564928093543614832669694109609837835060162809043232546617929387473835404568726497393867721037574547589181441070678774540290685993164604714329617056015591922143734436455307227111555980905107599077101644195081188908391507827733172364595492399407716377331284885950600332675552329778969745713979639545499526843125423066127538698030105302755560448966458847149466614190624937548486708285411788179073516203081252012445042378307912750603788598605811219236101269657182023757049214506772559189880448181934224479906396567199145008136726832763588328700798256754228784963646511749914761633857948484910077192539462708405784217621523069077326010635316778843074425910974402167318296116646186579293277469996303835696224985367439924209779664029344156570243480533735922890903068904108081133405894543893808732894084334759381530065104484935331866040124279619762200630812413220193762117651099047400743203083479106209831373893554554680411245233271157940784547606904096294257334285452716092418876923009012992106103247231196238466391229346863539843536804606314476572270304754696864568364576891979475224307074935488876039610691776076310872865885437290677587029986045901785984748558896726339337692800465331855346808918249663705759314459973729276556990109382333967870037127459386787066105080534782796926247229279907538861856612235383688626545595225549295200421357896306794883881038583508431957386958907420949323944686765998198328841156507480261560094785412915047497843666546817965876933796208369819764349232552056146436267337655929851681381976567948357916400887197891452551340747976259437123993017061538035134839910347869454351707228806902535584887611010732952514880133520475106086375057901164855483022599349216774246074932183771613519009732753729891156881544933086295503131715160158527035921488931878079877070050641571781810933681595722626758930160038722934022440160525617718976366307372220858064647996159835429729163352711477204742035788122037327037349675559219763793689143389204322839979025820774557596344099951091143923071415295921571424461499809471653335115443342314311557523437961067049171306337382190334642564089151287843696124927697612038148115206298539965652539615357273092582291197790701924482631603439869869335572239314227015330036761436510298484263082112038887521245113893817380130278868158953511037864442762623509256816581856667085538170632863262055612375730121759893188048040781361064121017219704157759035305616707927704110975997007874674232816284233767043221589846552982407600814582648003236351574508424720813935742324031238446695430218694352014161060974283759157147125293814005393474291958418924721616831612764825893362779832884506132310065138532521544423482256986539916464009616356195293200767030935764253311714694376494541643289007304299680526092564501378048117873632691366420893650786075697966564104403607979382307990209631476308802021605998979885129333357316086631251760212639624224842825426799250409775937840891235742626007234393006344513811135125497605316739286866740769720939828438196778336426641357198629032776177453721707257216310262512494356462821776866030245623157743966046770243463006635624119603453011757679294437589779258437087995360986703661560817220476514647215017468168830916567597412651223911353019127840149787881719968526208929000580971298312730537693260364673911598929839525499926828381553246936481237032369904174577078442675010399195257148542819837635014481017148625597691184718416566162173570786448442052822889115345313690816291669333476835838755296574868573261293951007711676824413732380549300667596317891061308966822787299830589565086634187067384907788649556404798438315102583948822192272597391727332391944211483407871064969521407855440153063177856279995021765140031273372657787619839925357992288287813116346632859318937238005165153968596782128614259515963524816494229184188566780496870891009318954968327619986197619715568160283686103725282213943065799544397986771959035200438756808993257007548611661902075047335504562006265940135372598362034892340337433821156685687140417180174737276900650223247267043551780694674165403813681923435422414818440294315812708455799394398445740318651418003181056272822094111479407257310450805622325415129447077107450987474586647195698472646845323508769570235964119387348226933642763831959039652597611150553848292099421403734638177298042816271817466986601332103478530170192473675718860030834639125260245748249201842968506425004580404371985981130435898649505047725827357041174206386054848026193607520599979340597594647739163817618308481443322642879501065373683428698587436648287068362991692917158651940107393631101831971852202415250923762547953297415070366729027480056472808065913895016158940272294464600184115452391299256906629107784861168300450957179238071725422784422971075897811045974104584664059591688691838278675195482747845977067957478882818315128433694731013607634171219050945596583207553662785100223429191940103308428279526941937581907812700967943486779815100174111851761503119218402858977758397437523301674487533514386947441004580508456241309075990396335823696155696065303752543449527934905141843608343180704935039622244503534173467933480963089187566905304763412865863304242143690045296584556792804443842771563428288618356589823683416140886715303462205270145542809130839269147001550786608370236993729338618041941981823222431449098518002321961440437716360962783153072529800607434251770544506389074119132111661760400004420360039126426485444547241564109118778766905618922972676447206044658496328030842414610729566361550218174736431135139211960800135261431314328589815315856030702300879255840434422253911210995464718131786909815423306222286819500558630391146884256292657243304276859412255258471875998972355866162505368048799878563439022601552477200424435115752920191663396856001782106844283351469968268255534785365929538719563241927287141108737705483098103088767717304030538355372840481936883237921172302815219721046876013880210253029260481701319257862518970505136145730892401906883200857333883630469487375595294651178174495286917248378038139305972347098110869243168232213471874523462970324052003674586313788128855058580362627470763750041982586558536401968815062501617352949673559681809265842370279052004557512781050646454303233986720451960954111462892110074986847616867025666821756079857087673255669187362141205881619009710334440461788207883105009320630164847499625557619229876771410927095954417349961279962691215527788905654669337679469058679263573099632323225139983866675759499290605518469708077008088825659978948831590751109607525575649658260789182569660384593660290638512934762621986525952718192148648918646030551767774013985819149775539918338585972593671419710293003705958514957087525417026599988554472618382581113259936129606895972088758700300982383924591142444235020870342292099627861713002356526981271744764728819152597318250881485021083124829967314358572383920485193302925466953705511220389957048261316845000360440908037577696288009065334063663776915631510816051551593942652661792616708793853786392420721190229887381864579760286883825796473662317170059749467774279657909535616381105703401955513870970702769891641212960199141930727302865677734244628329060714619378792657379724960370558119839790098923249690185527859871107245472352154662968736961331467302658523974308473399908506498158991803353478397221912824843124886771337961286861676664954801438850651519838952200888248385957453123898852491063913726190749545143059513666244524110962077604820692798133392016585868053001514124876119184602639171021194374159085001945744271933516834710168333659918051743328805448197262811489991053216770707131427307073682986536973333470917733336560842308904429477306436916199226396493392537586416660186027483782637957107670063717678270472401041099117607428103531663339257716327817974301929649541796989902182872750470995300243563401904216878494752148668355703145845340495677391394887866429641492679673330292553329371527896301099413718721980872162549245032283404000529128979702724533748008017743014232885468282169171386101093541030792429644419031416878467388013272572786160641335502279433373949297265947468571807195082623018588903143450004633041633723503906437167069791366284802910026316702458095369151386307132550235649797375828461218749506022883739699162958315631503883545270766836173810774106118016660022983029264767363060264188215812228946087375124559025352343274277629882523111202615096008059243248108130688663668420187414826678287074988545641027984258085215482348489367682817804624379872088874362178468173665251319928278016001972152535269644810618000937267470445372933082924956405961809331350811497041003149641382948771457273945984058100835368835480628325183335395159198117416123724255857669672676264281943726234676126710129848377787704569692193606770627142942303794781210527469412891806376902784625989392765687219119292250325656245887871379262005940068789742233255412913872272931948908263539387232623945328411005645100487093488235302839529397636284837608645658351386877766802693300799411647819155314113365506547082378690597848496826923050788522565413814828168222316148795750400731071530654456705520034061722483427543841944685324658177677629272484945497474163996197311843458341515919842985978293894415282332979239757495014627401125945910111406037657949041487698295142490776923295227417926950908966988168316528952593475817038448329887573224700559976727954035521567936955829570365131402146435526070227719478336296774887903615090219468660679506876301332528666587026115176571046995452584776591099408432027415206956500581424245852418335968316015642662486845390376633799845302340149900494515405731364003938388618569626105436677790440865661273915233429480946548458515479926660711820649036899460151638634230416430632553537465479097194781348868675651068502777087467376908045896158660931989085405348732993093248443605449443628756133545159450369220079800685567779098089093870785846653998916101938008779558353978668562460007163501849913970822076583393421122276266207776512994513940647385104832427329557072983735679513618381002700841777393375953095394452956788733689563562361948030906981179387052247755603765855571750499576715798315189028681535714179707212672928831635964068312812072628135358617298794984294435568402465877483177915978717114355945655486220058100234520722881620107934228246504473216635131324273374789809628435797549226255189740734274669119755688161378337285449791710661998806437785828162315541209348727357179998937504779422449490988821480029571781035163396342162017657598452635854036914100724173894384231574169347436431804676527241724720492644902798360557757622517448279716588200155561043097392932282087338172497714771106438218834330891242029989972995805760540789071618298398747986788378283471048455143625243797442010898829678828995853858949664062134449104905111223185520845104319665912656572484569906625120993817974326484793134111643044487637906053719668544629047267555789680130463375626733888338604456374555326041836877199076440432196121798363985773834995358547883162742945099195803152816994947645292236661785287114450824603228749502126358727771444080193093548147112978068599810013409048906018738549413175203137475518254339834494547080866895776484810709045998387418211802708879180490924305016540715725408256426681527100493493305377684409294845135306534912551324031442660171616217475929121215034700774548531834772232232701513733424946699244885304398138559909060165809567448502413977698433656536077267206246876294775351224071834836865367772987453840276363946106302478566706710455800503017902547220115839566903196725040944804989059785675354272869938147405505269289381222428787153506614277434558558765442494493059258017308268904668104520878137249616817293699463313947274610176985166781822957244236688082314244146643260356828377477435360684899167788712466349348759530219813328281666577087670429116369311186109197997502643007997729047459637676192375067101899085105816410887278287866910928280141932159906602072738108529154372407592303390980829745414126237224888255199991983904389245083607448119043701591278950687805770499878634179800295553789386790092564866502303758797952651999460707021849826008945480141310725583694337428678600151633561507088132884466828470916442819603787140658030086247915912086945696362687926691082471121453503510282716962214789073320553751812120749884488117334993211127596246264376456323459221142552205996389856314227192536572344951266639182917130431506121706140934106711243239140551064860841367326185059010742968016860487785863381492143781119107199741230863136169322067760331623478779544118375345622460643129546914160813410778482697473963396651322356388303634989641901880358413678871603900316097192024124663265518820029036285355252937294791699586752373447246249172206936882165463392633772812375042995965902396849518493156360476314679504647784190711042382891383284209433756585942995885508844673808471321439920101816054797547713703457226229427682283367812567681492171399844909815953277839158946336456660912094807545585977388062235923573600399667244408085185299280810617650100547758556349893004010057241656172376464873605087855665522045358673220241027990613867328089643766366753635318011767272429809767056581078258691571727615718028993970212249083232177149414363840295205379536220932162740797873952416786614986771578296432047859912760721288134107504066350144057012849192292510739033371249108570345210699264739263022382566624616591727501575441560962875415754620752599606789552321910819827101972248798723192101904961616064781066476468832222750498508644711900354009295971619708058638048774197869632100626516772205118832845556133939379810965663647622721189300602241237149391451632207482822974830174087261519506557409148174153975146414695415344012126833183184948688160461501196418437197945493708747200461179964190201123940264825653459148324947213090184424458671837613426036860926965775545224615152050994031349815968363141285557170406986422696896513036047579294043341991319824855484407310743739807297667886246835576783049913453249923176968490975916935852654758835097716512103337046098121044836071695106087037373979306002488774448687039107045907321118530281213587107511462885801300991989573103054240666739965629590796191513442952800235125375807874418841647540014526307785882248765313356043370062263062886352821294899424697695313114223520064875798943291072800121159404585988890451388916549081560378318502246326899706298350558314751079678347511692005494631478285734856257964992564283653182728974819229593555692213104767880999142375364928215346306401086378281494517691729514603645005426582785116928931861895579918973660944028866082659903939371624658162155773242946358379993294390136271500036135401821496186546354138048136856315305615518916687722681005163579967360668163587503039873653929097837926752901210132258413802375313551872792934122132458361692013643988551309376143081527890755772279938332737012098500178742338230175127966101764657971144836312287432222429500053073744977882140105662542914529621504980103836196063138549546601055191893919006449329989844547570760289717815336065695461978814228098619956136442020113242551777979853101470993840883664345148549667035066586018778275830457469127433275454829663457361550894214718715760440010289429509386512997113381813510618641860800242459553635512509520115758246566982221523687559425833892916181928502003077768735708211195120168300825907839510571250350715983586079493777402395838585676669440247561193850180306575858644433378705325531026049611004848146999924513013933601837158331781330295264056582721437692036949187335874306054623756862155175839003709727121992092907146798927212521971992407395304047949921501540117398735705768451876248296736781646907062424444395774624253839755260232499809995834813880553546349678138301926946704193335139926253812870731261727668795563983078430135435937467393786224951009205240203845269939313822017499091573085050068536348743511349569859621253311048723699320213423558601160265585016841679913619592842061163560861377476189551254093908055189862187602283463781481741929007354682952237094544582048421936053931454520072848505381345354716475658331506817291105312137967858501931179558306295404716198076572576690152511893697528525289420123654543319713749494998218630686438943296608740470025727321432255220009064718961575021801038011460957421695780318590634538698748176620148261746528601325451582179768893251657080964855158281278727110267923099452708715161830701324021627549480626059235004083632036453589892684656365004143695152951905481402142111129932135943959437848497309788716163955397095007017951774473556169434858978919209291270249432793959251626319627117583852471488925802886543736740132312092773424470460464714588677925578779478692562970653025576972125525412741609624338542086462211384980576323829071508824440951738200869398449845378335754159897619972914417607343981997606742240370332803925020502499625745288610221238876462080321950788763918214834356429056447002111602581741449275286240736553681196439842005069307276585184558085840565918388606571385219691450117774067945667971180891871841742450284921368403164813582766433843372473659813528050792199215522170344813587382317053681815903257557203937854599810800286909835827401480199769283581260178605522754704936699566114138248763271181050798426477822927768709201057509358834354532917023502072871623722937203594196921459060852912312778902092072331301305599921103089452557749446158039882874007862068027529865618557615538913773644505094550466056681434793539641455419290810517030060169266658149832373295130115147145729218741937389670422561273897352069918085339150357673110028964684935399272687282327239086325921503953265940502911458961626554037346510262749559454140674711997780582261184549347422249701659083306673403257998983184258821339530806163079448912561625336755711094822687554993232785977364561551703642933605858193758086538359135759137641391624947999114459555247724290029157335102900545710325784694001495535481493195878806883980991921918208586320752855588880597125337317336465292063445407274141599681084492952409686762025123462910475411326336421913904836882374961784939270605942465896425185951214515169122753277106748068231643379952591890885391222524354309125636097122066412188957508919298607860709402611168567341319611142691934227118866375274949451190539214433756347744732903058049030753926128106859973526563216355860850632064329410270737572641380164178014025388203005016488355045223286298996205994466286868244231626768564557218482388882879678471394429011310555325269387974842677846622648762634013058651384318291669812426284985347712018109431980933627700475517523464569157560048321167198044118164748581627357902114687631048835577651425228517713247493178233079857198471463936745917720972980887628228659249974386423529697584208319014895154715325986100139817680428075826798666669663943597825430308056767236809723202438849537350900203320425576334840552129207177206336690910473152285812909629392759377215859431260883105291923194858415428471335826904976811123230602927335486541326029011018204750452613251530683251991317897228121861470166329951497552478431423572016321297273705270572406731754100725591882683488563559568654091582937443207635342163573342871171244664877760958834661355080385716010775507728931624431716914574168296029789445961721174920931065401809063879713205765659351207988423613350228054944061894145291062219872833465362524469084393191227440660089017203560318512852450775661436089770222824160628048162638700228343876498559877006202750644868944472814825402170190510742604798450518752532945926573795567231321462604647410286847891163796020447730256988467843553374643001026620359213465939466692256408906848372909924802429464074077256044223209592423013320627751230432147882145796351995069588207822391914657025640299314777139822873962910410738370797844889936158715691071812172864854564209470747727026451184799908670473950872745398913973147163629826986393095891422534369780558181773861382151580725404993587796836733324025785307170597345304948398763125778197162302019833512496006578851225161972578172180233096315938378016798264588831343556236055050069967038423349735336327855295005754071900099730851599372081760223087631015398494724359525140980163000024515468337581840077698217650251599127840170016288556634004559573996995531198155617572667975867196720953370763116631288894428380772777893596321020554678094288753470424342579931240689245912306720976496165692257264439763056291292540048070815544453294335800233330627716275212223106018599865496467627283198756073180775768572707010596047558075880057933043765373832840917941968724560677483239246147308359308137183994534080893303085954691212194166085801864877777622991312731740163593617285330139855683825472213529932436389275058037581877186133265586954415028461386535341072067564958529176500056051176443383556948981729522517602485695096564857845037792313022295921916229622779104932980036668793968396496219256755677583809113006727446041150373678405999654459661362742709259185145927030676173463670703928898297703522154173297396288199623915742476752340308036469355215574544798776113458459338755267659271227076051871629712876892154464900022329304945895128358892806700817942360547553566854276635492929991412743110577786214784795226359005975993240644479221879509946177871306361975205048279529216272254021854932336665155556859784139856384002240953476199386550616485072551753275850975611554803609842082788122360262607534092246832511203978636349222857375879774815109307017712962148773996615417821504681496692715970508598398622288999319798310145901653667795879405588255747630612766065106790062200709051408564965211503009995640964966207680373562017682247224988506717694821011802102818204203024519129545348453337310257497521701895639523752577748239822158806553277215095995866018713656840743787334385746735161032617797393445775140482280583328031855164176948429553498456796316796232882508232033459306290366358319398276156456210672827109645692396694005268253202187502198101418178530278589372273024537949032504949675338036925081593653538488655049133169498483591614123142897651549587226373200068709906885934373799123411391356209238558449586419096262750032664569616059494418377934625320356650620362228196285170215362485614794891086163442614086033219172375991066173483351397169800042368092016595826675979376578243625478819299928796135706854753848604230500359968610785402765320685419840745106643500426260080862436474754283036230921136489134832878551012157190162712009014950937973223601165480215236733590780741733538423079538089047605465552881651096102466659446244656863023161616416889228535711603078616652924703963055007434312072758256425796386797034502409231852688979425290879554110720179585353195144035220345153226043174877491565743169070805554544458757969327477906223724183458657826344557539982407735171354061250929546462208860474329122095816465977875928007774077757128450510183210833795485575741397598010717068199434293751771540631234969590313607181295287177854708124701859410421612262501305316887268827998231406677623011379254263988826590585912811861728554018408775992615479428610899608393154975216119465691376386857384934732031469407615301876058420504245930601068596417386714717928267584306949723024754715296209013303153166932834541348065930593061641946740542221590165697203102474465769191433163155956361044523230206127095094442496890257011172638080692813867665037291453959588019264391073792426523399009146381813123135235254785646449355804730862843395742219613164460637313997900788362791905494445886968326184961569350795141013610808759401135084949280902673805615412629060635883381731710896426035923780050556532648870564397676424698352733497369893449227998140737958924626927815019618803839960251335438023600298353488612463648830399586786409205532370605878156938295659654005857207673456438695906282229015098533497095899485984211407785991854834638173035925078671468159643653347540984007243268615408085236735362354765429457817480157289945037622346339668189670980957650429994231357919828077237654361385124889316881959897880802522642420588952154577459648451876793810479069512186012250487181450704986325186311707605406429634913297703017188994790987125728130404633360634870614701639966241623575760061208424099925549186060541530763071873508127974771320514430558925226663973016723206830589614722521604642438209626554857240561827195644868500043398676599601918476790939605729723897093953887658501949002879421691373792128802470014161793629280230512291042492485928827895285377124326784954217517725424462112025618705205566648689448900830628411750263959391880853503138182577469581433070034995946631127800067077299483180788372323364997636647258776951053168317842079855187167532554881082782874613935854234665646509352078864654685144460977542254936262430661711736886847079082059755583652867776465911821736040436707115460181662969396818173905322946521468434099523365499315765553056696187506160789937969064318186207534180606950927698834626537717691864336678167362195464214700530712621945697119825064628591738824258600637939775368998392547476371411070506258576118212809549293752419366521143275422784666867868437073525163322035073936018876772754598570711113804933164416428487419840462500252867686163805261323127368942903561188738105740390523355517003660114571605574427506590670537403518384686741162682726454681109111254342092785932373941951498515394129406848664358894231818918081213794407597947858579387679162085317124481238641123925490412926515683110192172761539717187234528919160828743801630205757605083276412501728404619404476483448861998421690556388323981348565367782619609060453698942726549959062368950183336596419393670710528359015563415026182428246038822586736453800818779096230911428591008685505878826829002848644307311372199802074583811013741761158735868454171383030939064551005247071973519729608862207802355346613599099484694739244792917437487565810937137200489347435567927089690384883770088842222759269055302232196504707939053315692411400030245187948846346283582723536615757389387421621616714096349424281253301050536308939442141834145335886208495289824340990303497807539256907220108712872647211910327787173342923755657122122376988222669104139075183807389834205605170157535979938149015419687494762993003819642029639301046467040193555633704990227352743020596830364857820812612646243835801581955860941941244790488798723947494442227834524544842157913160215641225836856387910941070118451498408499263390662980195970033657755251964040372038686434369410805546412790873512045961286270597207581280271080473919349540967272656191822297862846011540029228906977895435624621924532107596355649879336139927588461116902555977815907591906716696977026579080077367096708220229679462794619740691675476191421577023122009660477161607156611374080961426803193689187405458755949607413155412230110111527350078652063690269474929982554031008743652791751956026007651010793952386493631257796580025001779433335836025529471801474739591173795530013067466445353284018905431352908540994756136748824971146007021355609643467786578376657896777399980275893797545473790374636993354336398713041933574025666718514896973006122741586112762394974453599113027034134072508663189705757318468199730761365571442168145490616377539272256991203695454118173840664571884305431221602328611445358366080483329149112684758486786827528462930612264046052427873301518194399231962189048984734230565674331307659052098702160828945511480206565176486415564508062808898775434030086414052942007422191397506668048533929693247038659594111167540828406556247646430057378213511403525683541042866994897970670333450698483927631075716572475804748508107113793771056114192256982709190468963894307550209825061005449259751193080124644934798792029516183353564651965619289379667651356963936471628706811967509977988117563478391259063576805829931208138525227394799798881166539670935942811525971377890167109099976552041318816232395580348347205712293094616951044979685686856324060557140246105264434520388796745320820266655282033797392838375384930411891760759508008811034051837330653382136326505172992719224195618538175287022641333542333854299760844860509674970480864315691760167118668624328422917541119420697007130390275452498518239331660669421529604573730006201796852818468935401791160106281241683842835841537936333172562662220919432973161072975546073103128988129975996191411611162728735222536509279932199362806350217513137247058376170882257310412044712316541420674926960355810011212875129626465231846711858601923483189689445127137854169555735285558365400704578337592463638881598945178447834890097778881255662622226442458719628398823548799391909481467754764991262617479269951359676796251118673306306646464881366230784888564634189540566905803533167680617912561776864002626624264648720443592330420736568527763871710725023827354120662917607882555544050796362743863072085607702103570225041274232801002230347872722470954185532745385956976334988730377493365907372789363324615151439688862086951711089049856216562784818209328335060060840015183343038482426921354511191967015342856004287675520826531047826103501248597514962953988173522152260273832127298787613029118275522693476044801456542256320346218999665052438281105761763321018767242794745609574268665339254875655354236080234279631301900643673593322465422722853947152949289484869425090077407277557849018242726754887370006448548242055367887288861038855476329130339174902592635877851410623625566967295138190536186048009891587135334449768051197725093523778073036435038217149133994971089329160167747524466858108423315863489389987681916418524082382680961120587501918378391505279626549515036792704132824293246431533610046013820777216170932756205615809326451145672512485500477672890706452449464218420477096919450487862995139426772898378634079743559213067604641012455437298635883255701760889503992615475426668818770660431003761984067897807175486613964922108144678699744627143015174271492420426864181841202149079443237189755851855516799966928092320209113040995788622053966728154458740656223783204773878543369425253695392751917670960678903753249377673807183840352527385170471434126746727408073211168664802505849061403030779540408160098826533992112896008203104189815098782424523265609796304469532548791434984149801009286990191999833946097815124859770121709882851797853900667390317170431813253276952030315294944681741578990818614480034736556036917095353722327448776234932758295013092218615109233898103576387932185041027508740273195587935565180260760567242012898031528060067502442554593335425612212328239129217324792229262944661214597210281007386626607440386334414250132981470966300532906037403301585851000545144634589047325229638839203234092055327356012764962568996279199950279490161587929650670561978470052913632669076536123016510738075770078741095895515697719250904065472221574753849771024241702395335847197914425985993950948284749531257306161580899448440958434314306576713660261360818018459108736779267679186422644907917452296007973726939704189729408925360137763451294593731886249146415130972312231910204681018003558447473174194989617262984457441886513588973711238943512514829500775262439213381515729770261867027941906690735656272021598793155518329245125741501908051507358027578323334620280151876472376632281943767389185866420908590723238233031296347227079098728177417890447691365997354538022236249955356252774502469104652513437196839912333566896233593362663683777627509252120963176418013394605148207570227827939495482020515929951681959832997862214799678822843467230803172713032426474605755512256057054285213365294300332306973624307759583229318136215720280466540149063856025052014231367457154541795805433567997792423943558676518797259738639925351706555906096283438573032438677849530305765801173479428102745418717563337862778496746136650812937479940774104484542345703230746052306279716780913178918403721784664441387107794422739145810675785303956914557636778487179224011864473231173588811740875088641646873213276877324974443747997182723038917300771113275275592837478025808338987718023573897629590536413748832745908154451355526414043157873362275162911782119846749589630512459791867345312010785753999789437431061758613990618248349506034397963328266672026531279252951486342122845122440221126125614371142065226266667742353249441992722917147272165778086629738406480415858075179319827899041182049751036693979911136486168947521630103483157586586171341027260158586412468100010407515155012776654526647843386549324522827811002839009594210102074099836450254845900524604619301768338548209281613349839589733754588276764648298511239934251892663552844172482553472093844478258602799239486271989390493464080467951074982420713364313240636101447458882523740990188780142459683504069399634149334893895587611538360952170292110134954026890897817758155863342149219869168761299600264632966884656822911407559651728222625171134484208045958939974093404855856141179635461791625878581759958178124435732427268782842268893370882808377000570201814112372801286204905774982345283954266569654371930026506626744797383556685561957933030769096183129894518281850640602760325368399753809893275079076493446919761334612015581905874228865827909704355079974781762641953767556117640600702895584917900550576722610996879847213361105270295943975507123308919800979145715736903632231977489248863265216077929901161060713524361738410962679145071222226961864076849833840325408923350755471382044574210320159704572031361610024658905409985486289790109277782992446218012759261853004880485091738730589253719737643988113814976818876937117117955123800956470521023769045153129682874395147230016562334275332923514205242358920089692858254676252522152212603757691587735271695302529509023944895173877637243624301814086745638619629909042115918302584885065344421238857764658332533632628860478135569477155296059277271050384806364127363535911039845657619364341619554872619212600762346301421024029751362106660602880979074453291728672702665147976203868059698042551722817715490473580524378231996986217348940496464003834137075554246242950275933533853382772879835677241845668901161259153922972934625859916846708170275320569582237227696647494856714630070786607269796968360475726149522641478243306196572240462758838772116272037387387575760762520416348340716325175725731734235096885864758233226881486795713145791232997042008732251418512974874501101215024489353743528154957244212744235320189561016004804964591744037033139857454320837685751332162287910153782494632746864000113741056368100590932122997370260407592493606019459472857576745897012408492863888137767343549016213582394076765951648705581042262270626402856050172922896763421634817087800071834255232044198072209369192851567750419685625317087809487323070501139590278973292166829389898566442858332460458074496821200552317472351887962900431233550384729216327079547300417954482066976454152809015037829259359323603605089003586930482232465125646981325936250866078989591599424042782717947882298671500643229799394399652397276251625026330533819718748732302079846870536493983332782010552875954450848134610183504796468566600092709362414608588013794194172402303585053482499313323185665244636909226831556771873795819251957094070292766866803218895167056446210083832344474035076796761933926365673895263915007041763157253341788378597470767025739520052452766449797729233074594083371493324994878705113257239641376012605520069337943966464647587793822673120707315001001220792396768182107044378657341338580480451604925839393315015760099086160757568906267295481088778063103245243000845172329335311937005998851823451460334482295579991327597358797424200782247109567048403790438513673852254890136351829134541324414934897643155545721176744789829298225809720232952905401236281896685527064803356839757912526040896016718459277642438973261057449666646696073359054428650014546883675671721859687683799218750575307558018947673094357767291596647012658363758877109007981567679671299695072111709403992363459164665739901242198251237076876793325208123625043440740546023204129050301001494902121383909342149736464134596444961132490777411984024831033815980792839313883067669258367735301474871744925692795261897054764377038383490093358154735359542280165241546041740751964069665835431746756834747383997926828191580563809178479816248761304914978235861304213649925259526712317141676872651748820256745658548102759362791994534693350806582485928580113482064802907224263613006663614522237976063599407085970585134171280219098151198795672320420865184009410958868948093686365757709244650977393743817152864743905103795135769499571640854278908203257185025604769849278688685698206664914593489792055742371910508662845298839643019740701315815158760721283538013475081205904461863941079742956593244315677581654682918521396659794792595488658863929158447708989899592195482758794219369116332360885795405005567861810538500057684283107689202440308666921817627519040223624718587543728099557202721921351200856068152907759066595277846347813298092783871455613280727701882529372463945505499658471373934419947074780283041266117248430536830241553531531340755521173348472410148697489610592074520678396537899643595856300556995478196095231865774438717644501192491467908425883673435259389793408225566096924486262172475779751049665061679011323654200221566897048917141613185380116580655779262627651361321857638974355041731170140884266726559487660067433856431465476654846180088640696844299917419657203456274354734862165391560244981921948072655579637175495876484262906241840347300274195025431482653269344078920611572828203047663408876823029924212586486690321032643217143470768820690275260495835442922582199315863431834956876750109242351816225878116948087727762237150917135694896461510019286142167792288568100742802638018886230293261972546682642981644749108739554277209159459342144324583369031235509094484659901706184443730217425473617999351094748256969204048845734664109842769228190625218169260724658172415662018614062099255453882272490751935357740625533130489978229159607587230528035155763193625848753351957027649220026763528241994115880220388757122881232280576071658334698088527241790140255595256945667868928294380002086121724592028741244654777861530414266358882028559582264750406047524874625958045496739715915858558047266081218467756324088223174183018052044876236310345280579256929042364577989567618206100690562088277582653206665927148194439621476595545491299612400896610178922494717139390230811305554647278537136728286139816956605229692164862641753733278803343298788923494897968656494250544996446610970983929370271923254246653023753402321304079418840499837473847320950796606459632816652159760433554496872033570978280295307410817819806781414163133769618421580945396506283595179722332998100294319030612537583829216615557740707560053538754773864011360648653095106533951132297660764881723339911372364053671199742093780566038325887645305263469313270606790194834532983887086390740301524696001329668378919488382458485785854409669375474218364354303283124022417324914960285391214423042219028221364398057325482625033861436293492649289461555037519705749866557478331497690463676789424850090418149248019368409381038989786489214879701907147899348659161852236760724183965330772153430074621427657898775295717289556849278890168621299143175801813026583026983771118774832598263664600767115889480370298635921883356018586917633457119973621801449095076242463151307369621824439284250589916636853428114500604478716975948440654217505307909733452940773856013992282628945483706029211186753789710775032279237980004798093489216630034100774721505623760599334867397286510077572751298538142959268299148047276819639040055728612952935559153836163338860325107167693374269673419150493488825560345632356602658295918590857030243284606580096408947922096317887225199435334941159367262004299322268831737828378822890914124724147198089784113094822477274111972403925624094784325317493894887705928115345189231276489247573574793702363632526075098299693119414704846488938727944179793390503575093335673667684197299632173349897162998286155757851494505785666605439696114265238654355427809159010659630143336878737738017433669386351856934254459564891454084332538650700996764852022635768655083824738550011535253784617070815474374415522364270060300568812484456047944282902132362980014393622982780531884077250793445755517132580205002053529905977717991407889126031846218100770530957216755297416426321691719905235801735341455162434097286554250133624231081323281952346630312044014170438955668854884980291070596017958201286746366059053530109247623098045771000266117006967321748417046218367506236474630812756632911456991851509461956279154078834392934785175497077532260952799222382669725716944386965125058581384789764699640354360773258810428592636684504070681257558764656019343285211657236558605908482359874722459005939849994691207696679023121506843244070988462100744781340350143734987972949079767554083292024239391679652043186367307564916622550492607937535628268557154854926581000271580525264845150291745491210800178207438345420958411688162689823166088364315475253167718485157228676354332652550409956117262610304289176978087559317599568534093627071420421737517373110760274776445711658498259114962355592269492137873250995570386647643560947849595461124505098751711048109564675337332155636822450390506041197471746547967443006524352961673054347874012938520047784083738823207053267245616594150360910841777392869363413393728011659946189225317750974542202212768514262711339299312766027219037018241795915423274242642638052228513474228398831176499694110821120212397702763943165424717459726816083206671293405373291669479037034382786787577989708529970977671620554475228597625775249310174842688320027448889004870556542641481176164352184337658093394340206006637238489059728593207474618983966628763208632108398940463850983767224039441501143330203049603012104405277125693697968568055186232383088697175866698119838458415557826824661890609818569674332348978533109001922659357820068178024306249570866302399353118694492396316897893592838671986630695474349555971649314280319743177990354899578763652244672029723018253999184937299068245018208717460016909665869231048399980937957315081366861319402216376294403043157061174556917958097504596120559612227236791786820374614820831408096605351784763457096751554102739533325973185634038199434590461199553029523204118175118655717844468352720726765241251169243367637232926824988219560245131174191784194147757190089778735690168728374929617237321129616921207386900768982319089120716963932389655659580664693984702607358974181462644882118214252507988662356331723770145665664069923579220274738758101954121159768320251873111746138216865751516441208495891882035691301719226677694346764461448688093726424248648593134101147667504983338192486093567818737399645825777015580941179633272695299675208102143431769821151998930214520725458474046904130782158329316982463790477138039015462932769007335418543920317080378870929346397625238825115230162399736786522368009211457583396940179051125206187978051552250093646201303497479844312062580678578424326071131259445490377907117918201197266942869724227434146354068392620016997566096509813289458987036199621409535816033175955659565385610765461100812145629116846913794453758792613284345771640414569983749715979371344145716162477006726988906873490646417029369349715514864782023659106975800908494383541804262176987579811291136869007380294521165441247818493252446359180534234866602578978619350970235389531784660997177171207002834902153562426430323852342025007701378786653673086558946344165717525324019216851209047247301625867471345226245070995344875718027464095370324695479242136558901041421430358121680613815125787729731908583305978013115029755093860838115903433916382666168761884660247162450194739234691726352920515444767903288925221105504751677073979597713405037366430396019504494629584698115311437478493680003789030259499013807794935340022538726367115389363179345157725391301340006953544524380872673692847337233388556005780247175854497752225391621827669243660353399973409331053060131584494607403567764582443902919986923033682236166045262134063609000643799095969285696685355117571729899909786167394078134765149831547412936915570226603216596112371612866766292568843156804969821200922273053453867337540468353565084287663988767334966528876910119433888891693387417760033441376105616013638424832389765358970270841921561002291242197523131668762573360211248943686211553597507603672150851617783673459161486509747126069154465265323085921913632529553284970350624515289369765933753371073921017026356623570167862720564346759388947981520336039054029805498463811930335283851967587387306030030190575917639653188524917106319770423673142480536941162084891631156352987605898879889620000663752493614934276296888414078182110662607732215134563079311707077599361294258204499115382169295147378981661764380050307525645205276464222117196888156649772605167862694211700630445087155397913577960338010938860375388396052569903201085779852005313668363444859868115326742700911989819603701606670012227881859090190171897447307537433883240359126833052762909916607450596200767650524802791292641487630273941661135059054212151354689517795310385643458384592118432030379292668896437511180018170545556241004083518821600090665577125426641971972162205851740582885847378083367666346092518699713448846834747715719548496627605837614893833023496101998683402819474383901938710538703346182902002900894742899089995231090497463705977647070170203905872470923988930308724514763045098991366566372600870279843038154961044700795243455455925086036614994202518607345680761260327943603988715546323758703720513989748925655817161653342378463456318112823767920434265496048938447729183734305390249178603420186766242819473297039981276675377842848056233969236614503627975009117748180229333609948657222346309134551820909801077224173437799233566370715667654408236412096364095431044754775344697714516894655737792461422786253881465638822429661114984680702578987845941314527649108330365362082192940590547382737867230242563922967148259349153521745566337024131007281508344582188112185316262832598475434978015527967586591744094385499438596930073366748946805006657225426450130119972271136148831108216346625887182271634804956686461381399348304096206555611885398181846287534561165185719056471944303652790661970181958531690621956933048872394478202034538868373150156339732307909241534025960198606910395775452707311778783570065683128511080942826364495623500094708340559364118572685070316076308781179689003556593338022433930760821033627627856910000405624579322185570527434951013022110936256584157285116774103736391774801580318666161093043507526091599627079334894740737515785310194368719954202657107278145686851249889478138429534561917985394769129393049107052045618748011327230555670339912354589248536993998205731736947274251410356149101537464765200998001269327919175568701569124000435983647320344978018004419921608131536583523693072868952830869812429797992694837412508991985868707523477587511472222814509728339793650843044528492599152347507343195821346484011661804135845178600205800464957971748446868407821565139012990474157878047448754326457836684918497403338821463652279567647654311594313918411418167040688930208822288018296791305195616212919301797840224599441276557065004014270259587007046709678389088221597454394873895544315848356369104181605221264114789514891623329515269629898824639583165105595915149422640764656290794395286265750328428171120749561182573962185739786051563424220649774374949332656123343326346270766102399546602080082498356556785835049803080982184530508545947156791326374000041538245707940682326538856094236724822463310192816476842644081818090998078305264990160981463663608091262410250423860368240905629671516599198484132054795082317486070370616838813466792793483995871379331950458716352980987103300638463512157487203958595447628235845574714129867659610660925322918325365262253728877540329905767940941544933545064277230312309845889335088833847351669485344878838866726526249443344285679740507805616772551594711361568046691852289230460646036704799468948504737613663766792790638379681459927310568812763530428484853881382224677315830435273690578727361262113702114951709713621027267345925774443042171021623109086315379631546633656048121368287324448049527801024556736903089266725240083852480638128972336030628667837052189335998575521310547061146313308464793143694526288761628999782193630957998180599185429715758305994503607002586174574147243299766102713534821721381745536829633012819040118202415903549780325507583492937431184903533656341314058203088913166488496332418971261745115308593394819811605224135168122670408331476690371493836668054007845280612420542135123443469467600595421894092139165250066064102733599588519695254868618935854497577741515062944917634594191875659830425974861982014079349917608677014257391592327873754107462177135398957874507851053863849800303451152073756374689585032082084011639993456728741774942234700393744671648859863358156353012468440184487483015143946265109269546490985446808047148421735868571168101604726254752614758064720234548737304643839744757726313323348819508564833295758972559705494152345975534501095026206204759495079740768698477035201832054367097196156885632990275667993026387574710825972889115047614304806603891004791496151156313394349047007663614983030443346710706988218779655530111480210704608999676437965573524639294520836040089246353651192097632446952259685372196660411822999412050615465636390561791886730702231475224561238380821100718445827420492223601623878296253253838579869640655286977909873560928372494476943613266856668625936711489884956077512652849427758246485563938524213218851203128356514578168460572135383354869132868366851271156910235638439693296671645406262793697974414837419269740311797170568162898935526325336400697020363070794076537690416769270830155355775287226614512202418186187247467435752986828512124857250427261468790194158243016640810125500170161377068361979886049136880470438616155556275030920132853460945487167359630745566919349738616987758844483655471873485705767612673448473373576786122270088233341354466544120311879070096510213703881999171752753758392253173785298819647306276901496989297444183310504079193595918189649268877895632614445794311855694938718488756442090873501071750826055719059213013477953063809983177240020330019681088907119233136034973426028407035135129449971333660581890956146934619167338312797769938575784573473476380627395302161628811187988377322039198034030502678241032280816538672007812276782526229450997633228071792402247348204171403833334013327341113649639853667926468984525760564139484275374173767935837416761017213574507058570722991134862290701972362076809060009997258435908299238310777434410243951972705296646670264151059725095645998889784065480965732143679171175297485564347989972429803197509805549022363195380180073987272805767966598430656086709489093338053381553813558693029859631684335515445642414162528413725554087637175376007508949770716592570270741377736075716342618268101493183294558275477839000425534518086996692696197076397414312142475791738766261345123809304672984770029075534350855708797700581118209561283809839924660133473699356195917846295354307652230131773862208791617048993658129149922839063209099226686730714526435372859020914471447277195549894742485874084740109213164855077673010915549931467648829589030147822358246845453373804926004991625713576624683775265157242124943700028265571871695792179505039698694051031941519965040952813536031840066053499266209435032249853970760452629412129730165913515184789459584420936889546034814224764932854749134252623055537571400500728195560411365875133895005414430187059088696857966057824600627309222679915150767946644502130094746390588836572109438730617987586154819814995263815464229663903545391050433425222846235228779428384710262228326202348041395492873174836841617849465936579589988913225734366895012127777788626295095210070792548730496919980511994960516781626048082798203171017310291331583121608707285924665463714712557462171489530319629936785244049649548526895711972111763824519702997557815597624936044469016984379639799438800509866176475523065311723418077180892415680948012748293232006952850599429375174614353534559552513133765213133671061787155240634487601093522160493619291897767233797804126273127397549541831030514362975406623336240049436103613972331618001667718127639337135704968096630421120084639377357394109549050820749761321859432598313938285374935323666619919810917895987057510610945632476882751039190170525452901229774570086355798056994290352531293528891656332070506562885814241822625840488339710698740435321577238777522313616074428259017892888824553891367784089119021344162255958858601077028661077794015340614409512969365755422243434787479085972502959345201123858845687184489742040777359678767412551406223038238436957096605409380775707680500391385020624489796252379894249904475339177907636325381264411751694496000636594034374227973321423002163086596196007371478679349400487925538551987120024577465072406466514844176686754312350432088104768014315166188797517331036205077799234778785582717012508913593219572549317239898266949051878439649516335479446988078045724251026709235666804000801084738790305184658034739835105766392722200196098260287373888777282362681913900529411271806546399331475164429757327395080084337610164186615349183043527671115615367589847737996067063588342498081528566512026612671302594365947794942024476383419196191374660130162492889263598799627856898885084386122616665516813928231221182832242944466790129459279186011952270879258830462248534199384932841944340393696127909776890720144304649435004025436384381421410394144300415276754042307693940507169159783736544865917155783421522443021123000931610860988962303791388198666240030916481066078923512099318070512808762193516588657017108127142765277708127019995195878684543688382278077040979660244854765491267890297941229809804895640508616453460317999350394720368058614348308622447952108465961031202731761310898043690859731428095042423519044544056863807227003964785177165225144528830894601599881443872320742978761564266065074022362971695252335426165044984126735888307035881181026768139264639288984210939187438443229747176954995752404335538659771220250022794644627527022324030389384328654889538856175567084273197357215891295284689979028847816832753992511138210152438481600220980731601358957870717508768493609839618716534739310140625054288061529137523554519960834949172855895993723028499560701582530113332170612209799418223459768863410251532205931342477292471663493759096096252871521849392354731276085107922156956260000658191015827584429969648277810541671238726164323642765103745263250982774071567369021368004617404001508741386788087755425876645182027424210628956859747039403707989290935718581161332925309962112837313205226330010670157901353747896034246006409568730801117142669533829923596065180346984576472682018814797521630639422825425619385754118762270118971705375856122823107761792488517439000301916699756055047415266745618898381491331424045231993593017828799613510198851171160734672537846189532282290982169991958529875669740580182809078207251461945414179515790412424725758919018820269112604631446468734843933141227119919215682483407172745621497055431907441920589126424111330562057932010253611875205666139402801283860063711883510729429861473386295720759803527464029860553768236767669708549209724833777452553335269628819266839249123925006770157681366778476125218375486651019999283107373456924758433962209224616597973616760151667891758089950855758033319653730947601981066971132044227344723158592282703979984019130672638446220255985159584330378325220142655166729260293950836160636537055809915672955390366801929734749334058734702514101277975374382347664838259143591246628447714114004665464149971575268257556202212368877324884665931435163406824580982667005445455371650123955721348643147923132153996909284279040374660933781357069019691305886173850106645124187010057230831517479991800059930691061382561067564199944279768855118974878709474180065281995080932027448251106660558526132854955824393895576388004953189782636596132719738805393321280442146446203743952422219077726022812302945118224102160057679221197501462471443057213790382102758274923425558956873557961407144629655274198344997146052182780246951966903320162379893816589728226203447981895560696106620899987545648805974643354393758035566946874569768500723908145361840650375642708707118884438824323118775548007956142285843189884801724478033823207387740955093892661583006372148401656488860475735049590270412623866782784311921475232966417752617799915819094667337135430165487527572260187136851941131654905390293692546470968981702645325157644320343292772935997607560413670560019978567316210844267662067120222254387058356304555245536860034514329842459465376580051160752473626522862096809624847394982239225118637275930844263592252665924801964398596232702200860876116823017820119432349115135693431145794909330855637132522872846421285401805173956762797548144969208521808545294191771957695305608976117893920074640558685213353936863641873190664522265779783319702923391694263636924419370048573312339481041470759884537802333499123331430785679342252593079212994244083236102762458033245660490432590683093746015211730328393669228186364080243720598014674680356661299942838766394363773511354120775654536718281607220812214199699108946454359919277476126492804149406157171608371985278796370323343305750857235677730194200267135828680667632260867031550313913540925606399205077254169068694931072469659621787070508693075175335142573263494333787356032985038124752151269052744385772010980339573839520737060753925456769407559044452334960008038920054518630262583763218777345851179403081236523308236665539309952680397211526087940570493930896380969369522902803893833419152987861616956449026728447106678735377204011595418078849546459533411579817113782719680760746653174385332282604661107836044142412360292370148918465155231701982946451755201108895710129412635605368310409458817492243338244159487041494567278957629319544114070516511735546167724124114276796632454831243790474081163674725716885672913066868520051118398859179622681408252657854729796536219308689817066821912252758613136111654021813961010789707244774329166432997688200022623128083907708637947744100280205980295453142979773108955213752720160534636258776840965770526449786409798525600336268223173244225338848011610429787858443832456678113861866505715143183860523870126391843676571423042959872132418521590233095622545308838238186416624991513068423766767431106483400129804986624684195549656142284031792452008529076978474898840127941446357637135416972281062887515201159938388389582093344139256284796582842621096283258181675927319854202297249707798131764501848225760596079754779112787888441344699384630028437511022313160005950969219691932315085625983938268747548961917096931794701161024397142455744709375219433084454345645749118227013048109892692718056597381187577772945309099136586429921558359236362995238598205722043754470129504312203254212507522368408777704380137819534805706503585365322021629865645709945636720998382987087504603485551834714092268149199355358903771722600379868029924684802927931254796578310547043042501774853662857495212009133094886141267553899096386901553609679176539995017828758288407317713794243892091366609174667127006780432311857437897184900775368926637067568753594544046435703198503805992092261477739509736342377148705781270487243985592710718981153246614979298610195746582305305543574776578307690440189031151012380447653377454103158451465951601821955270181230900305528858474151535307059725916825267802760721749995010628272759812027400315974713347532206776700272538768801847622153754150055148824605909394430624317813968681428983653343342212959251486299318598310418733200405942703771868336614396910162333711267638756308399039481383016113392850359612826880811410425810944198761943437339370673390018996637992060317028157603501749242063857204119283986815420631052966823886826678136002219829766118210158120404957389661479271964947153899757468152281516240332576190977855972490057221288069505093739115116580855411603931360059561436671920405884934680236070921244308953875949648227917845531484356049648565286891387943463558674675482773976300898161724532785237944277943223967149445212009864102909176290236737647587911384643069452622434884329392645808411875211813162791937853749317739989117774078310356228359239278805012214695468197944859499003135303176807001196579934632114805668324580847342098161503470108119207209064745091096073757077146053932983725068224611468606045071760040574570750669904735723291506418032565867742538364335925673548740834203638633148680757697103026425388863893529304223989310940450031456058951336065699112345272731351312504067193305293564351549656694120440239202901505836524023261210912031118475256801881597687729772464223565414969701841690884778794828159813809336526483956643796089400278922679926137097470870129304986160747002370835703654512141465492001213765651367786684837975419330297367389787457230331156472610339716143356634507623017217329672756736758044058490347567751002023048081245906172133827422653992567768596861698551124363142923055981592955366957880119910513888872023485133860323210698250078391279091364068473428506964085049120884628727326691847944137724102293950025441127908749487652238319669660353447521668158737684159515084384351227230222294569015391947414896050684604623740450876522053023397208926275021821086775306116065783983854022796760641030689559878587364619477196908566323552630348033755007819899799173420570693256318075792294540705349971383017829842158621360649708899067558467139205573662722251514387687468415801211095941009418327531405318247313677956935664995441764267176980424663380734876029733088681074619487990266103859944276208194221764365100973307512544885142598495533487874466753427167650564699288011373208643398751238629877360021082098711708913780800808605319213200184552931134648851800786893652178747032871889258775512717726790369411352503371786355640322378993592862863273004449143076255678681638517833885191519054343813822733382922748592220096312256466971516587544780248875893836741179839992624217103373629752361630929404702006970706721026693167077037830110244775101235264624634560587658676907665129931679235187016299745251225875334515658367842297842746927339830749122397524223593334683765616672454067787809353632617717929279855671737973542901020592718511857648815172989648304069925768619749937321426435655659688262955368564620208986430346182399466360202306920791870390931015447643653277508758710243331574493776447990378298373963682242065781762628292191023886014458491255979870683234034843916594359453625582514896926268300813881279261160535181695078084110526581012181778323992801874637057028802176592253732642109575155372420260971149372297053905916143618879508539365989798325960162326424787064049453409698444514872229589413196759239741428227276946158491194505094617253158899520417034017035559772184557427098686828724122237500619603547088085314832893415496729499114720928674548636031303186587773092542272861365710898548723605127692283929673746801937095286024487524405797881489419388034514614790919939806527988186238119308760274456488240358732601437030060386745308985861842516039900650231343918667186523749040354688886560150831166632111966506167492106425988180857822439502025281803397728799866871828088794448362988089275489434959691899479263828428374789621177163633567445749315954972565463857456080439660130404572129755434562616382337097933118996683390810068067134825430328014860316914144234761930876606859795800304933656670524677446128560291148950651325464897363191565371742901898940195043962535920306505892775978686586773292716720696868727709023641480411443963677399418630684404677860568265218049472768433602691554232666722729694292263968727535135963635549375415790065530170818718045093919407236593622256045394452804149607169739058021242092905739889589844333479980274700056257773028927759719823509526243674557225341991216057136739825216174088228317420422751894588551671078524811939655485360206443485432722375053415462096458189846735718486515402453350005657251260838194500534475446559158419741906904770722779463385158886204586904302457438920832868968055914898537256307755470727529628373809068002045034007869064770336592963121519695266285917075724943985482231321311945012325989016483128448184516459081928292196630948906234515426966614898514936443457704051113819865284633895552278410842370545385585242357482317492613206890156361786784864323286176377921959700981562252681533293687344382185709447805117351829293478129107315384921907132304335195666660650399654151385390806217450404106206574445463836595489218702122649875328273318043564511626529758964543813605706333896898527000116382324975024666923788947918094730041009361527956319130788899632614876615108491966316237015252032785036296000480344938221456792795029765274164098700711760784464946977386359744025947834619525820034762780308304782550621225780012927973508340103126087942481788924339355213458636783922409213403182364229634169529307281863056875185109678785598188894889465616326537917062217395495303486344488553258914549071315376546839391289521650550333088764684341104925487926930289274892722317207367176127088250378789132986270325194277215961830939872058316089277821026205801479089510889519714114328919354434876658001918831640194084245000800052466090625772861558589956141899382202181017104948369195111846713628916206199080703183392153846694830960997284473996075668872524352566971591600095283073883335116695871810754480996656824329368412005727602789567162593844894963126656327721680475220496399930739565802186154519248181582583019728462650181088983365479554844747215675103880342089163695148528693985201980849111528050329667026025132660591519778453392067361830600247340958622063436915820464578524594975280634214090849308757414217801791748116327882632784007581769618948186558369908211873009498648315311343829096380854881406683911086855038572689634225741155555187378211806329278551344793812165510817699354442300242755666518214965567645077238593859983843473470172299470281663883945100489187291541239814431906991611185889360929730023991159232247266703108582965279363335509083058728928040238309118264814790630886686724286547935640523907782868954382867321987425064360462797265487743825827969260100852640854721070995971047349449028219878206656121509244101609671146391821489815481613300482561843582535448493604540476855854850354328152131163754271983125202097356028862447985587044808009052476238065434437016227904082503310268666334114825778782261704777969259996815542077428906870136000270151868934697847373942940959973834907702030874243753218980268992031630635548238216471889197901881876173128080513958465341892980406821570262227818103999686955120508824925724208466309132922056882076727097245249424067065379056660198061146501264141728377114449914548432360587058300468958018509337428427591911424139699392408899956333318586749004173361122079204727964414181631287381809911978952192931926767210448554999146909457614019279311823395634700238117155129672684171218768040456535359026246266588124112214428670470665923908320667951718870598426250368617513485830516644054988950623458989676478120919364167191574077400500207919678557728213537135347380100969277230646886975025663903314386287849276555011845622728210100100710687966738767403031529086745159376807592704640057694604676532864089153863572345382529378427280636075702832673749566762166110503328159304141400530987682490717240855985945215558771880446401157320964573509897013397863434167935709986570702092111066249149104854522528644001886066722471403184069815971994108598884973679192018952710571206341116551578385034990383419408480730259985846569154591742210449735627628709131780775628897265473562531266865588022566206149208638149333256119910446269467750530982005415573896902896454546138522085571598933690822571861369435234078855643772861653403799268744709337351687870723952684847963168704838994748621583346590457448970372783973157542947103418850877141852608563740438452182969586246423754561871520752637122588771395861255150640458103429080098394795502591227984339467859240590632131782246600293196102211505685176824343488982591849449085716814764175381093578027421638375146125909084834846512363185263929526484915081935837424470744058060847512757594182173302976697883623658910972942548889647692523576952067928496128505020795443318126772445960320399603891174976154952591637419565772522440924936783393344498105358058508777615601462996445380938348866964991460983507036637341735813168126560343208909959231357400539163287488024134570787004280825702616126853307138801409350223514572231427936419106238699667875171947215672305182725113422658017634018139630256931940654638299941798402860566264137698731671207668742276373664857193449529213397629102034366626503037637131255272537296640524771091589697640027213987998868880243085310654996409723352058228786821475391987062096952551278753204170627062961385968672187323563435489348933911318802130169900956114507155355615210245363742240418960534542874105377681474346572179385037544260288093894586125057663673286496526686083999195947123366930364771231504910321347945712900100928702195532820935505530105162530867146488969168955291498830121729128529066173597608600978756847662855493687429964344128404141991982530886721366759408466725377348461081669790835283963624231381651121290904924497203111730043177781422450187447010557071137970333075237094448420982341783192494788679737407769526233076421384662801486602913533689554932356694802257901959442860909842112961861683754852013440253072362454002968576818437788808549754397678183131472075025791773639887288794239312485934279691171002523243108050859987980919172054616959278665503995319850158873723471504058116154110195841541895039749642642278272356774401673702442132523276581315232700177636892497312360748693646771930447206681866183710253932978480733296640917030782318259617784656396017538129775183871562018350390180256309769546278045395666835463673247529803140994027680974507554427563808940288463080141658498301115294900686083259091303919677652391962000592103996860604663179109236224197154036499499194607219420863611904113120886101298901056668877770338918520687879258337677385747965372321925422503876630531559131363824485408557436036963042199713489563370713875457880804036720313999496831924195182201827946729177371530536404124588248767907499723273075074384229893855467903445282154193751614390237565441874528394266141727175348900650652712259999525923185617571588488193368891931874844758967592889912602084027649533230239843829218567418335573777863933278972618612769404666574224555259783796377478253917726652901252971136610385713155790569277525472181555918193482764918598917290606942789531226868598089755913624983653506315374162995805745915143154621495179936121371571093691528536751733845211214795642189196265049529589836038738801880028758455182999332218101820932725922550508173072537489130147362502449631963820117416731421990584424443663495921936853946429439587089513249042791103775428781463866005815860208407326250962920286793321696528608337699329741091638742054140863217367086294294179057391582786378082231121588214235059692878280386568944160034948802465106290485958779351867386517420015685834054744132980668835394921441191982321032957579317280876852646821892711901626660373674940895981733489157237372158623561769535644026877062861202688783069986217110033972395757242309458299319379522583874172563985570026916317871162776074617682105135817027270251397515984773203864671876165063475868178174536555777361018738320568304388720373830632124610030753495182907822748371564201842761211374062248722278307678619088376129409739316147002668881811497667016401442539447751025912216180930769742950425687094771921383730291299284188249260082339857232499949800081730948230797622744879821630891512776952364093651012424562838967578758994876562000702471916857452821836751795588937100904289722437791735567897613704788609761235776689645895198809962824387776923609251703731313830746813152962645289967760031799579976204831972894895220854252636177014347099184038133527035613007180041464282572398974715842032763577548010756345201666031078486478126255821882279114515288468785102528808117192870982734258593230128526793997096523958079130972667940822422459515060281120041712296516209467820845864746662223330315989079594114451203053430354332384011369311179917176924755081568979664266797723962060905333013483524285618465445775599451788130592196656235869917048818665212215161244372358580342986022001104377362932929608925152645498514042384490695754540902189786927187914042604763189741483691525528307901738289025194291860556146030659990823036233038321699262778495096472162379672993007084705885589342409780649338412778489738296555599673897158510568767714861818126243284909172053168876469119570123792095606274740050703610456030796087068733492427997608920804865889053354339839738463745018224748875204162935225108851739788274569029380198230679697581905157011886568830765869388353810517508668521099277663093176468840237563156305319817734055743995262188515237847949162779228137291466166321849684378378976338998154775781214504602455756893158292174493440325893280872496976007750789609710669980029421007801141120506794929144029671763850655624544034694743568046625987477190701109477101487206600500747268551908439987465315368048947849265247191906099403987180204693782286980301731106590293187154013696416226712548690048849921391359225999123506682655992037350782929451185958274512575778684501574619439995613063124041435911575892800156212025485673727595762684085857140098825924177783185778463787582673528618547099521757768439377255405853439218311814805185160117717259172902300881494305398321534224334525611613413003426189996391583480180217701787298759254753751482288451066142215818063690414351847649319627255670479898052308243107932778192960947373185172390273768574977554643380324129055050404063949483055188669716896108019529917696012809846716945866632030512854068662201824471137314118244639620406278975917437957588280264681245769318951762396936363298797834686768598753282131791450114293977694364048571991490126458806971377086097507856748130759997129810908738082939129599642763402575966577948169875807254252510149061688234792850955352211029163050813888021290281234013002703319193432259610679016831673528236078617312502003953718892897638636119157307852363508440059881571360394865513285189566543208941002995446303571775742496076798335655973628638003690060037705232353134556584785391015841501744497918062552037021436648709347764058371589580723788790020811613327761318360809076722460106653309149056097627857025328499923329831516033659931928351206325455789851479160565084700527762783200680043822450849278609112518766314625640409917586951544081396487334731718596578944435604028103427320974851454221925682995341956805398022063002800437154455542572622335350586937538746849302790888301352274309669556900753467941606148078718323029047005016389407685074499349400752299641425615968552900259920125139518859657484916308927926185287568655020069118965154961514064834974143070710823209366891595391355029900637344417540928986797310825897473590637641527319673345136030594551185483805595641787154431048696676430925380066911011109086299094236354984683487323430366138930353090933056847880063688477567701793191962826998253828483635442579582394830314746294244699261842273029138544179686444162400322416079834429994891959833400161143209289235374764548743542055343927272893743721709891086158185985386569114598165067866969369701621378989458233053675248938844907344994264205795897480363916880947294457099941419807788862717254724384459825435856710275341617594906595272132726591906132723706755253615871503444703007948299938514304747601938804984356419238550936456193537680789032437604536841857479142177483792302404047090605995229112603490470152649977975754085526918910883820861759980532239656755872846167830290645567495358152251862972542902009428834496458325493194868258226929659088150820446052008933809264483994061568055825892027777752236754894245753391221253185286791423786140545792061545199907699808089041142374603562004106208269917405877879074784387083896910019339523943978153608307082889343473228429571369782468961048813866665543329713101330905330187973970847906096622221831770287485510649260839536953268230280944358107969909432736410215779882634034470036714264624485292120555482647147530636730494310338849818316434709820094608170993933485337882206674233674298258038972474478619574436048714579759343999203227420822443369223490537354877632439286298705019104204542909602034982609916236172765667426879142506178696215939393861764841435151829265545134811628172629692023060406790624838778533784066707682817729565966594363111903516796891241929173708458043701603175236546572636844652069128696214717609059879321897910754667717129007143700948830026170378119902229221380456246101240834981864605070246551403993855990765079615220428505171233688215815456272020445109005966176130592275415998094223984786905235157922315899506900336220334011893674955425093535577067806464805406499995869518065082047159146037154118877917941898438113503392516321105877612098549219569895330291035923635710767378493175839150615562121444849119926531316376248049887341215915935914812467159510529437452949634557264326266122668122305885699754001620486290826916137492372271112344957636687753020342204359973274462188444833954873982789777344479333989653499684878042490633891826442587060630369140511119388219528139862596150368773366572383964784424594009451956895622502854704325976004489368245735316459282196604918459018011772636940060900827270225111555512028244680307974955889446822283021592014878112033950098300710200447320859104069520414580291278929286949583575902596064204060883777252243233024011043130514358605284918293656956902068152053200968274863868512861413239347889061794772511425990799290044517849291338356504173166050661483101395821357872286281129218385583564729474877217512664849559644104523324945751197777362761972305829427059041735303753472492774727800064587448541455128947405114316939798793962507819769131302543629978719777065582348341659240008790452658704936295067230994716373760640769458164303280394119213806268359229045411745098178326143769826191083455253978697057310908175620700482643901842764742377214526227273862527643491838139338195947743312112563463529631680491598333252850691165221270854188379154304410313231613889305169770835812664206893817234499847960444223614123799173077147017188046243723307253289544461450450438374385056309343703973044998627490617082830115777821732927734742865708068449104516362312112495323380360280631315911389377882148032498078550599313959555011406393410786754567530451342618360346290146592776951377926500574601133053749806771547733458729467698098591460752850529046247459578296647507016343777398549537678745692725439827719898753461627063988005645186281924249567868277694533852985205029088942857266181014311440726168252167111123408767896315730897183444382715037149229787025070901432255874317053169766884975783230523703450617490398704057371491776811148291624809796726792820702536527737791010217479224027255383399030779177774085772601151875204517177770326196407736297373750872065910773277978670354465749794940873001713240000242101763607079506318154371479937714118750886091687899500574381908845363131313002207939074442099898655565603298332343225227741445840208152858922316160629087052946267303365199260827608804125908367891103566858632737632016487362078653043046059318641031140993410054512341893426556954805548829884962147740361732625332348768774827525849116730351907681794397216140934993001958161543594163916646407395837773496445030183074094468395889220586068180813985933455739572488845673893898496611339109895257538751066490431803732618911247898998077973684280200551527077651386546112775157022276325973753365074982548312595275807683121348712934107779348163974896954070947843354078426308971734273889542198364382568159075994520499846093337658068293898096876158708428265489895469727944624604083112058004053601684592473069515536143840248512742874763427245662547529107831641428283270054994968167804561836976163310284975898128658632803727393756970901034122295342285822498519059840103091967772710629866224956169663454588979779097563272760634575978250548825185373232555983514250028621352244173464258461675017968067438733105532218071252068766299154771793155824846213813591863915706272242046517318732771501834970587098898014524680115010478740104115660720781511952870236784212930230817158885723976943840723658027873273124748445698640972584608935972329659174144574542345402628001692900940475632550654630537142735236505629116635908054316256984077754303812105555763543441497412076316588712323928223410333527336802187019237083301229370193604475357411783000224999408785672023217299348845452292060953568343901978150430756887774145679029003805020587285527837955385901027456646039366604265549623424903732708972434465838006345519764905108614811043951311420012397583755251954818665724979898089374234721870282391775151855676623566077541429994236429804507721974519281473714095886302080810933350369710745299628994153773014057603684890437638995266140023051441593935432105112695727198435491069863223098329297668464507638421568463064048410156199884759017551723273594260425630439119885583024397976535573671769176593688451074910714220995796116560059337255216859209641923993515858945567747298099421928378518633171479220219707283955666964420141999075545376020341733277502948433422971695173913370007021280136566449147635336648308299614184090949550732047878404861878666492315219560262687911781389015712055726568210411378775370305427418234623449636574513429019952375122979143081168262621394364353327134807900075563013109248805919183932039614690832810690576476720966101876357223988861718048803757600635374392700660612616226385995423940987764896030801687663568452150503121718288534950813687851762154781662335249418554758867370173407260093476435339978780039494905314190925607962295798649135972735425648438043336832637647015592275353774763425150072185315150215549780483241881705749101218509944427230476339023470010378641925489808297121991736615978223950001001124898793908075443008444176470661916930972104796183977230340641010705323862173601259286700667196159551850641581745969337577931312764852899092641426590918661163669947751150758192674117426935901612964128668946992696952489509225368454939181909041461037289595720556766797394623616945951337527143596479606155045979032255317766781175405721229540462608698801638215608055636997299212718414535144416079585283300786205387783752051769682906736727709513166216985589516442541491001686507326202605534659588978752820620224840667239309405095663693261657761944485341774770886082980629972133482738983977866797680757390474740945301116471060500546283757265514051527320390399614249907158885987208387618649504619845183640131325425991031303150860860006097426156220728871530497749717788202729570399030055239642084733372721243122072362162966123083806094940944403704038004243484928607257142797199161506753293309051735252293600880325053347174965795569240882270685085160909554295341661144716740284872930549667546449165620008788910513394823957583202439348460363267084607501970212103795644163063372178821052441026387194600942232685165087761719983408244111834166737519645026563711883226071815436727049384826859427377551894115598059719270841310230591311719475750015667481342371110641161954190559361613685826366601811333609124842475294267982207801047458135711289312051884329128805488154417082226351462983033930688225388821498217199962912919769160618401258665779755601920770770002905941724681623427656442536771301431003990141395656293416734131718931507845882121384809438064442082453178522059069476289244088806059453492594548425629409296483062457425627782865742997832491883182342558764935469262816863834736810520503979599374459249979390331466811391893466361322844060822907338180848468475085860853072580775362451983257087925922280956844297105399000028085698754792399300605931341317740576486295830911326600302120831388177375039865868107147029333095311538464411021536889845527506574789127361349897963447623027625463931201013674036860007045628444560572153096833429917602600456172375041605696595420330358174602769547346448400698599205909166061114779638097495390181556212871889286517379648704697041910680740860229564184178931449072288022086703076310841748699051642037057442529712476687998423081076630439305145389461126424869713312483704338050701501596925776636321238689994963725235622843486854594557342819017761273383430612736026273474156156058864041300769752994788242564779218759681534114670928325261708314660395189811959480430424402380640037644472417210790044221617465575680034218891576085045251998333986043505007196905473902599625256441237437941550682779733718555186342638472477695811104484502331649996477263198810141110078384551488144416030030166834508856638393310808719440845418287141637523094061233533655202159052876979487025379688846612594639998917566949323386166588750227182114216051231790568906769936206952247721106864237593826542330889506463048112234083528292950143520231103998562314881388596960107403496441749412804616505957888690187443989293613284315784550878924918793419677498410407660180749466773123044040150376421676064718919750099267706659722009175032319451168237135591054270224036106986913745814207026551720999891683403605559980215051849153449475118403382877359608979271947194510504909687926536510848370187374360970554094325911529779465456809536140302070146910469306575460597403360046440288793022553854949897951978895226855666559320069543639312266784490574094131423638523578631056091575596661003746717025012697181332949354333122353119695338978734636859305375901752479415940279250726064220990811160101687129261992895440052467995544063196599576056237409331984417013610656224996540811134891421728336490042210078527571128935453341411600980514878136769808820580231421796428210825210323002394524160916875175931352499458487254192481727920481209277589931852516384940863408656689715221992910109218850484968626697328360115357224332877458818377710166845131804326533889172257862665438767137996804716802094934543355528760806105119961130662340374627980276846289514155519763584739445288495918178967800278729244920412890777899528901912568265474434440478950130052816368028221494558260786050221570951711600823557339700796645411676591880106409735705874830594628164591927187712734454909937824378475422539576614152418685950420149046140719376900428768459434464183595838062685942791069951160202167766942804480924150454849510466542122702234397876173127993929794253735536535332388954154857590962379837043053772947703797911747620858185242079564940683627386982835895165058665514033970677635629130950341320862596898855169864967692335966028712530020334452755025377305072357039186510850355348749383650750974184589849694494000255543676554279036244155465270516245674745797448199097576841488137525060942537157646288035636016246355909813515207933969775443701399140346667495785854025201432262720898454964841909137129172337345372828007054995327774334828133796283716309829436855405987814700283119995648151503171011509127458446202920872873202692485250837389459086651871200113919893275090199630355343824584327915841388001164586983516529378445462707095216968660399705304665771087896397449008385395054552441713929343598502603551759893875963983828328375814032286841635243701611196530045399151807298680910344643588038147912664136788328256283167585000273679069952047444274505768369427036099422629482068876042112821846869476542513032057487212765300817309838822516797237517996068797787650958780610340344734390019316085299917430404449016603488527702202426443192561348568058595809467920751666060727875543180176369024539849263039357712088210801768354907495860261538589326501127554924572544220358512462534949349999687151188209315883459583582812318684824118527063544500507473467266525927642557220189717628793756855115840713498409138147910055346629058463544419460882017017309193563104701212710065029002655747714540896897978038605203977763175261769720198847909790592142269871773476222753227478814494752296744085145241131637103074410822386229064639710989668860116823303878414943609865373522598695078615397903205430228159870713276372392352027047577516776572394298285780800050232694005188768146629597447139403890489747985377514849548580008054619938728595120046142430173580379086164922232501927782308143781881812359039168978629709978310780887179161336967290744496000149684259400696936232100574159287415417963249670525684632489917029822595721839621008720417201721966032344207317066287088816356451955161821588412003938472525316124210800637573647028977402023292732589641136414103742044506568218637785696219767701423208150917672925874195554714968426862459540517169314998305788793006456245726223854078783444041205281357666130344343045073591188000138187980927684086115312810201183735639629477267954495073662712006764029082766102658856247015413223951554239990263198821789442213176843569503386092967119320380056445736242477297346374033588738380838151005645617780586506303044522103167093974558017041827629175694547592141917814033053812059738983262751438033463122021137614043717301071190397366126290345015619501574229712324300326229669932285479107347234187685409871286872230520565894205042762470561934641846221210222017372956682122342286689980897395921564276615939556141398744709084229059961934236824665787175070284788905668563828827590370674773712102759000019065871575383416971271025474518209508293642874554047555728279188727472304513520524751505014025445163913795325971585892192021367803240237389404477150057784286263154793619594095682295000573905273419778468069274460553489267856227481191830996785712979519560416169441482241597659875575262505930364978062118280373256037993323634169238056943057792782879594607322657704012038278820945606324990365068977919886680430949288584931838231473515399263970233598020737737625721249051709920547995131932081555199974377611342579119412082129095787436089350475886281688692461111536529121406747143787475722142636997658370008171314940389998820794818536745050688641514877384656007637796735476636627611292120677464043772542505635475039189201271202726786675268930065077989909192302312985811565727838049380813870284063557145533006955713451907229427849426860670874308019587197755182600623121199519194084902505475098279038068191828565658927639219787380169194282362766368667879667149502977104095880693554584705344445671761625409949086175189783927268907138378655246910865237576510321442850068074282748696551878928015788945909335090257850108129198548083893242100010653177782403089607963068313153300771040710067639942336803240920410567310668929584169406082706194551946943516472947744702849127384301466045283834731179977683276558874656945816224671606168569624985906229660071260117243427870188566080039742432922797229759983765671082440909018937696725865105618159623783658582701094420798813501808575862476906643276204206920423657506267455808144376711321299106355177020002136741198639813784003829220037403375771982295268793098340738054515919052429361334913643487232327439149239205459893425735935653833804068677217239235338357242865859425907310005514027699089540602640620997007128738349524437918920978381398251124967263910283383518705325770661619186842429399423909622162583000546008286395849019426382235389874740011578264632285492116882038200872850671347308686236541398092874928729535201587104069623219344986380315697636143101607372479546574749379874075016939841180986431884316084422141606749625960300891683197697733212046004024999808292889409568349422224684073110952565999222435651531921557173172371298767828157572853615856638949982529076483921918558836366513161842714324259137842714900310807519157015357500689356073775287128775562191729719530206941290273210617432980618537534148725230927569450982611768659697869687431973954088437779223869235350134535733649125018733314837731740830036844647873716807886721552513147852226198033219270359316379945453357264417746502722617018878667592848863408193883575440686678085649841793098627474537221208334433162199611647267644963899306036905225886643436599873027635601941350851380649120840417867611764016664297826964435714628558655168537883142952318271022388276307270848544649658361616825346733764828182266512929130398975575190811328068853473763704785068779933844313788086938096132339943427391691560541966437577532301532657325805648564777834838956470442902023009191633399112257111599419119757051005567132382217182730823473330502535350049116271849779050219335781135726656760803598478059957946488944218510201951558182777420972576881599726823275229344859505744565793473457449965302115212772573087739282979325939602489283689580472736890076417192899789354236087561246266774866346843406186201444987377076695698910619636478689972705895774401585122929268422511643804836433215872828810223913894675690489083131752466317914723023925437678607584767635622516086841649369190452742796956581678453518839575361612975030661976203748271002552726936448813290622348519928951023106101250834326369562820252175770716473283947675738594791139538665249595574611966472658122598359848495644087208205454794047426016648337238015835238077024592213245176205366927513404393467043344851884892152959732370650880808073173239337060603775584981737318855875717092468693533773694647856804513048429646175334125018425660437208244437927250292346736441785301247987303904289226549527569651005292729668212287190937421354784940730223719882058789823025064150698253607110846647698932453329951203402555873552060437340714749849895437196519423594979603972836124898521965816581260350296647371042855515757949482282932661442531502123797685703955510071956574985845294797501995083191087813246920493691396353879571380002894492027290283141325506154056299575067962928334992194124284749356813083018134314888552372660884350436647764095257883655987301607838601535479267959834248929414432543315332514854572607504374248329009076816923840144634668669254263430860258159198423608165560307011076190853678327888700831246229071127201674990278861590866804508339381707272871592672996299630952082306649528213717116046151902983687233212000594397702005573209097513382905267487235932388884408124682910058711922648089324967566535402662815882557245327422379989258847311441639006323199162720103396079975477811314515295429568933662279734052879407313398822139179522334281825390599686188905681485471451726200668595333326986117280546742421824259934171181653856097598117383101387244588700317744682109398245381915511828037105917735777335232606046401212264144526676516258553975444089210298614293216154961879146744564217906713956426074952533698931579196889130518573409932771925461499606304738749411641989664606656711639745469697323477843377342758675347845345031539481073619918199058560471319227373853099221105255701923541914063348341532191025612490260063675337112539313202526078798687729575781040342233658100727549444173799016199349840461392287825649245946042777228486915864829156544640519642932487303160587953792078029292900186706600093371791871662231327327986514443959847566986757144756760516086881404852265005995567318111963338107241147030732701300384187026026706042986144725612346731612004057263834619697864868083447224754022387425624814867312521692026588002440556705452435153501965651368550503610848680982144981809155038849482926774252831695348603037028036508049539004356146477455864952883269698079049327502796516424986325509810936296439992976183450717047273115735632228340628931020016168782953539367237208541891405298205610430446484932383799525668836589275823459604642799900797956594533862539191746895424269766751784933044563330840300217254889261879054571117568458150941468318016085489353711049854522575758282316317537054803999130005406406106610506894327582921606644253696493222863898560425531839643301668559117860430541901195929441178988401435046801327396964755056162089479980164833363125284782291081082770490283897036652731847778478795802612624563948585438443033108597823340490829667318358862501913671227737267805724922493577785363805628949761522701594256067881825187489109191628332914617447202878797290249026560686312018258036409834698690580395454531656533500791776316467923685981238946050074150962878107097627802716871587780450110361289059346513412270778167566451127670801361338706123993617706496577416001509256331423234464530499898706702250555474421171239794954255706630761324805509303180111105982350678013627921404620486691525967893113819299559750935478498411259768607770969852606609626445601315312409065053767997997291916973611465225701672822460706457890855461690734173016446494223503234309349635710692187218230037343966560042610905887935583088213500341272911784901381885442921983836331395177361252021982551916079081389994296260164770371213136257312752981767722980844757434699343814262524202930586330448112775476467916142117487401797230154267624139768457222279765668276050247344364823591036042710112975723952773514172168544914611940753409880362922127466276086357089166073909671568215403957470311329570657528599313975981704515652368721155922145005301922506633983029346265214840800817339003544225093706603471403460482707490387389897650156935284353855303977344459881040465058572387172028846824332870481499186229904936463900931408304533934052860047762213250153380242035827545423274030285943929083883321471759566622653557003914484572122114430208962257776041759103760742962638216915429337338401033855607783753919298655277354628827840717653730714083639981246774705594109157727984546661528658370039706901113707675554266189493000380197062925048325623442622126270140226855945916464335638228178033549936058388264466523515981567049838332990566369184426875428533291626587239508188317717137638383282602211580014757513789999145860098030972160430570436903484865145311338905418966036973225573049494858351454705146148221393563101140645744834421414643441165451003365292115526704194057944165874528658245331654220720328178639584565475603444588602152351194185839942032542625053052822124446887935118890740684211350301776516252473397583485716021915800977216161992853935320943691118826315642842965982153614247092335427989778287459561272454101387541038497346138129101903772572103147808495271462271211630594801724170737905453830017113145795824248797322385571343936682890720218969540355922350016936343158529311354233214885444884995035237574663482160868360449899424453916798971894022168993198932935824628515054586225738266906754550182334730086907346757954321627435964688009625043992817282666755659812275126611398938937700429471497141638996612966138973590311326913654464466820852470993743137821366743398429652344473596199428751519560846528497770111385992571656715925937961908703470492472861117234217849908608648565386194271881477595795130595062815911047970414783004791643965294969564048883374459137005752618155646484415409043125899322388519477774240664207101807618464864609140987324345738334724720409381408859620895946482047567309849754470027003347970365915726137887190443441876432269467917847778827778377935777196400460206658549321185778866001846636809840165459911058767959588531942164299382277258161406397348506210905467097840538727249573117131851385145317631492809338309376278648977775786662467433190042363698591946738352183503106584468722024131119571217297356553245329690697126240373355990453340319758709547756192192564441752241460534386104438785808298064108452800462625913891567552158436197773776386662007394179351100583297822497566436147378924733852528728214842455072895833879974554108190925544029426036120872838708619584211658530184352137993290393469055538143494559782285657332690194880371348586927146477874326056875697082344398647868149078762909657430375052457425558927372141185386984133763907018804137360858740620193199618852616968253319749371458159048907635480994751301149046792001520053314793198985882880924212604576360586644837400141509274961561768143369854579192901094628161771158970615552494239913317315298275455926546192869267917517076013194831446314286471706014633936451969026725465064079043813166193364717160771442031568222727391400907541006990001971346436933904191384509247031127180570211801479510696694241184500804130289858691730887654424177050627898687875816648555643707650087454421803191267564765492099490418098471554428528226409477273059071991734010736569921050215932734571636171151608571884361718093422631080113460735690163311780400438316969999910177149343947579815883445701284875905252142010999698229476426051290387124395766000662728432703272654482977501857593532506107052082744225433456260901091960146327664926108625918879798727887271166020647678165343542285538510289513380672923356285540875645372905477331280657052684693377437918040345745108059607679216043821415148714800213537740576264358737094887875928804921590176891838203211157293997866352669433731401625906460025162125476859270822135025364224106888889722313905048062731704001491087830151551299240281691482029014602765570771135577798479133983042484069050790355342967374279258905928128251135061836378575284007767718552280321810670966920033407972961701566502091005430830778512643204078174637444944703487228722776393529624094340068460713275209008806729668936236619584464716893573763681281619770352355776385580040005697010605079455838540328712520196941052431184947815423683751534902592004287964245684926733390006395275240053428753094899821138756768379541335646810871139279729901494198082479748632638622212378276355519559287278989304577633132465621379073506246664046539094240816363192901512462990763487050051890002027221030901405240478068012183347543527706952472205032831447347414125853238240165586105176754376152790543640148194321005188406032418756391766111991023468296056832827690924718039462782737720903078652255571152525752562873882948665220530385082809392140688955827343079012754527769285110260584997640013100319312212874277382262117696517005724293648441419199769046574767441185974359906856155816989600411454709726422339155069021300439436723865361892757234721583195595990150108403497159253882903600638204355584260576449187797922627143244929886933392026942687821589957314836976750464209573285878955533171599247045537000186596923264220105109560817868272934182918027508212325280708078360152607519958060968339389881326214571141126446588888007384465795621679981504817871421046009091075247336753575142063270224964054257807787400491895323948172396605859939010210168495635385639022314528235041008151260297615021297829005530521377158884448153720165996548773092531668574308698840187157952150183637081702002141367171364894984179232201497629912620242492538321342864322898153634887579937546228428114819182919226732326205307828427157060151191968816843882954609635937707728768732439273025359196616958561721134822744742120294778377441793552602049959578430839328840947622714381128012301055216859177142999736603522615062711801700432915194395103234304611815403620743393239345472861509511890718781769952219571311508073399719578996148431656047913246115760011392314856880618231852634779944556476862670303004591945898437826515973636003471897465667268582713481119295756571053285787822238396810907912466885228318297785651912742983174021397388990127820715212189686526642733606190477862766094126007717882275498774552633725062106600343773780438597479866950304109694529612436687555769907195358996843577910344440121449991346270226161969456463357513798092239548555918173308667325955790788474780507486573414754408054030201518349488593182718309156122108017953909589036804245133998795433218282648729102091402640425470937390387995155460292512084320262570743895394809396940845093575269587966928301675724556996229176901590328693637683535092544260944349095189476046573003481043025862736590323122628059696731919806648402939045313468413787769874988963985922496646679660524600658223520668456595558715238346254109015791648922666359256187334450689968672877106171483717375205699088980161904385388282324257884622075244604697776657361376327137217644957343981203735066432236151974149314625005698959662772036668414515844577540618485355215367657170180829897705436677091830430207259243856948676599837654341735767761947743365786262040522972249698158429550227811184022636245053520255152998242858969475078135619339256314517885934896895108056067513344944830094197842155802057585910323103821411080302043969376365400313512256241020505589674295970184124852848261582173972034162276641114254058488835429028675949020439507585513055585315514461732285802499182608753070322330288809802239747409840985603346139456423973231929680516392339138311680115095416245776020460629930679864112937398890129093347381763656750177652266636407012817357155733994397661380095549795041870871271619177716826662182773132099889695184801067407194209006099067026015625289309390095153895919659828458508625739695193651903787050783256467988874368784884502992638881436733113812178104662703529216094228987931632076916366000054585820375206770085914507097261139220169474763943311778321233635254290636551058467670121351177194307052261711822628833482830210344940745659138176900651503490293310435025968596438974184782682220775948525619761608443202042120385674697058925108741224988672593726429656271485665957772197970253379076891653447524135562383501191933318183039852786302662760583944897525736631545667346931115973838015138604283924728261655132656175679964058452275445770201212251660991127483446679010931344861310643387796961815927850041570984393842545302748119014027692202578059157160776609192568419835941679843016575890839153367224710629259830574054530239639292627060030156310426752800959963816404144875307343930584603777369952638290295127646592140870202564183571834446131763480132421841968038844898359003431199144414728932636627330643624796499600850875207185673227447354163119191421645541551289766754001363420638328221025535154451996860794668582670538682056591676649360653340836326259510468739190805370611827050397869015159555360427878986417679400947868252349150909244768699850664842234606183166329968522660168653594249286721320542297304580096775664656410105164033985090760130863201891443547940335951171406969924142632219314737186905465776803765939141944526751935777249451909371513059872708503405276113359656644448256539510382773261666799026249838487728306511693941862732349499562964185165372834249646956705597728441071056111943140575740298566002154750465430896606603446399582983033428193604853846306116912098653050350477041146173278889413518044026865058950841315697803969080030436432988612171536859448069023646783188143712295611133784226685003110916003900624457563463683263762227696785633405836745051531691965462608937328786334420137653475535070652066955691676807579695178311478583543572442453116152534572798127127116123517684558571811590986273507233650336832564758257664892722605180162699864575326667535594178478438249867712455773015324299892807695872604057013171047382227839697987398113383643235623380882146353219787388990855641955921532226264045353876887823373821652473503933139440735662711363577924781723336704671799088071900708651993907298209956982602741885277819102729551194762471797681778923280834406480603125752964919705253654740978789346330864519750548735214230189413607701845892703785582760794131331573906796011175289005692417141298029036559535188070556788576709057056125397594080392499560095401494481944947643409169812621968082190548285432697684763003650307813007847728903207996100594625355106314507504941818425639497579010897307681895674077639040036718038551838893633886134630389639614923783904077690181025535770653087322923763219774100782076172788581578907585400244633381306298727819005552122337346945744124905577469878543044174738900274536426638444664176844993831092987566719091280036587260182344017107657996860119670032519624856566028738268131040698654860158500354008234209038035951270860909560708860680605544726798673915354616639756634315580728125375795207115947963337099106003508163361415083554950220835449706792737863441126250747643189637657319095152791172709185912476368697073249099687517293560591572031067322538085439440863128620098114861147368645924943091053283344804722036007034298448605319993945024156043520273916681357758891308545688179787908809805816631880422561189598156922493793415029482616495607785603717447622330512170782921804512436661379861591848819069529493848200530470950602084662334119498381669017873375145132742764832232491056505650098438795833849886492429448492829928505431885438587341718309460077077218367227776853001749702052372282244294733988343247453069384382088103914177978761919559333813714525404322412767984011744319099388062094108252394031888708150891496160459560746258011496625093974094924529530866129187188069113948923614670507256542917145270447689353953976749743976320785853676737415976015027365076660623261717259875835159728987131733984844229907581149750085855342503958343082644521541866742173178034515171608507385832814002984447394921069876657544291936819942531860435119570994206187484971988646328472728441873538042481073593188387036776095737389903371944368300928975774115460489798252071351646231238224535210308155615968657819657157402861414826685720445245380353203181137827652293034719705161497589123470777612202352726986629594074351990791206459151004598594707204300243925653891070034804407371832169302321891108131759278821434680499140993884025821181064400482079851627367960899427400442290210177703677356954188382605183490673869470686677087116609009869190933795684018569340531907183556917139474350442317463128461754076515009194212005019654747362403223014334331461595815155893397472669016592042807414308415826247216238876665300931949848177619771894951872518284167046700076465667841239012125609912453014139394446931404525749357721805286210996568903294680788584620765454168972592303117454030305232850596388117570363532732180290575369415899018016642488102566062957398005206831276918601255239546412018299580545571106110008620251942895894661555722541930664996648255231804593033440886467940710501627793029700592837526244190503393409409335657194241531175636782944613414093745571265676231671942420832138116116284219314008604666472682162699313391232930880280008071994576464385552004433975441768400805956835759962038423804760046006193879607092359510410844608823936454058438763440934833090035718481265367424935158612071176517326743027078284136973047138385637414016001380885889097356147454269798938347862834133310956665563854069206616648126308322419550477949262732264828572662766990534489764935542949260975558671706210928739715917855957180829114233341936083668148939742880784784066085473022459106023572216704676911074719432874601840061621555272145018583897578431102811429324679323743028295865167262231741780240481553275848002889476786649782857081929784722783148710596749393844341405935702664762938809637038646690159523486224208923616785311451156393915083754058992639098024312754903772523898138345719027964274566450387491598408854045504207420544070107266150967079422522828218904727046294209801409771797933958901975819006000938048127104779721576568196913347913174082301877037486649805072553780211809764678609837607757071882756486491612391771841989531076773717402789016317545434080522019299317321104237142629627530336212539330786595626231888070453070136437345538941173949891932127546286349210334172583820380935479358545982803075492699035616171570936025853896004704442530973113635831487477832606975384800792961864352435404245402024487640732592212337702584929770439402804524084363134908134772976357507896336024587068162481778679797656736661520562403325229401691417897234150023567139480703022584157044720905619282465275972509661204337733772454384025499134868961948907294396797598737202617476375620093590368416362534849466020515850302151406787490408481351635864211475492910389204673959881870968763427862326512070529967564380776542217515270141396924273942665989974342630943689928606076915465638972605492227471671205145812762116872881797527809808964132909695565321998900071229656895570739153605332442234645592277695117447973174386613044723631345006728045318135053564799499636653544209601808038116192804873519099302993476357255967702906016079371247219075423371038498428197148739128035046125769096256795097003994893451334491080584758572472042366126628919066112238572364241088195828548638329912767731254622517540578859507774055473981902744006437971482558220918817909471038642827142225335843290199317928980520270177553207883792271522518037121650346563111140366972883847144044277636065205090721643726794532374032404956421031581079634629470651941538825824663492861328091878033192258421248946478584217140793382459252358670633023443061721133469419052382945290810544954461321107777211264723794657945001780101282889671547031860706723549115855766815250787857967095154240363190592856730635454431877141762108130584463880949804975691379022732126121924838720815345221495821344162339416014277285719824753660245247475596349818480904477703653105139444849184261454335716138419042630937925625647864682546765699678585180310703435718454304925702607680857142548216745470138655777395541495130318898257813506970881496481090542045846427464987172564196264321067752896690405508041989975588469740711831168981284987525880024148170890428098583131656974306075373575211495633892189837505723538820433871227364819243271335804249076893380742102940943987993566815475354149189116412452280053232325892254317631557384485872784138180339615767805850836349424516546105896483399898575506897403872056797369654529952386694868200660541085498067377297433426115043289521021747040346786472324427272566537186244159452556656156380936976012210606940999878513671650422833689590383756680011764424026068581009913922948429403939102244376675346974304325834842133483815731110867730358654234453816427445434162619354196976353950028556965355854052807220791451449407149606112864816381559536841186828422015306225676639781626652812133588484915871902948072244745791880825440955709088932339678929912386495407484099407544110498430481889248537615863976853460589695894655856319345312939758498095178042807278052915861428671353130290901954104959963383803224990632808119465234736711926127713695125338352039921253014964112903323791426397968273882915340779474046016760603048226653628255420557440873218106042143768947519198310610048855611588510755066090109658837120411386422280615118300394281770332332525180242853548765406483256119066368615371612872133671366304882169922491891211014433946775642289879815154469301852445870200863530899509612858957605111344825503629398313451729163463224424526450606930088052998471141888151867589132257126642051540950181312623325873309549545613128869362274640243703826098459356680468362042185991535577440283808836562278309226022235000457276006216569622187392104332081943229669934961889027332501813820704454835857343352200932296014357931329754338801545440067428664037573399145502021484411430683084462569872973035778392153441179964022149694780484505867045051756531113906688124701498544313443645998831526294300021077694415352940271971703385893026206373522209946462601431876299421091289374642763426201086830474065658690651047097080444310536855885655076292903707460267960350662739841705689648880476348014740658315008693303835721491866684257780564169740437965289137862085955980049659100320846108665864019876725490608322848930246558193986852477800461027508971685875394481580572305312713952100206235353885684320539522214006181358663879829726263540785918827836326736702180184676154118847723130531418915107096345923763589019903896352065262279815058493638279916242880023140993752145468727333623000038213403191529765870266035805603843326395183455694450504067068575094998133883341400822236083079130272052934923877341881205942647963298733057494764791025919068830843297560942507436922773711052733230280709070782604541291583247621817169985480908872029876221171923426118982269814878635793960813636620035882109616675164167589115073082151942457058100945346832019998964319848495338924960040871273597916300704161214666382489516717315537315146985149699399587825352833330628073616440454332226814739854598199844073882932806909629550503636455639441653875463803707259986297956333782454808438091753341685004449799110746329585847702259678448256986503170491430547786916413871576054986100015071767991351966040259203760084986076191536769914655834768667001779215834972673426263003076544445104923992189560473729949828531761728340026198243098748014836496675704222003304263135296319830438589548519085451817181737612748193726636457313701436903905631049699038866038028767377918038430648713387361161603502055532131344840532841437368848885160887697870206689470666230734569438335930819641208254251864196632800636157259673880666185877814205620729044379526605800166261452055410051325531036788365719729050772991705889630608693792329624509103992339193288885287998567432720312074377830355080740916089190438101041578735883711330000660341491992756826125454403710869469128430480406613900200595429088632592064958222132641505553808156176393172034342635378840884062693989866376990667371819312247292498772614344356742514215090341262566782403362561370806854745922590107969459255068092065698778973980189089020782505597800142769475845077119382944622517974634813061612509728412810807822126698028690979390134256350449331443829433871860801914120339672411498407151788184707469415736314497487482105702702962430089985872382863323925900667804223032143981660059864763214992579215031593195825224139260097620587791306096811694686705301170321047681247796808275047198494708996455843611353967622600292524172731544634463547635319435751852419402152705743408357486279558198124476443361862498356258987189760380886821345757248932427305392521582182123272939470066125316498127134370980622094676113344212572712457614914316690050644329851054400605069749357149672145204727670647859919025880524045397601279957897764920018303058119334227933071353268028199140273183549177380987713444545853508488733306082730289193311747445246971528612543461832750446174949418453444672349795268381564763743040835719160882899047668124335671598423935139520663746081353365186834359844388836850173437824619384713825563009501787322961449567234860679295057025161222325296386633051328506139396121944907759113208613728436753277616884418244713357622157482092083073658441008170658800043119554197489187141948609214392972292891173106667695141557225847985821737988133442417630440718367522594333690645451996348299930768329098695819834726829766874368016206275976122088816561344026968358632664048587668973319204734522492833235835448586109036226088454997491191315579332843792521852174928083915324952574196118900111242778459238297022041831045468586099875874965830968576062494706344052854068854235016039782051606624235914019256417468712672270655537757367999826537155008967913921120322839124598885831395395902968165003008679492080872150709643919709113456799778988268809134540425202140061218369709851351259893648166068093815321157202708928980059994000696525084751919998176022999295490611207728137041348355802484425416881058244993781728540339816599014629252077582515551120687080212320365311928768714552367645112277190080325704247826608924585579008652012522723751819635194250021692986984498880272364733360609155327857117884450304034810997348598680564139728709654774183927269591181852592788774840915867975696417941785058848798926001551960875865685165350518280028576285014662844445939723204534250400132125861893902567763036718193466659667965768601195858953462668975513542953204737680856071435119714950574229693515108518164364237844863136876939258932922486998222271620783883323941327646539713990327698293494035455199604962936217672536610244228040857456647158703130950284376319483402599308147018431628206375345549461179499190819592969397869714032605912894329981719605398817573015678052341191250524435475162777165071231025901285152706903057814301081358824609271604168382144116304062469971171508423629710962457184314380474120448680917898899091275993398248964968089322905713635607630976251919594392440194235618392165415172255433205599685927330913593342103859422379002391555916019004512252245308802459819585552854677294657071917565320709604064018415983177920635549496784933312987899328501213593202878144542634071436569199444828349206112548605337280040290365964708230825257432556188615868416194826150068060085542303428594257618945249744118610823842035255792935213904554217327261502660903119764511430607986663069316399123539385542506109346357302004253257193131318806128913892978210817849508667594801308848365493706735396535194167596756682783270957200330628901362991690018200289300927416816590072496656593820461708380073184948873828564666612111236998913898479585143636522837151205881469656882254698955791195960016820258311110016462403642970566851198738117476661867203298843818866562821675437208830654234291197751183828093799744822640281341225687553612881666709999764277489898669819529139483816683530094552845892893915452022668316016231816356328625629079030976977067482537342865580970808849307264603413707285066488869142191665785496649062107592418873006971544495148179685928465144131962206256941231885897094639445858522289003730593026547630898839296285553001151885903847616751325816687699328871205955415399345095146315204491746539059786587788777522396427562657361471456173821500575584280801020515384587196050089889657286491960699393005760115528383487315120758876034223616846199828735200038692338591213739637989509115892680389528509431724817308146130469150455147965282897968403063637559258512930704233207548777426985200780452500312221543557455363963839637062033029242765747300535858161407240531191582934813675496714683970548492733959517867822713446901157956962696156097169694665625476698904617968025924395626689348501556640556010885963063455175943645658223541939084852971052136763577011786219254263623527812979751973576277834591738484887190946967700363958070340163478962824344169271996413531910732813227503271377206635294591056944028062174369637252617768938602283626886673534577422462340095036252338302160219325799186569762700866447454903747380519750297801271458268107244350624597433169494454195646127469272444426645563517700996026360103372557801060985375135267403494472709439501020727315101322850723952640238861879934285787475028259879862216145435723441062862968398233296463914701604663908099119672655289584781535791118987861373482089764754528136998797581690954283139034217140026581434451698974345960055693060496531932094946012334929788710082600577940467041652400800144848929468942816086914896114551043312902985561297002273734581436382142138234643811832501655031476472932823980556008987341713164194217355193899829403644839977665266834131429121826689131222211183956221940728638635602737223636972386490187336845355369883214217248100618141524708279202885449970413104394184276952014050473440478116356382407059367485867976577469052984941526713899539855867096238659529690077009093189732464119982472406567363793498772087444459554514908539029961570753477904208745909998242918562022152327484152095905562466740775039432154882021542028593056142667195062387266796790414219790931715892903252121237445571077462531384417208543890938601880035655353815093352475970877997506916452609590350821632484337875323831547584447163915018816061368847556537889893124023075963766560533968054098770449892493285326302513134379090483431124846132060028248142020327842090052518916344704056190622174780985344545687988443856675535111773586137293669289578333263219988618427433250131364198977675468377117586636800148861911764715606546500804566984737862751905176147985059813500353582078544127997448360823275522756479115323945458100432699130741067466293171967848256984466734417668313910299151803604546780177448389041997288744175905175658754002676033079913976192258101220449482853021936076117873624509931887765831351614521634083923671645444210346984671230460191401886139445037374142573088049530377502515740098056720549854506422625978484577230343920861472617351879738424921372719109761900300739246181003764424428381034286086002187755526727509273224067720288910853995829093233751493379034428014676904138472799370426904434611008203003093425731309173218167120011567591245683070761966194786133814257705223217987027814384346714737872269465344532929262834155143165683390318813577896493592606615565664748183289480926889114976893448792547864194015491480654082516139119355928472414257656138664096592542761234872645981618311168693488605401856472692778208095925865092642035848875914627069443511442362310986481783966392222453040790383188978416452991797675934922901833008731225661698289052076726337988901003002073724383518966532435268746317089214192485646845553027485113253390803360453540896532341517005838827423661769800460704210226681099007232952965648845928673212657936948571966438787086466022235423294926083775367031459073395705020649097058565300036370774857427729296709628776011036229082610124796623509406879490830867579105500854119414247195568151411697262396471795529270442995286421894909947782840244864234266918889650133934530672164654244336365826922318658992453098372184188957790231114596156696788052787209780410122695761331927118192233378991411195659936996951093463684462394614635413031561466526522827238677638432287497862809019145729809611819075797216578256277377491525389565278053428401502180937552387639559891911588497872777445219446337982751814812646897590217128979047701578118808793083503644261210223868569947632298044438342523581487855806985486609869018141814428913599947581503939261612390930905912680391362172242570035011142855540586249962033331862134781614821639835588234144484809096615789256658541017551916728770834849008524917189995343148310200785794664572582680789075694038256753660247915577277732429445127868871125291120565463247981536115243227396943821744574628551383339905988089943292059375203403398183805869062484932946409325552590732744808556345067134915646672580540465339529172852211046019147930055040011255559333898155473968030343218045804191723698287807654697148834308074949625526875902942615909661551709971591416522106246915613194807406219613088500391934860534844399091869319522369593582897146936670830479279153468111924194468317913593507355783634152252489647787258966885584245290864415625392767119013339324753564418395340999062087277705950027843205072891443743854542395796084733317686984540824960607764959865722980343300932786633320276391429371096016240502288624559144939750494340126494529871377343113207252341807677689008390974972011850472281206960867857501457103627911440860919475809315214277475294864663041469052005100506617282988935673622069079614613204764299334116234111938311643581916844717550874171574638639948728439661166436471696108604118574448430653684713218444137098782296143456865009126387112657118787534851096474815194359742345871841901253202752467831598697228374376876782405130650512288061273732857902248244881479300311049024452595346963742846147336889893843465443840965460747565834385111809152855172672084758391130881693604239751224400688326817366270027180399743672396031135283762138528456566996513513831365863255033030313162754273901001118343265458810957325116394237971110717681716535963859229176738129849378212055547619526868845642027543655876632679257489276946094522463929682769680595013758794944821741638169759616813616089842663587810315856086477982930766244575495320377186528162517953200956631975071978824104372893543376136727833297720073325132815993781907282837151703487360005562660695453546244093144107435577229673964252633027130578873823580836090237305592525541586811419771356199373532411844501419187218345921003178358791882215927773192990295481473524133311182619329301651711035857567270787885810117769824161018834939735936007094779497988722524247957554678172256270967021517556040318585182353978167883603695915542486301487956098525697964328068314856246180003442038523617314622566043474407598726839030348929174777973001478821074648942357332912777848965541793630479789739985290827958192084209378460114550012009660456622331496585234226827555288879260808201934313916120627323828096057049615366890885252146175651340075896810130607800925584438696120556811483783193969634966313240926013038598817002630848507283410160498599396551540931665769811561548318181498173126128936941743054900640407391443429227876466637206797218043163254037000726843308783575526877945199178128394998967994190907247829416028599532292318592283568598517562046738777082386473530432786641480429316940192244524021074587377900496083854312871399920462538217733389971924022899566549970398708189252510824069029384111192485316702864927221873229099268264367013485633558284766562675511495407728103851933154376665909314887960351237116845548383273359744280592143197197993291552044016307453337681340909803708042714358436319219699520711209140030026647104946983717288320410486019639356510144441294822860410370067379684213883515263912655566606704969952302951832824964059847659763133976834605705823533281470540263776637594521618552733685939912529222750563177304678151361660117617206050153031947681384631222414520275669394006271883782832200845918326597255737047356006235061987479497538321265613698461141927022655203684907191551814873272780774689356481737535104107489557894572448302334882505705353119209521935279086027453785718915867208401903644773969797916024882808512895917970338059338991564833571547473001170541666369337227794772247153486050762014737624841546669676653744422713963709252511890530326820401297842255592598813580794663086218247914409512408925935674029999238793699470902048978332274613964642771495163134527362948668454308689876754163817669753082722613595412516801552317395960191677046463735591761907737246569246109632940859139529278832635297966985914997411643375669337937726335109558055532432538336298067529897594783364567467977275162421317273230077456806201130606119538387906038895328148268847448618991773509161978998427623227444569492311342546974658482058572190662542226045854773005057509820034849090809739949520889316957881526932929167780160936884880399895885630815365614617271005769402306892575685407520279569252972599478573282302305768553825848648933397069005654823965410070880946696206335274662096914113374456485806601529914279301503337001570109310133242606635078911664253342997098444633649938340061138803529847077600201348203767535674661977424081118320037112220410951389806231363103796236734635811811209601862385839298963726502799215920455270535479116978479262070795502229102712233792479022108833893209715495808460030793212382280973493040607194088152921392996397288889165453532598859403570710932016003913716447583235030842612812683050762118550198006440714343957345669656021472243345035525792038618513271590831239841118347383459769042429636457402141071667541000289000610982219547363115905795510506760333928706843092497371735498946246547164390478123570565197585083257042027392235453408594810231329289709078835774705112215719717298497087864772129630854762722598723865437634150209935610475890502618012571566700344651957220842824623785687990889479967028020543548672286801580538078255614763166874855741909921247913889391691358369314903544227552432302987798641360376956894179668511566118905927291594646674606457864509215028571631935809858642184478457299200286968499937938610084292475217398197176375649789110815769714162314994162974963212109074204856813319400752351377750998290048665758931616831833940745588459682826254125532940262722917928325049055741756271711440627199480834259545371821485763392646836711896737208321793925908087019853766439519446962756307276449351437642382212037201907826585282398303773694206665050105223871977099236978635284242541611182024520098092117677008661486575635515429016310386046980479838823688616636777620273901304650405206631776484646202702720926595772053955106222852139239383344458644963658133630079826572562143208380971478657421992495231798025071673619745550472533356029715214127118060172505068361508932860434550837296088275959755876627890131773745386352093155814767176192333839927719783204514894320614250266506203633001015504328687503406544880642623123723733348592825188984657329820345535140964751739343878710192157256714903080078704965151810524725677943021368353775201585920083787652713474715183469132012104287695148629239405487675792365838750780751908954217759370570780545183809271352477075586498474946921146269839617534498649516376492823936485753474886319379937003097936478000703803574674985367252694254521318781027933116716569503317714235334004562613285173718480554964943690717714122382939523414617550556745102762594380108764588784977611357191316139367998522996797031856031675786431092399472364430982151672731964681591287098910562964627521667776776564814572734150650144784833073295810020728561589867345041734143221670393805353955773600459334529814956931433808604030002099080528391248361015334978300419069079806819561389132956604826870383911471408595010960356996227658813172852200221853737245185187898111699997306004679125552328918780419061902077053437054608763467028280538291474471005559327334459063644750529677117893715004916461911274501197600076825133916356420975381166325518079851937377217685380934375831352590959682863403963183314844028134063752064583943943146810795123084974257019869647105619131814653072674610270352326195277410774145186592856071098938473091908718292915061848910631211259890349756582223179856176748208691250061536301194807611659112531573808428794661956031702471034277237024079898801147780355249341634090650570152449874048058207464459903109469746158103654054052472511657120592893616711711648656447677105896494233264521243905153424205364088268957842093371166596258636207495643671634108549432750045925893282335213326693000367905377076981020577615984543908231152575052848014540554489936995542296386536834848118404334526561629435445932129876031619569313590288204536728844573265012285160808616729945310681241468845701212805856619032753728828735977151237638815779208537609017523346118211603147771940468435793891797264053037880787752510877672475549874165031053256208312350355370656482432117762577108018203451376080747415610501083515277418671133221011025185316202452100923853490434405907360220716328216319223303887073421426688548784271700330464237613515070086329896630466189848678436364036063165403223712028864375724718073670735841736565847209837796911626582404642396790425739037921726088739732468714022634298121290250241235175298579371837487828822266548094937175622452567798885865276292554929781141725852699546063714162056733578046735859528080856819748522897672578083038828112323080931098518289732203458174025967843709731224989536322388363849523913535318882742796957253826841052301078024948027785053902588162696376490665851455861902831972765535062268260845101031554521594012582040310802401349794982507198391473837435832818077166797589217752989578159336007140924235515809090042626739055072529347751967687652684402168135670138824615160733200493715139569702907918328042821517706210757658181561675494274564906689122508188750433186379197171255953166248126062241687564188915746477903328957180572299273474985502631328357629327779161736141187100141067203022742413069294774345025994255372587096894012906424188271207130760401572062962995645536975757360234425831993289647018425738151007947968646104437158639903488075845446510191140558058472722172194418686542041670434848027185769589429049904418402891619221495329426566914065764297733334455006409249672337487518355556170356049067267563532737821121589339656638380677131559262751591620167173270879298166022707125140758128361022012748066188860089345503610755287855292944251828391529997173622241372544097348466382624688950689731104899025186634274977780158528857746390358883293083636263766331420266607437045043294410792269295232983044291591764474483900589365251789236575262821190283123735379599919222024675015219168051001654502750081239764981530964090866613754849710756353218398948426533223774594762860739801323730512130687766808141869089815923876065747081517735988662586143440323266757867376040583603952985113313978991958932017900323470579647944363899945041035522994955256742172124403929801450544018411755994800120741210135795015935701448094614570227861889400977762845540780702095694531729154469443952485142958115366482249877589107768423720970112331667028715003960448768101567426567539867605331907945646547737867558316457167433453794161340763667067780476877813245553215775781072039400025773469921867841507658301311295888267906325261053686689451843710774055644280099880423416736109197443225223767056529949060308771407188223293420189113708890202083462167992189811799657165724722157847785444402187902516464758403740657087785666827695994718958047163422526110659984370363601265098940021264425138852132779990538631156600538415982855517528256386601265375231648397817881207490534635170767620062530139186535469936785341226844906775627972067679575225534516689813001550150547004135543355450918004353353815419907263235076524351905580742025209375362415175298602984590589276281295583565803157670967372980965225112257703168941528749721227146740778230752750588276862260225405839757957451545308536673681611492653402815881311952242041937596855977191928677522828622703481232293140029837637389482317666521234918158911545176403877426316684238633839715896089560287704598529945009343378114390687409484747024511483440457516891831193355578024571144664367899850240962205310919584406670296782048773265612037029118884035289100904410429404886957027902848056507463299230206685880088833027933320361095577238978008963906350770824298545203274673708254293007884283513739270008031628943574507327625343835337483431894912790100255531457116342958921147180149341524514480895507038357668069673984519837498313166315087283191388907700341532664331996928017920050708249877744264185571550399161123341381682791096822805924322121565112049818422034416643861246803373689003756977545528252126289277344260241056942181271055261738420083830609960856560360876581024964880449597511178676314480961235892205207187113178179286550774904992839810330941357109735713780724619722180114304672936837200567735607231156045066361572821309484638978949532122082065781610016295492546985671177144875698058636691432798302546267734064043584127356911822769392047855787743696418698351380663629211180609538568060489214568035073344199620540695564011832798099485677488643549077472191116859234626963376931421983454279200459032563651967445548873496124508968754911272468696422786265263704131382168598782544001241555695952675216562521889933947250257130884937789439883259677465051353684117713466021069900398556567647045563242574873755413932485495540473308434804643807853078555319330869081475854495354941569950717912394621980859705815969014386083112058785407745326027284630582189550661558529525297203857523136219038346505149150634392358516165219768292184457438008575289612463694995174465161526729218515414342023296888491081594396148062479741073323417874512966799968385988988176206779807481360833685126321243952530392191649640731104533334156291477410105246010600875728086130369680082187553594004913033977281780580984459577908979765579541555215832679977807014618867288520834235189528940427732747638700127451902534282944373469946856206570939708304195309317051001783737356840511532135118738186058453303939947802024020650097242437626846578172980027462987403899337140826950238796906709206919361577510232078488686576798061386351085404194298495053574899283088393452398137128135403790966573892907954652962638711170348452087076820511500174156621624719362860372443367763146080636604004817369576294260310555513897981151169432596428777152725255238663703154449021580196082799924426026744892249273860459509371302787181377032319430091295630910068705124975137982446117928999839378844195432182093181977873035428466422059442244105137986753253431099670121050839642261363923196842907722086904496249149453796725283534916605017279112706824857754250243057296998848450644959980548218833974489710929048362599808937372445371862895014151306322109560685911302646552055540015274327993009737126130230573653851267943848126684376024823588776048427519373209305820188648089018143779834320386355087416998092665637886459255028553111097871434057683018499011319098878125967446543053434661923095582175436741421845005571298077733013160311326922341219143776174183762791830377643102777682453378408904159609558642510505889075372775224854369394679997366988329718165278812526719999385956210051000812336411310511097286320900779488486484661431618303880483545228865644390161550079688963361957664322848898004427217078894648225405464287716068403970719907490613272707436884189748239155077966673700931765184366301595570930906809947975024210605837301911284864372077718612892182649341297107729398081200655028387854489033858407389822281696144792128597776143547484452388935000855709024582538284198767675137934246170359560340037346075429992951584125747832766295734124704069532336400074907598388617243113974929002462524540469863080103715520126990889063919662382543877326718786401363044138865579869992946666038934982589620199905451284899310095571144641149686909990522998400239017641734090032206063576407570730116980927948627395502908182393085844777140279212015347972459576379221110032388748850837150574613997931327242012706768757150656685112734147535856839889633660444688486608676528332127770455722978942320760365934206999667983083306940987244453728961116089576351298293294688033666306194206475997114292812276091515778392686537176787892075476682217912342025363106225529199803840156424165808101918030829231567596808264094476974103259439221644403493244354651578190378727350244420124254587688610331864163702184910050089239830463999633513196651432336032646955769577539234182612263903364647543541691219636408227979913722011587829182234031427111056296300677422321185210861891163775331914625717309415354981693981854511983295075813195079186610643517994902137106793441292040386690380305206302191460464393144339395268419903542992323218232343877500781309878948647179903336100562009901672211947169324636195420215536946398047092285893333395229606612401550183818394364654939898854074032614519113621567374774243796953241656735488286157057317275834016861649084053585022348700746200438468011779294552834650555511667665397231840322570989971491946103594332307789146255786553399257745671387023692240975504757449123095019807622503834663478267016778754676408051952674584959611752589505014635658233810659710157336046316070642134963398065180472058938215307715131163617035562558242917319681123090190052637842769097025792363227771797241713307421852609398329615195174372944776096015306968360385637835706954647240275909428574866559168216546150169394850493871440357161535451531637608320958702008878245707569584768415154782789940224852935977418079313964645207961085308696368833562989107601174009714050913031594207985981779403618825030172165022458138593284436047446998456185979986691565702696770965127137807065381152769129021552885542840043757226703779754018883611937001721363451175238589159817901126695399857031130486085836275448290789770845208437905061779421956150519762988365075014811527740733172412183739776867994160141274498367170380944043549928346881886792054969972446993543204279271444810851997226548671783109249633976285974839257307003139774282266136069644289300636347202654132702602083370430946511925375886391961185144355165050579609258987903508807827424992835897335600186163444250407768738802812533037041982022288522414764956875333133690689449266701746609165180916386139497502557856768922319124636377743137331697544984770287086627963179685348505923631828902340068129593566133605594841923289967659759691322539573348320669760346032287258635165693022203146724912073173140463300772520654832271779235501624693185454522408390170479378432549155166544796842012685482636487075206064197715452400659316824699933751249257103751389967351746598349871072523409710092109493947564917215996603287845094023073525690763123759678989264064306216531766547928431193869495385851089766182573580546650206726908138463750024464063968259290159082676107718372142422817429684718772661489006674624994283699199150721019631997055903509018861539730251325709640342414678299561619236795337607288332882629498851373088263141388434149745842831806406705791624239202654781886813306446097266051237557518505374128064981587426752165481679959027305756286261282629130565305837726581383803252734449834786560850155364785978454219889424716290469397009235034207585645700398437750503007766893211155953730679489279318340420463047477864569277489694055338904704877335641202608810709919952970940200446051075628861860900649433845821530191680489309699562450634088834875547249399051457028587914592818946799227183748056893183448424302472578843058310766518467580056138824974716307141148521376366156163941455651765629003789642875245385565879039485875411550932409017103855226420440005035064477864005515519600151894813124927122420923601824885447184401123028060591388567243819616345245803942914576745038119225494911402789285139614572913670664200916712191162846901930084682669480258078734307786431153968697152206996111427281344092853193833164066838688630889341514643158584645428909594357690791590137330349327682795433769826771024086292386473985802462642873005081647067535362804050747106703099296944613926718988063302963068283303162494569768962936133094772949964615873695309229875647384263028616795656551324863500130336719622179078006422834533952077866972780817669541550318744818436685932533294282236029344218388196586993526315382463140384224482193883449595228850077418751315377190361057996703960695679793849675621235392875109465109157422284128566741786219459024624119805412454509586473238922051225782015958161949312089975493445173148396872545925164981739701247299169236290337963648713456244320067917972372722099639082295404008299221632759024989808313804833357465887460070673013450731666806440989579444106891139615371607773445964262784703931985536192143432585554023480030680895417269278859135371071857189062905212556195459376862407513311194417704268976259664856226508441267542963341966605253833248636828085296922965783858218206820348482284982652908257852406906373760527906723663178432768414064448778808994865245548557770997113275234110494824461906615964675312689444189619659796338672281601907730796397753898072890405405599693531512175380463711017224058263254692357383517021857436641584991414165299316196429985646142047923614822410325444325889848667959623439931951166492317884869984760611200238688618474651702592562493333202224820228008556623598593845787344528281106181649236651465591827007416687053050319776695359291986485702987743536735496088472202823890024233390581876699381856914552989719285300675911106955551621085508785098225436947659426602840825103158688646869426039939754460049650536338003556073171658360720706261461348856642202206251212958553798467119357571971770024330930105615665261104844307790973224910717663866298866975874233749860175980723389273891815725485386746450839074930824975814443335175885246283973776261197220924516641498186551247259330966796069246585107277421707246072878636476775591516655999636626610011384276801252695477964998908389239385134956913285665659811597294205494980149069960370374898745423830013002899301624842098164504736532116584060565303129132386117430028976612349120205029170579895598080777552054587696064802293375545791842096509614012843088269099364695216504973068186845430852803996725128185205607419289932712295992594564144678640579513835986585411282341766743019853726243221965083789933800625199619973203861461856202808749638346427430854402455772486350536205927816779342335500922079744500123570384393646270840835710830512709815454440470626581579963328819613347863584195304135766153543206136525857146667007246833020424140027102994358263929527196015865330499675657839085082402610236083549197990954525761027681375210426118293697845738715434069495984792124153160123558259725314032214063751469115672632681765870967603263737166006720009404057437018666122796670391000320820927619314747956701865101477609814477890987419180239712381188601935721092693002017657051407793374183701334289602383030615545096559838552092524502331227871827515362495307109055729712505396200234519972613307556656370610977750076805761712999234785595017441096535188407848680194693712554169777074802612340516524751864011350526772485459445646283316392872100595262708168515127815007699758403698091564134633777597959811909087737943471682850514000806317562702097435991584681475292770153841339155531826305771061841602304725135853635996238170202426910195271106426704770254589566032814331105898304217185952778857093752336295494783373904734070330124082647601071760905710777447291962678594644199500728690597436066246320556398738468730671086846839332978234413603192565092581170477452362168119674445171600546489648191367294734259285322705039491895922984774774427455102873687823555479444596367059468997892710562462471348188220544688367183550585677289119634078414471781239283447317281190537103074631487374389091311891259218573185463033728052630681410135700267453660619473145831085907965168103721255055528224935432916012036272878990726031324054858624938518785826735747858430599849125388291327413336042043594254802363060570759394747888685334824484605496825891823949895087378705832812069304793264935579403713410338163138843566140721425166198465125281702261956457323622055537220255932844880599375673875174859187522058571272961348720593254557217013513017805436821103902946142499632522565235756072103819257311979063953186330354120931732566522062117022483469404372220815290588861639764591757396354984582577188604933532473900497497461892934114661109329935705406896611539995611944643906846085151702464423535570132409265145302175969885738060048534290711667164902094615828370209899303853867057809070824741800205702624987196421134763021591319200744897865934071968314901713856847103451563770416268377766105791653758119906772215475914388534788922292850775039066238188155959164777917343853010048945193565366428419936590267291535691500208797928265235402344000026774139594223598898197716148455704360488037328506889781029323596771320279645935559663113907120714957935989607205233275745496218833464618683794748758169308371374389667342610712387006452244654887283422615906431989792625254051489440259142890042154810082238891345471086088737911790163748457329576867464510481997346702575029308897064728447152228213984889487583403751704748706434951408448697447004791366376884263793151715216879585204010195862748606060242442203669150649375628422922293097390796858781880532518125190687779358250968932189228571135538873261200740868418027651660959366181938435602008526520717120753237743617319944313750744776564285715976739168334541765093422312135023505023484307306106426471083449077068634834808873259763326391062190291763901383515369020403058548327483144786727151437476288230476826799518080058301099318702482190318284477186969017292775311740931647003784681581803881800549081608877752197745103753806450059758711602523301201492851757622037696665377318738740911706077153740261242544902703940955634567688500037240807872239916958719082884732635444853121116377609654785437974157861004840159162543342252849396524107158104744220832089763836661060124629761661824880108272622147203254303720927316163820586231976861128894233518194200036962923840637704748192952449700270286375081798586221387717956737207551514791162301284983639140047482905238838664751472683781761746441429376596019889818940228264278906831263748180910933169130957593382244110790624933330675854400115800888787511394858137470605690225220621788062606137936206206380947272440386374468513921171197174372322804406016203557105259863902220771101648733466835792717768296243640371262434627471084200227086788029882253871445908058601610082477957489549477831329685103263205197714935787846338779230475396066393486905191445184644672565387182366411691361094675758995927490954395453303297230310125986155707854049089487463155628255891059766377837111748611032220446980539236203708677018051483369974841989872573261417371280996442592299632357640233772973228797541417594025803060371886310300141773493386747854072015258569414085862486780748548691731375292153000690747247640373730669765982420374646524367472958659658819270205906777065649341276925373477716442598666987917651278277518741802664370888771361731824436921836913774509960317598115005597660960476367295321602664927541716320247035539408074783713257463758476715826379209138867838775456444961644451700496186006073189642095715460983289369099649603684595368208349658757992107904209602960089279296546989076182559634411721812805279817522495382495304091779840358191477590081553175956721207201094964497558509635594132241259218400576796161560418905854004144048852137239691091124139321151892088822683100725618545911028485679935451153897868380514293052235541182051462243042168568101756131241936472944973856561568705270266273299675024278262743619605414604707929189620387606290844615967949127825321020502536289890317649145360497449091588540530665077456888728125157902620291562108168492697241792930622595328139152259312546763455670378018013219335351518756170090043962161362458028162871082242928679078280441473443851757557951806189964897442333026361379635665830305141055243668142163162870347991857759110685037129422754932299960466317938578650155712212711125856190411804498177497693974290229878135570715215646178045022949591029933852621108324611663241908641001483883303689224601856992365151721675415955168121547582948027848723828436726605441087526608957973514571570565371032898613291775899138391273359853263625559397484451458424484289590245866267649282296557451959803088575740729565631674502006770693755114608244300840305948123961154975883964900358069968533219476680521653648445048116480588930111415105158517844347879581805541969987232630069486382125831688597164535380326341180995224658676755208183766159838990296004991260057188967269037697952204759680190446553050179413310728947780946439203050849752905103454574165115841402969878026310390346333565629377627716401998080228123243920873656396978860422228494170113203848492500542902658835666683660453958520662742362943940678445636719459699139165587632649792082413417506250241351248164728148467363119601060757462804688551644771306504000537487940198628338231151125117765627380105696360742679455912470732868896784167023446881471820301507796516521266459020717254270292996581233341611128424917842846164152218000206722854029080354479986383003730558202473326146979991954496462876406055348811570068701935957143831946244660392209440945750697661935539266295933980543316551663325751056928174371740262108463145515053235182593109934311663531090053801030182904173153502432316994921259747308416920879705217189001732642708310120205011752627635823161174088968101234659070050957878890351660543516981416267109462154119444512894782459943870134145906932527686826167132880596670023687466015596117812984046363967812957291476946120253502517592083601644068549474363766921010730411834338556782614636021138087835870245134033410788548204252868484518730215172972536029381223230674666451937682464853247419848869837422942392198547925308475868412015719638048337749616167890337142475772109003188297177299649712482204598052003059814197411881215543973669780099342881213816226043902276744057636758893448434913104134139215972244240863293553103338155693548539601343824531285237964984069338719841120601235384429411666264266634341400899033143000490965506595482732201416444470319723014894057736452492827889173764518535294960667217952496717564242908073842217038084144137525772832007631824745929244500100234606909022941231166819399818571022614687952825434951659773526136116999309103405379609360550142022673907731599862500291503979113819120572479863691135928489508461537053155051109580394440471370722754397367646493609217569374282481119681096347412173876114530918983514522515491343797103693850001187313874186098837289366233599881180225334055572160312246141086513102012179718853091184523837098829618983521364946171117599500297828071083509926848386377360953221004845190327844165641946384429768796972918600305645772922013672837519433195197600802705933605422309629073131113868784931250136871148774513162320278062608987114480971052122427314945311564855410814708733710524116265211136746414305932765189870177136769938650927539949511799670034075594650389657243037149094041670753726689596985811211197277678775397402554489151531500384304951661358092842371287820341276649202992298985282874930945696124586999351748459471599461617873119998094399521224054525370429504359570272603118841243968838383111046586214379389558556204277483708602562626253379957325526593282653375161454621858787279542282741260946060589002733539046307678745161330181451383612955648522012205755866152141425900916733421439426698691664051762264886267951373093769999668468138885781976227985069516454836966671126507926111390922389207887963586570871832317503192551487752811563217546141137467100584725272648035059634586562750855288501953104865462388383770894944059409026816728553913653708067935848653511994436498223681109977852005762877867294886050776309610060418048196242453181365513942059344516498186296647969715716646561984883820210863725355676550445447243019277500271577534409929838495990497647154898179083520350613154215011066102338581393062580825732451018328044589729863969410085236692678985868629206013225379354930705103877565572768347130842623830534369221228630334116571474186709639275356621492388294677728920268322279472486096842263358028610642668858343321682344956687189180168714965841883592080561417403657952740466410809514416393744953044974421218202267524696604607432792675193659116906624644115279981850169298113391192434157429887612512975441253620851404069503753335422802967389255865360309720015880289680657516634326128006476873204565584735779466128937807924581420489939487370039845558383441338144779075851118052264801087959773255625899390205956518115585012165515639288920082486226510624240533326048607603239309788149895650612360234887925809598329477383911059785365490032213512481133001228164749530567291521833119863292307772548666230754563463116773994705538918301304576413961024933794750748641338947943521339597395732484217638606113037798883692757079855864277047570231190847570065042365302226425560635324786171391856774158220553902147831803297491889175731113068219601588751289817426614696015671799602354667063354233473266608173051829727311751723886779351533187212098661357098012308852796147034493149467994343235610186075194191496336280436528297615914948874822516107700859839585667581943066346757887803862947997612645736269698863769914146689185312379547538544618346024797616607227324659880105804715113545614325554672712886978604309155144781105398018776047944322783042923588289858966940825626909132335669589950873035228741767844378531256363056186924330350725940430577065040824057666672550424931876156404156423604026127912001171751664178566060720424550092759759118299747777216585841644629951190542902051372477800036796023542712746722882221375578516298191765486498212541299497678590339340647643093566597715214032899887016299682306581305886649708734219494577233082218281655314346859864953053280081127722951777529414963227094165323920456935354672731924518389666566469484919834351137330645008638599942227376823326458895924821995418972072613866106451612781230993525210892651391267453505815429639690637836284463410332265925864516625634251985880383375339927190506477706003957855135540149185728384812193425002274392772442743294406340040284914795154602159391152873957066600117023164430479529156872889971847759551765810232843668823218159002851694675511844558096357559067921343077375406940089248275220709982923136140698350846973397320994079977441509044146335020338955694987550185861176018440525968738215011737450687921123832350626676822517828144197540752598574793183807748272888251586690159746269479986956120202079330033926656765131556459390914310347668338421219970740306548350212503787393118138527990179987900559799703998144704010308877269362906667299021727519626662818066729827565582230763254338043808626738350253466108925044639274488023382434814868810863515903328985511816593178759265109900757350236557533420011202924751115704479262477692483064770559451729089410733734069101342881023763481135000446595702840852261550638261829623477850576655008234546940504999736684418210440074835916830553604996061431731757073331843942134471325858802233730939075695103144801182079584143073568689294983364252026792754469277650186427747097866896517059824866766361955222961746124407875122101195799142416470078657986392720812041003886528466475149029484885088421938600684756321164168246483538165271234346382515010186215362696467078166158785243339296646040151920415915138219931718657786021818909545268113762237639033496275146633737554536775361627525092815612034784407535246968377377287059904791462819730796148257313147830291424581620552796542122888328495206995871702999909549414772963241152368723793238243929525490001040631752077097169061506600622444404032261015166869313084311804208108334326436884877565047494817245232557017081348840435389933474716675492039073043711270562991529602873397119657419683564677518011283448020995020579616374721887966527393916787981817230848944461701301966714512391930151532287115126638170636032196628090611076632248650439966700317847145294650918925667154033315823330667805162120246003382710076524853757484313915020308492633460453132899943249320958854795496507806162389954699477937564338619155653682248020808839608004725899444989107200976027157328113768375769513005197395988274575425740119570852739033226323826565389859850986279467369815504698666569655940703156612211977206905311632703732521480916059542735207968763009719731046148663744436761143424672285381300340583795663530825982938374311227331615241440717637944071158419209687046333909217192870271870098389952892614895317144831370531302679950607536407438491774326756538767283673121623141145469804782347134986345430362854054986731170132444303429703534204619932160315582273745561226361897805263521708850434287447925243369531439052579218457910684341273590600951889465357555696199847212226185766895041676090009087393030007200699369093469696685389177806743465314356207368104694749313524722971098183476273231487562399810763962282500705134753475124213019502632264363592833228052644347153169464659211023382070855362315856054671065670323077635496231183745729442762219126049696004717246591689171626454161467643024820865783747851875791276348658628941443014080836248435807854338453289678371399108559568728730775825100725756076523840149397388006805587620038245172932211462649928967790910387224668855771981508375394521660335634564349353190991389355383117497301481920315470111066515603504156400141658124104658039342803461464242192970605566057666193688975459700235872932239441316720049387343040503201576569291779249668987545707526962130025403967641228160360760296627737504369300522094564829184034300326836208570324361101380206233332965913328664598329038272730093987392754325729195531069688120066993744215032338354166616619204387299647809444735489404745665325264479293351976217163389725731535185755677285957972464311668384255853379166372944379834603313757711544082690266887258110153374555108603183988565390338479477913442033491368469527396157745943366883035889330352142167006761014961701919146739444118873777058137269737151652646401374130390688867397797496423709621026886370601779398429724596886674378776164553139760378325329353051531453761389312355284531162815418233161520974489420734138110484796109236466026706114184212937407404608637906626087462776076216657977588860243811535285775365564328477499775476651616349434681643135314885403544232257386356864758463011211311948772628068481090586706364913340887205515631356198040296473859589378957519812088943016831605700186143915833045129830214759083129825017275801239887303719547274242842004008310067313784165700076137369960965779502635517141315311321281260766984558513459556045422916703450769848670187496900536917551124975324120291558442218020182547025160673438780000515349493957739438618519984232094576530181277099590180133583239454236179512619962089800740561043343086744882573819731261536888911982914112128959845094803942778228845938665220157104862750515927683657984405186176811140056825061357516318511605911848264380879662523053743737071909398335138206016844194858011682139309575955510707851758327315950032535982938228273367026735299286032237762618547262678211114882844683599582683122512827352715955730231193514993951896949876872990649243428338231255591122930319927665013440617314013728207152415268245377203734334379099569952590001216188137755135693964416107828541588998935240424764850234783983364622055481058214411210217402398996607411586053448739313723816561534427869862773046879212767568272454882819807235711257466517938441127860015926064535355940898178002793565055424383736703856610230621512184839610951859117670725784447936906147236766158923255307713691352793481934719439735887251220111886929563290779554664959794486125849242583861557399423089014844088174430863451580086888384081195668888240296829280426237241062564434623122322694823409190054926512383780465058404142700560308370652149898727315367448908440102396289344297076815457644211681721401646424224375512404319644088012017697499294244285653021741319627523343862712691815124788218112094339638738928960019016978732210330929683921634346133410990734511434678871616235571723914691294664727324082686569936478448536852640638291695338570145658100101811713904996328315907504368457615062896866020091052028236062354368645810419589378910677326538255770447418358131713297514741166247279547896594392297597018788505997281291359552308740977172061994043000556243715921547422507210947923107654265717553759130053519255558561185857059794158628485569117275555062573550323129046994770064458313947020626641155551324217125435663191548809215981413546632169582092812915123940004859816772331043155943490140742782296651969822680713960575297136460145166955730750657036778766396928712485470169673319996436841976921772784579780945234095355085996588106783247277239026801654799199909784676353784316454359772977611043287827874022589982361498708223619272589615561494910150792318318511673714795014059805616011637085013110445335078335887799939008506182763378021562722818220462946332218001522222986000496490971309514474152917312551634164544883541538626981417691937525855789191490157339071538033460837056312315477789380711807637959776752593323128282980705417591749533586312234172315425070050244632260018244112505598969134902137165503808968245090805258763734090516641264502625748622500101821308262893371540284725533625303938053359857903386103019639111008560420118934839449298122457920219469642501838414214097910926041871117003569667753735587597285326259339840331928241206552716211405389593546330452848577325802663295282027386195197378177538333683903035737394935852813322847682490434856756621602964002123268675647086980887969779666584650531037778097369831732517680567260914935836321306155809236149898523417731077022323467517461216320735022752488681142405374448987242488786927014451200049226322677059059592523842226908430345873115856223824512037396338082221630850726023255807642669694721313945325565941213525279141113755410114126718968681060156941943846216729385771936015199043635146814509971425097013847665608499779285744315257896138843404640031608507000355730670336744102064339874024328323995570109994269132710358743338502682260748578138613551048156199990139344692345826595795611277187242165563510339176458245117980279608469160730806685046551651688811559349951582565376935707892402180644085374041197487667788151883397392242236018221055079905693528504549052480227104967688079548977446070203828333584734263301662184890967459960769583012840010302981495233617748458458135678722817380270292099227749480895068087336997163845877192547482823029453747503752378316379597373262549784270783861438425944017489539070977115591891977377762556942788049061209157596071343340184041635499066609145358372706065746473543450837213806727833650228359394351588015900386699612705164280609306061882787688742985867576599189489380206082771423680596178349881119507707575572616023984560072137355711734058402969876009696261661734714857068131321033600983081261764392895554755471526637259479134542028796388749709617479167804706098473841847502550312917821922689045282974019069477979496674550392740808039530009581026099270007172560496733282972849958802282854449783966431136103623126133896044339775679790929332155616920934153791029040570539561725316263336312510055226352078016455080678718481441746693756862189159647944897990704410776600130056151431811038437205190141341817794193086411865461072641662891149597186036725893004619626646408294828479786867233550950996114122288496050328433990385744009226462436945874978147342920238135846014560213348345389907648977129307696681214337376919428861976291432410205152756094611089316577403003335522716113114758982801994026548471565054714473509113759946314957443198427843727409110543634076259108727440676408429954341433012512833052571752792784570834043598759743706555875676773428475824641934634275742927511486059188321320101394088992063004315545733936281908007681868910428624247767210058813288456900764736615728786566893358128322041067188425953737240786597041643007550543507895638598883127609888087327528207588454136226466215891745711055230588576903330366208370500025390071639130737362676957111847455153838845396309418719457581490607806580935005415382308990609659665050648600013088308357189549733874712665484412807855839664189925272034154996964708188143949751904775585519934809616470478610071781377439025081305676375558057946127348046439167756200257407708086668349519623022709679428576762427020690246587173983415203011950805652318239579484081381236403098283787798519023428579586250570481601676822265499252355584580627170524766058988699936891587565116331447254434876557625240664125729375864401319179128040758492851127335302883838763559072858749663010053304701309175560042265805085912758718711207333990543157540302016193477358188750537212691990896569019171925223573020074729668819330816768371060429988288006674953305908237701303855554143919492721608443597546911896418682092986512655625180862746140175323293407600045454015485292381416528360882923896769033482780256606094561317643755340151066681024950207329713269404338586207762923900046229177450166963999969460985935425594077255064710761662799026073433392484440993130660490000920104301150187922147759344203818301659187560361926118118055342846197645288652019761501291124638768714409317023991655635738217635655702754828318780740461224267173668014230144839563753050047255909627230394797625968574672873657797582708684488507795861906390567591403116688088072050515811473569286135557249502790295989967990875645133246683156910684568084337207174805547616964178391957105597907876471542377653156368994566102105133440170894401275006608106752956699972894506624536934324649232654820707237716581514855376762406478091480316837846756889859637222055124806456439005248445921197274102100628411953311009801686987535536909712731223287600858286135800476798623966050767055394227696730347159167807383285926271835704766991549645521011540854296340081654442433489473487766153589455734214735929014411542444593717281940828217646767439762782202127167787176492638548009308634390154245359022152111109630650543399289044409881311731210137844563906160507415062841856479706591654011402049666353643238569931813535326430127557323733481270976991040190184947571624449786422309162765523369416791720560357667564137602850504763624917809228282719621457155420753993871474740673594909273977150406803908188495917908736034045546732968006150611437387798724894016029536919010727296803023635871997114467676700729858080785451915349692165695479552110526549415152493607080652789398169964424627677757246580483663713854346661544283234705542217157667181963718098776276978981146804621371545685068666747202578631314093221256575462690733390162309209964286078216478704047101242829887885918037350560086665286386580511304889020402555222617677471741692046127132535426030527764537163132104784979849381305460981200529261739309259166973611782928183162805795600015496522539986349407769487719944238059983997752217871909947713541779403991622692935606472754146834758000736048128860703076610623396081984872336581079282030946009231218378465591734014024249591718496744378866644275834082936692876047201964055800878782980571947096163781638567813593195016374058000633107943620410750631551488711357147627383175314500001242873431890109053437090786038932234309557913962828264340470163069103780104699172122777257439710541053471568996862385298665962372681058823976389027951674238598499774322992712347643811916095773301147152345141375413786287432517214529285916609943978856887853674819710588237363519956658143094495948510016013945275254938375826487729333345851352662586879159359018397444541356838512185019862491227582178130818021795897439714533140262376835366248334830162471409321203737866867221367879094590189720787343387859859149323798361392674705192572630484343248547619921698293493480956769639723913463915275980858216800191899604645992792245914100134512786408937754830964096209751720285604832193532194677320562011667614691504686054368818961825426443270065884521095683989048952614422594350631721049519212574637222115716086848438852123644050945382053554858691412671906502238243316010583543126818877316966089075292503744768642356916604531342667005839727024102100065477937570523086804775553584728280663292916785187686214561258798653944360532207367392044296651609736352636805246463043462963263344909591922538241978247211549024077711654661499884611728495397280603243572251599235226019534750250306414158472182043149498163850686597116008981704888817136410116719928351663049921682783017602514486175048930844590425406273151504806678896132860584436749843008746883616511643076964837514117274701823138002746360102244311196384055304377370524550452641556673822210038018660089239632153337699459270895140385652910372857642483903888924119392184800652451131796701368168311805434258333305727504587183281111627310840964473127801484431228324516175247986951240719607837038248233856543368866990773007869534633647020099281037444566316790076902534929648909960933969065098323560248510425221060162154945662738373416977916033175772931707580461290501900596463822475110749777767972073618833576722163421760085263340508145392760781342079564631760069375964501540097271947415142124303738468097180083628653320535111581698413883475099084043131581512375476454670047454574339006647643632842798208753510008527294666906895873201321128080948252709215682543638093704121606147324194066917060731972885021445048367619398666407025207208374781650453915908739408995487578395521342419271991917584086752961800760177611583589773400643130100962267265372043363958533919122435322525331218567405317912576852540077955064722545049184741772603579527335561589638711889417326633729867136980960951689965927470608488493381521320002873819533976459266355960817917878643095068485479974580231327047105914981248089634789293019880907802192500878740990774949855372168741035741908568348576809342531669753936108840830061974007665751516317021632244958365118352351307235683565053554374903201273081188334272228055219234932548829652857553132060129004739067630316313481740243674657343232357437746561281036124894845670039899549426309346025258760323021253125256671650923569529618372957748154829959296709704856714109310220339816683678289352440434843383593588682596134814793588501346715525536315632956430931384413364497640629587504539873355503408102062346078520428511343040132901745173412453197485129524331439906954673474437294932654480291852578044931105170639674174203443015501820407296141713179450772223674309114954559555456152088638167811506269892327376170726850071234525344327740016762140043871358117750623293475902290341666458862787583739815185710715015610030037734098187372426728647093719775776426383819549606227107520027792033415565878613101101154461565330996088391543677782117864925622781374554540207224165224534772282596582696620885704174237939591217092944937670826948267836606667694848304506300959427195977158654643583540050893276308292125248072725063354727195656124582676270918094934248858530356978363423946526617614689216424989521779798530859634444396795839622657896718290372288988142262448725359369665511985169526529955396827748151005945096095128686379466118403982490725221050177193289333053296062791659605606366169873326851493742168683200369785845517566605048686000628328542015496444563376449668131925080503631756504634295863503488106805972570323511383034830171207508104243941649565903789096062283754603229960598244435596916452851484370564378693173553660610895707392459947310752363128035119336335224191664234810940296382549911357932237403854231826110444840504830764478301872292274994994386075447003834655904593280901024707659151785305111270384382851035808339577723056388703816789794625698873523962459794966345582078999622521912077772489961342428808997055375658933312741343565689074808795888848701037860365654156197052201044413273131918776744560244096238241361982229433951489702549274986623124692731319174713310273052653019896363803872865200340422391203089583678398904976927218523486532104511968797929368077125225265629127866742840242921764777858314305123630877573431280348623273444734824818794200638885375413583281355979260037611445690066748281795904412337587495804143993324299661919520398305034090927637914396090411843783103650043187729993071858234476381350820598312482624811314571430263341283353859992253365089783006863680849060020086370122258211182570977110582695947221145622952023675423372294656395077459922864193934011057904508670309606916846826980139224717078733451583107613275436275915546121434071626676190685046888064298669365943701332792518847527963591653678072099286417968875399856865945884426909526768623819109407840975803061408100922514668120232536853168291969313880767953167903185389122021335254988859687156630690472085879444121334509687175643830587416889430763151868510923718088356876320907128659808612633286916762226794285177700850461207883071395886979738192363324869368235088379075642122637081740402405574272664221348772414329524370462098322849792163131773381519826603224557439787038908871217449698978050989378138506172492935582035118597238997195894353351170994502153938640229171551756814784305802129200037566186363993490764586445807630064523527766231838260347307393861332663026061290331738913884040571365426163578056544770774045127771466596640534555688178694904305494713212260614813411382291952633411042065608675816298079189913649803761767243440756241501897594680653922204798649526947596495954875000941017013578721526697136239865229050757311859155240110201594591073073859624415348923986700371825818770499583609892766105735653643476183133688651823241125002263064485860564144727139094929842033462360181779278774368328288241964435727270889887463021113369544369954022628788851005592039759698604174505607717822091145902665182662790979292545033878279669117571713558830999541671817290116419824938545586454097577791844208692775575794949608701791101469264603289348238104247068464941665416951513518866429563881305996026492818648073287042019679081721202191082893450473664648120991876705880546062988056753184049912235148456076308197759586252506793054600652837175433697007339709295578227621984000435281740906551828904082640557175848302590417604174038450253025212886677699302324246053932249531662900820782536992213886895572799149058563267353185618918488683829824945371178974350154097654556685389314683222513223699650346326863615663567691370503728560912066621471989755351467731152751656768004030784115609280373038244877044582200978640580792496585490252130631042495886490327996132662315708240389951519089391566070287327695890241391008825806275624924428610134034423838666863233679557928495802313281592783524135432857545926298124577521373461236350186411649046394114056921408082507674469763254030614498367991444288472324230877963271472773552366677820580526705321247623306098313556841215224961115003567184062863489799652644079081480027256430489232287399447117173396309199946588983274367154778273239086350586926177038429528258590097783812461140190481761798201928569157100010390525328707636951314689290972618515180587862893664850326982009708326040335949119181009624612696695314704197861914639250075160600455131224709897022266255781086901750583186780050661401866269635447417772372583477261944280790745780200157701770044019849058879249821642507648664385269717765786195332966932350903783143964941003785349784925955672517316699689382401170719996795543594606721591246466575140224733513319050756011729004544691935645010824981532719862004770660399214720877470655171618093197381757935174344648200642529493532260546501744641556825207221348034331184162820498088808331721839955834887130174864725825221222370612836458426086072762652177401006185408327226481974179382883367065111399342828570475857461879819177019099989869592322785511693408441915609334830331965192859014757516397015834389212761077661374312214496610759580009103435235792164851788004451997875134894927513896270671289545709060556877613775167142789029357303817744152981561559574418652853680819361542316394584902404166356079226651946001402671125294849965858142903318082476628982908334953180471986208947952575215330729215765511074475526570821740771594430938163584712870570296054517647693478829228166949454825499959073283475618469520802323556697877453710713884472316163739146364768390755776687919736861610967993072454652221030896464013467641614276263375027804834854503367478884757751376036325500168830613601547276840589777173039233848633830535997348217168606200141447759472544977524681406629937865225654525996575944948230977462056843961387274090055370698603004078580776601085728541620930542647406851167765196695191327359985339406845998673801821580048652662910489114101297672333519877478489627727899228199603029710294731859089622940242086134362426060507006442576777476589835609459062067808169196377852015121650842001987936934252446313999920650079186075632662513011800409828968651847398928168293944482598396208002997220806394581252863341272840927762719974094812949545586120044429583147948800254572206296228039091755403897737788524212187648326700012463837464196991473665810247718969446376337262760518120601357146313620141934438550331177816068014291892592118951752746071048913859577311591135987982642595839794080806080064008434449267167979340880041744011654326429490378895871169413958066602033613166599908913375947090063928636203532960024415447471914401779030308821315461138546751644149471464604669251608799363974638729252054254114010072389783156625163883435061153734708256136882772534701078644062929215427306626946302013747150365187641145567680824489458869530133455066941405868405406122556581045234593316288051842165916950169502492869209050487228922200264774880343351051397256844116584579051483439474871084492322092658056008363572454626708069708451575294135179895410233773995403865669737275748651135764175535801612160663352151460716909928331328582251927794805673246295073130491998722309468972569199561624239731272842412291974785298536599380500462664335719256813998364877173539208406620958476355719758028949377607856043536849790041802713395580051506991891034072116856261972487906499385935345158169454922244015649812118835003281893483806080467094228113444781070862729549197932470628890737162496315003494840911204102255734940362756377645626728712874593176761066528340569187407706121573959756236840959409993972095138761778724339565942907564589190387269590436068148705063345351550829811576871990986119552628162640418907758771117557571251467755964603363780103695905141364204471141505299515201704419178540144028640880143847763458788815840021649272572909212526913605207555588668364116623118717040324986331807939375362058852392324111329887334645619557151563583127016559213454577013413331521589008275830073258780061578623193546797800891656938412163774076210072529799398667639263008995411975090133702567998784681194841255111712815784916233350675229784475715599083672863472535030651571137909686282701537385392838435471125897127676569272358473436481123646382900838800758648613228265174291695184565858137121902372671966578236259481736417220252129130760576712232404575097396251234997850191601857796412969369006481813025545499474954794315365025375610924350988423265926778221733436126857862839044368902257151962788360473333949039369974466322409877328695069301432008900868066261619112520681979512634321812429493521310584359325849727669005860792637012539902528446314484497411188149107330183124298570679301699835800649059170343984747016344393159284477455379665712381903990619780619420203379204030540687145918167913919883269751932144430879317816038822252904988403698619295444747381507903062652412380952722408278552202959092627556333287048095088126003958723965534099485244372653030967027114558017904929561214589247138002715912237758443092776765311684459738969592585073768712127990488871090162319155222062462800503270066905036988572503297072901418783308546903114430177147457049830656110835559908709371641266872324819510082329124559593353636662359468274905719489527712710120710200593102832368983247450055099787774333730114306087055040820655821401723435094041224665266240061707881704542198098932196464066474490562028568660482462017238343359721429194812536155111843725976621303209295076853520323914667269480281514927947827718605770188400980540858075388511776245726665227291951556958464714484396008691358189249979947075612152663675842055753689118757602645660943503551702456303305195384319508522428903512841729005718400796294003065940599708970818321247949134195862765449164111628546571592962622450217023425794457999603730863332190211347940818468418941792267346609701421031550935235595655185071448740677542625729369762232133843544371848648159956979023790967762498490043274757113915001835693966253823793358626812994015000330865847536834094972662088932990083741308572366653912363791404722961139962030278059243200936369806907843313091060428889858548989729620309091377777434857122521519886700413582068998919402297375743478669710064609477306209386227612502531407054933844931187335427656433924069336589185403160741682942923166265012333351653403317872766685285629849436426826787451902268630933285999501415438492008582025813692021984679179215122942432915400113931658982317555025021670656906685602620498170589022841565997001766759474889483132158959190084202900548922138790129925002815780223657403738921586057421221750073958337082693040756374556612141696970798617063807469067287445159598399509197961010476419904029026653670206211395254339964147038788513094215117149764934177037831415467759538561892326552340899781580282975688010607646185699771320023606692618436758134336590258554002741834824976360939762489691013960489908377223871764298157889650335289784484643948667582618059353943500693872332635211054468873658766004085515216201094920367558120471333004645641610770756310961806830631846357713031012120300321526672622940222567974346653144124927168673421162135704056526554439557874099202522811241974301145979341967069693493349675994424863155089972352714927491037734961011378192738058495401986755889618937128536856945219207817391904236748848543014831608527600894767119079581976895049527297708673943162099167885827578886609699286931035074034261641859962915095247101296349666788897646765487978871994500726780337974579357651363817532166713838677835932256435991122959641100614753900302950571559762564359407649191082357116988867845161064450421642040987555339205305780807259394989115158430496447860593506448795402845523907966287851738016158429437663514822615953789867429319148096405940133454686444169248448866057954496421126667925523603497931578075994089317648231059299414670766324872899524024388346422635330445453466164475287734389677309184158246528161932130728957838209933409228896188699114052569095385600638601019111717750026420008449135736261645865884113910972851207555037587997146260386978985663072359949601104102151603769614164203608962708568606218754304522293404233916804477666997961801705812678260682262652722253271379076980370393332426375290733969950858343648706751410759199503352264837547677881293243144491605980408620556861944323840374580360947576962485890940741817353665639547399967322354968135702654325293284808231917958180671214293972517207951022043567171856327950702802758963934007245358789991840891952650788347532623258642652201614674522332941926359983929871412672300835195003607419113716101870619261930841861859319927526721436115483302185746465428520003496125694626217781464125796081884842424854974747536394400315521092643904071598611669658449575138986910669122520778052431517729619029701087468947076529907068810804112718889503015018482115928127168509769806104557434515045650675250926362742811040728169790297555792052842596340553062601992220838262315777479675207734291280384123491980591416420693532323155297467429985776792226616155006749081986921678830351690908007997399333427201627120811856038513526581211225639358640877537487146278275592318211530639203865595933246906508311327068531040767584292542421658192610116023467195948274940004489013142158190533528054746923464215155301659466253662198394840594366587103282091474906357897054608994267354218691419830043045152439995802158866124657278577899046470811301865961351950756289480513607980211852571680346307361180427450268407151422969672873427933705866827076413530840509871789997224774461287641466128528186055177949297378353492905739807676834163489409269782828913516900940906127640822661826390402058035235762604887690074646424021349388716031870831818573616954064916199330770842577523500644910361165274700432240270881791274606265193475387728778205328425711404917439024267490366710153334105297209515713665774690615608692176296077222085310979910518848562185394765243619976471503926037769239433756351505621509318521628641530870593391998758014692427067980648385141201910745309035707299395092075485323414014716220970466659385935811241238381131608451260891250566853437837728804188487736989961024036865038994329219588938508930379439130064641337833249440080595327133278592980998420493416105670914264476673346754423514458087461057611039841918751506289799885097231186314869653595943127027986566314051898023459949290405343898619149743564312260805046125661955383963455716963579787419231394675237115398985023597972782655668552758587058079656949360745895790252859212912722598078074625888545179437680212597382530101671059840746782218083315252569088060564662004155136453649476218647217322464291136682388962712706452452660947534742761412711078389177605587056959951205819984005894874487947422336697619629823584178916260014929174511367268591550848948231709330670347198612689850191755697882041865471336964706433932527140269943016391095559954338763558721831587270563719003504761710668595149947915462749375356223068008544853767175762230653621234385518123990529652152722003650200300772502744065308768092130010477788776560207748959797258227621176250022499828329846583943186380393159428294870183435101240724284312454894312993437860162805987003499068770950528500831784718825607627557724941462286716925875150177845530717353191046854061810405650363110711691319068333915202052658198168718151502516356362909734124792862518840641878957652775677274872540876199197321992951788141406092919591030275334054448789635344593112026674408238392925707077576192491905479899353947503194430258426934628295804156647682833268360863806910777894031102465533574962755700596344871032038508224604904847589238183047240855578230638527765699585143968016805796141054701764724825171579352344649608488176089292291154452600778834092069229818479211876006450070656819771478675510366535768198939471959050630649336313966237576097111186403705589770907807103284152418969831433846840056173446321719660817411963240781064271594448678475645168504516017643379764894592653577991927533189442141068312770386937200742865447982078952695258305105983461876341665332320656535533438733150776979840461863502727599132314818517446111735179542308331786553623712864029842392590769274617254121185084219361850570125960524605633618048843043639021225053044793102131429781676266004207104056958174521908765654638584644558264265027285612291033799745545229412736081836554371603135399820352495719569331017549746119453560311059222424265394911286818774861997450558160932525111677661208005605899005582732508920412953011717098080713953215173034321682115909595795415672474216719054995023826592589998438851214627765396250414427001737284237900247003538424729169609767126296666540454134784004349325219628164655617158598998762024300594767772833171973083731059085203963776035158156063294358535419252263187785146419122389656080031963971900813196308818985164049052214366222896165554921818647255519493446269114105961421726142817040803813478371337310332955824742899473902972199902130361212523100626994921073982224403345466632935254932584438320855603360407290434172988891559389686621702239760822030345658388258710113675674060498081431293651383166049784272986200014504127413269272793368716784953416521354236152788914421032303507184228543553361230486084321004461353048683955176222679983256447720266900709494068548025843262950781403035910697026002517333059803921572242272447432610735854535469687104265680176195263097450481521221783676743130326468485175725782650438604448783153453300058580951944447685479262018671093187309094736360141333706518289502208175254615815977850710263184708577348689861433671971760189252849417855206978769881001977063809032344785377104735489885901202753885921947110106340681961526948614115851743382759540055371734518850167726881530024676370897902336683437069563010786064609346409103683523922556084812815031943596659399301451952220176312494259739791898711967620873983229730589274758698663464327869552509832787570608387670587165489599171328961589639037386759413947216126274525736910896593163597928473352823434671172037689535517275468916400295561941421155873967400612053089260868005838423028866046981518560548534944091961691207759255510017497746558472690919485357097395955002782799766300492601420947119010052428293073812709761782107679392045535927597929606835019151283016876117986540789739502645067097225640308096810752447531648464427207829739062366729057674254931594720667743691033446141913992827226825441433457747237252438106220542685233693064530326672905046730257062932857003000820501302411457408053307597806066432950406363872453153775561581047921301906180426163268787956058839263382309940260645938259222088614616681836553226723666891485373076577216494968325427588857255720795841722343570865459824702680673974501382971100630046505061899893129481036710560102909328350338649201059323221607355053538582617611538092789232869510343294083213023199220109124952777345889885877753585158794794408425658690737215024299996172472840896182252703617123332184877626310981791428404866192716090663554728407645092906581912016939670320335474304493682768377932454362078934957740489878092364471226463576028323792211056529387748912159056109305035429254306824548354509482482968657262444235370731441442804998005584183651522350542903797689773197006248840365928142860921443487281184536761171805720748521555521626871443012669443252219208808111663367367949468163747593659781675724881163123892868622500092395103732744875927673056534645671189082272452334458138607451728354606265528916998361683505877492618392839246240099781352084520044227752615568896104303777495447062583881321426252479702754167579062538008480791059052736552483755787918399910668445845511511915949266072316746853877658158771586679338474601822223885628854153852339419497794208522170853577153770651209458050926932489446724821637911315867041562637344190125861200488322967076186151622751342518760580170230678329920095474248648616415551726372283042299142283865150984041511051833043152860601096688618343590516709119393355507952042589186734084112217331878380907575894943833942803784184193025405893541645786015553557770027399069589761294253630430073474182773576117138996680971411610918539745577095955175973665642883484209081491321103161484085888886995631931971199926580858184402647339541292751487139870847906385219919462701762155026460030412567169501814818155939664342056123411718025295432424693299020673291512260138310299580927471919070039384447500098971876950140063926309179091155388671865399850773338661115037308046549138807598008045277122959354298429643990899204336843920347837242484717643469232494909828411849094557359978616035994782635477434795411073414397838530005975561870720660296062269046599941792459823507657757934777754059729744776849090520099635660678940111824649618444177335085651437245988882897216311028052336494818091700041607959598206942483617335490693741379249176549495877937365523487434074421910942600050069359806575122171362077546920035019756198649144577159571987979570859211228780141066120026097645196016290748005649614650986659279395513189941691742962463114404288372555531723637797191261833264941135472622142320220507828774965039893395409482572089034650231990840797568329266963503897323823123525714105362694740673211411208841862611326888412950156399307446900857223758572812974448234765900203996610377336739119799444329286663930782641380255386192139388621495567939398303186942684832752936440500867143995708446050047154684492549553063533455072905149473260654617208063208545960505569368428870919297958307245080945382955577078450488659354407196212335063854202370977495398569454184852886868756163162428990130618189852756870064419746806006489332087145989724440323396588631896361253450600197053819192600400168542300311646120216162616633086100952288976255596898314031691131170132793401576873533333188186448851504997499756535554966572954179632964521902939732485741282392095254024073477910592717784853907183978831110159250042414505490385971469429688108671794798388083177691806815472481644610129325467494732748577715722987119510851720892928977620561354245203722369760396111476816438679270201649051378116313510303158347436110490458631782251618037712974164060213845926866744965889284825762982322357841602352434398293372943686761660287321158282341349836591496146444614860896849270272819763432951249203957481693520203502530862368727773237848810292614422673339336026776584866724560154923089396488563332186576752130348435990022573389546551271471129567012085210252788926461877865132717477033885277736474478590894355152859395440341355628543215787697026680223417271756989085986415176702534288544783022269396567945436112275321114080076703861296953284524041653689156330283897267634112815596218163273429982080718011749032445508519841013705525946314373883405877479499189361998711447174877423656825931529825655621639911802835149196908175873901832568997123888393111271413519438840139610324278815640380029609552177393034915518947231260292326092648617506816430366055243064028011570916526332882305634020690690828097866042513141132819925069362137574873981202977276337094301500179881028631901146994339903208649846619360508305042850605512157948985395258891082650408487544951813662877335592992389040568637970267424704143014228903765293490145625521948769468224076455919567406030138761206016650389852253160986863759982628825666816662578467253724126068903703736985705735070166584476541545977613071426036427464224458558359306719463560020481985179039399241598817039948111173248850530471899240087605513219634747178849053832368099337016155577250314800587290262392559223020425688175700040226848231733112941403559593418011781894831231240256360908581541580676533319038339812141646549320520589158069762259389116672073315545334070316737523311256666221987039796764411718734289309772879111971960355308515311567142514028364833203216144016518538212777208697008784419249122328179272636879050953293955754468920458881222970515438428202265792200451971914926517922476205993712619753570853094290335977287655996194037253732842674104286026202539841772797318074416716696239200872420476705426364495425394347884385006524740214074150584583582186293244858072405598517273115814080550557921022221845351108140484522130497889264959602068348918289217415203312226253377985397510350568209456856306038635188940154935942482921674584684086388843999994527186765329329961618183289112735962842361313361874395157617884035121234762398135534589320734264390732500713941235604401795272856384965990755349748216774410506658870689713339801081740251402434894427652693721210677008727002744090028785933533856806875406029093255267556915373603030830965524249176750530207865731181774466915984073702877613213179485510010962320262449281525111725215983194419694614926891977728107131803283142393827436098466870902511471376239143004525614421561408977692654991266014367730829352740817214655323306080080438651129254355837254818357172060790605902445577359676159099848062040667625163278858734225325654246415376199567430325830150714220656646104350123189890631744684264908017653208753918871227195956445562928760354670391263831620888400754915136496133575356418565062256981898040889804087672595188424668055146462227330909588892640596342535044360584116545233714581149764286510854265575365691602213971329173563385411543179934673513297008161512997835152397290876024975290517285231844459523385778793236683366214489644636909697902390132609100842672501938837725566319821386880626176692015806588444633751002834830449166899769151050233085572433216692315911615949561026936325994579298916788950943210997498714635781342532518664412388164677677847187264018388640451088679658401273983426091849927385146670019147330780606176579492816660908913490156914813992479768411211930036100044058848840879566725620479528167370562611971927442300943178548164795136719011024888113114055542011250754707661563782881339501457510004017769701361538372292048052594142208606025411920562738295231337772501310466077342978656973616411277434373734184939485338310678005962268739996183304454695397051327034180704910545950625565652736834679866166044046526370943598670352150079198307348189254949990961497218167591114396762403770333922891299225795524948622513348016012257907939379990044959935265663060052518765765972389919837340290736459800311357111845495480160936703403194810545134781965997184077304229746033932206135146658032214309070678657840552155149089530973142841462554161027157389724088970634889249914464094983848422623506584847319442637498432058691044006717460260618436838321500969697133103578579537985261397883444633864480292858322311358976572200753234483046698667865986877414063897172989303665398961184759736011773570070757879384974945076389778627413451804869964854785070467850002474933447688650365608374328952008709646769104446361233750169584924257836712273517663576448747571254670956101294079563183868947343011943892022212777914876681249506841252764023351006657627801810097927614231430564081775832885527958090603064141260725210054770814185296108573384888457516417642469440233888639149959347205044041688820648903871761227974158993641274881886642033831748945298613529299067838075921311289933192555612897841089531365835305697085334934014736803428801793223930838272999496748320438284422755838785303021973658489191687609200834436427771562361164827726211904333238292261766547051681229788360510765273388420605782551103142162213709868129639814207634356115341845656930368115927129382955742623756849208357167734341568920627608909813493001921142248853365400559169163084110640745718126266335152272897123398930714689687252048346896465077294082936567606297168150683817493977100019653061388557787302567765123993993813778567765100446310304785857931031164926373364398654608166529470862281762680146897394131201875112250622837658653687408122005643538064209199832712938581877303356183482999520870494718747591169446876030754493539962413766345420762087392365161416257811539231768624987709062746531265897516640984541470581457970677470795934172627424898478021592716139376570509788390422527576510104324982064286926352802024079256038757684444373246428805728880532309208663806708514933464017649655535989287053322162521491918438865617907967949265084131078725282604058407961614881940762906669576483145316793334297451744210129803927506803176124562608557253653247628677406491616070148455785839957712039302576981217614706516640522772549334344173239788403009023003922935735963157020128091623699695480127298788020446280314051909536762765267712904190115636736466739472765919858833632763366913017685781485629696251487464020390063245506426023762744402013463368483140568797783169279278163991076103066793883539974896709608496424161971829500215086870074870476287298218896577952420220797766061246799104887788460271371757297992916935445300253149890374767876898315991070143631423060077935922456970551337215135866672231118937074315008881280713549783059939848319273994198867058811861171871356976525188311064135141311454939009932960276110321910032239925076059278050052508902043602988407555777458850527170720149871803662027225038768914536304087264716092880601964757454590343144954815911420875449456416738179487223174794098247167961609888726586804240562824453094841788939379324864453808633806823915053557040871703888713385088910921273395595257200650738422433267718767315352414832776631766801298382674172762925224366883024440638793556274247748634713640830816702543663817567703787599858191530488678227166089791223214314978882719898105533538592815788920190255635481057867852261710690616426036484613667354489419073182504560729777038059230100078154680048299277845703350836873360186876600675317793656230049394010594205196010124069567870623321889005278186001697841982013779204303490716172671581135169542544586336063995171672485368808751482457847660785947777635985209879102815001757132219729800786099629815834151695812938080206127143474582826929762106632867718131966621558052265434642483596087326257127832977328319936030863165267248070948710420377399285649598326095015986725920713621085913045081399663152289915610941886617456921427041526803801911850326587836269392613701517344795308680388605692244096030965646615279829246029915409136030763329504779336435723693489231429758985887511544161497447953331737203034593198814073970997559217430997650163525143825006034532766107952137158243761327548112992835749457072889564905295209091508065277687057552016245706186972145763287813650160697782850757882099739122260627983549170703259893545247737846371367214337814841826045153803623990348122772307991506116338805482215888586765456206302730073986869182392236164027385693917253626633553739034878554628917858122411925945352360261856839467096467806533703248326454817736926798613093394023931671981758169278698820693602497567763452822875131123744669523343867318199093260130158596906544421179814689630855661554635622841077795447743468506539559787629504628437789034498803992151900734303336459976625927458329735492497095878607464489667172306026693624803002929778218367935482030682466441660308803915046972125731929399801645813493442436160772864299477335758717042325213488208965791637373432374993152394753407300437045588178217458711231382887768171667386255766204251736703581795525116499455607403969193493801795359521799506073642440533307614572881680716549326422925534170824140382816936519652989969736567940889617727872413687598801943207703499882577623976889265622384929362417183555815266677841315098476125869616466346855750911470447740718761997569028052545937978562406375708648169652135058232728005807621957190443250441483536621210653256215602309752895042057193935546970129488555520421838411853450659032713275890868174626197530167861600786956575997754545444439185965662435487289884787007040020473453142433772237924329202708468660757395374805249330143780946237371683793155290962231124503093677718749530869796354237988621018712359469049397810658404399406396583608348942920574955316985433161994074174580423558920990886140916516347420034420007971342255243724041400388660119942320919659388593385004130176050641707119831245716175457103164636205880239527991099077178499413645818192755611487114647979154634680790695426667649476949442381812238942460098037798506731400275298395127394119083977933986407316489674025235463564181231608456934266959409568330127925185397166209072543073737749380660115754121643969237331378778143444409433877204378679739345935998171114723709372183235973802762409579738602035466662698099609370764078629960577842572716092944148865678141786990602107594858555455543559092135561508397388649926193429495190544806344209436220747627381568068442160160866978707051444628651755242723014814699590701635986554029451021836332702420616341375178994985745678951517261901284856723626666184701927594347527308056846198932598875428802812618716147656627692500337921943528213357635760617377746849580864389273082772396075243975324930234961034270762976330226250803951442221849625262557212852628712150260044519862238057640047055980558889864374956192200126555614357270173415101047818481450809636823774791195389843923750692179610104039275171189008092269215585798168728247763836425465066055036815968197304715215505245534902362218529733321576576814943459083925655072791528009257166741236208096619386869342293753674859385719336019791281736313119094276326491349641350426129718792465724911381599694840250060277703965457594055089420498692374323254420954551201565323885480761402438699858222963028035232025992183785867378287242205974380845037108403853622260085459867897706267365471396222786455138004105658460070325664362024081367737437476272220920165070459952987933185437264198594201546419550977595516330818036987545159559470425020098247322875001458454140722706814082696889407117933944075199961429757507266603228855799928041161817457979853464747162069484101154031493150833368160389281181357155707620047799542364716736161512066314794764045735584281105752876456506446079520035013683431578088076350012572061953211895857922128422011130291291694856368520040572527716842703650634374644920608052080403724091006258443017257804339882931402574102318764553009615114125230159552736193959301937533389528592718900483215012589443947360373776396848378577670195174138380979486728059166576880861465440121788447509663262961674207922365675562186839738789912316350140858293794312992157819572242432649640698456685095715214604349647290151566367825069773652453293932321994924160374629624881970677259229229225125173583463011103052096684251827728291386517291901121057935812372349393439806356501404381064202201838352511087095459561529645566225757467220651009336010006962483299107916130104531825993590056330328699706060823481701915664132981840395478159923246317560652113856293711693690804522251996280461125867495504385871869221557220488140267570450905079903406924098544051472670986460348208890636091059426439603180940346120910534758489233397556080750667220003675733924118592690311675223744032244994221383456748808400443692234774762467657500948514404954796361203987661785619651981049087600200716923356308413695711311392196816555419465102525739023230912789282631644483834789811319816845027612265123741444919540567189159028538760179605377554949645896846093651670616023006886515518782822361850400612448156818526191166482062909650055284952329427157071205465216650415600151487839888815455220444199625458673436735358003163854354855722907730091600517584063835128784228735554302668129368880936289281720712156911492064694665548348214537581956353608344050350556256875442064515698918544855349349296332894687288839907686669793359046263353673929590735387021015797314777595487132728456657361094357682916013761040799869123111766522621278809930290010103405876143233886646222508172617418228620115040231971354666737138560272475527847693606956776499988970883530920697873470858752025259086563703543967528485158963984025326181488033951349167052074862435048060817271385925610838172674944699899246297829787350506474594328899691759395884056183793670657557890924139245768614782640528559641588449596609424936009884321555309880492605749970098537832045182798215611797411779832334605569870124343555965410422000108674442708700916046637127274000397081488224075905404008956550427195786847079676782889685330885144117806714152665827258437724017236664392919126008494046123136613138638620689862672248783254705022973364550116045432539907982212536123783810763278712337953396244660982618421115785187149293924294180999686578747454542967333010886967723104463886030849611237741064828265287493703592778651465226618460386338347261486208749909112335881136129152223479432970814582531936780173651694091959786214957982902907375293496625347572630609548283039616987342366655725607318262262055909173064994680845273829417121677930499889892410495160894413726482304018770497099859564907658505001075654161549462869887804136314840123423511746039568943646475009765597454359563542620492167152150069073800084868102896211526636660544006878307959544913172743643863792000454506052632688939765110399622199332129812265231880049308608813568493431306565373991076439091698222771677605565558222585182342762566793059911941128048203153364216174724181130471339802458516391748531077714117323620848922340042806321293498060049942197291659965408150047052302385938652542313241000671118057991999639613955145308813469160326529497817374338860227465731028009727506181121899532517526169977604646161560793694044488723156620561664488602109572632473991173414889791001240642914217627871439629159054538598300675502245211066095140497677767411827088135948488151203709995602411422897464023054447245774285210736482133104216709300418056086983593326455508091741865678407997549111292869442493287027021325612727769952673538402064333834513131337135950567021071157168953687863805542407356143374474687309879990038732217657169715684479644515599762879444485805961409206933949953422836879808289629682500232123511342060359575151695511784415385463243080363066036432578717115552855808081625746330994953587372233848472294606079733454718502346255806070125949903717397982911475988534238362108437261961059239150834021574403996801147816933686318505769379528942525055613917901931515426639650065187756521914114090972311255298645143951821387246460471932506761355016386716904361507404244019839340145360959421857268117431491194392343161548006449261136032968124846336197248803990229272558902875922366154727304279360152276519801654793911665163380176552643473315665272402223837535661440369648691447150561916550102657775698027515777961742870472871133882308919988459861983541012583604443506172663795843172746866467208717074512583125286866217996107171440081072122027052992826951488696894375972354831743312142760404008619670404237293460345880331654251379040862883795312927877127690053912598658678174213384257529365348204867518745240777861049129677792396811708998145225908444277349425436937195506216026611730382239118156221117259682166993227128241512149028935367017708026469817674814402370077465136678372004532564761862945608277968633227745092561611237638509065201507761087049894306483502718067185927168915599841851437636061846336211677225231176517625516247371740702098106902627105313166774771625475726896875642009914878382218015458567700989022652599284175639887716162636884517705855470976707732993069582693971503794301333651278523309999861943120781760955829924144002048002323496542679471857733996182589096304247357419735272306882754047344631411099464975156505128975649928854274668832778023053164069814288854020704177629420242156010828423833904297812741181485267143952929264901934547808688801053798785377483089064958153799149102072356814667151585094470313644351353051845927059836754514911870049959411529818829100360928850705366730421986579670550746313940221562501041318124580291547728817459268435191044265714938933942580059418453623686378953326940505149017886408000497814895765495734108689651369940509187533951256356014825842644733534867318189304420162111501649480495182403461856485534674223398396491394846496229964633197625708208345167415375621774529135470553013302065926064195278498020149091489966924696210916605805830087601199994430910784091776839981055684040534520527848681012009719588297833061750695393129867252003511727743866648860121564936408822785747863198615155931565377010810341002796909566980254842074260517806789557889541441556288383592347264810182857115638344917005150409346023398207596493621974619521385786848926153276494447878040400449273592568201620039246289516842779737450536123529960143725437080873790139109318049401088999915843761311070723083105486856981052676626138837394157294092017825663013139581014802489416863059860383791196137464991714483317702450308073933172052408786934733573212780898506237320722196782750785556907366812392243254647615405383038497505755009691568997645544140631667731895198265131371737280043809168160885683131999482641649656745419669496645691433530868981584430061706186960008685933205047181675071906263126413871326155719762891559000148557703072981580821701157036860093657640619262801219329492059364321329175823444950284499055491652779629813643179036317191150862908292571302572945226184440521290117179953893510487418486722839783172506305000149067971886065556869904193709672920488650705981188191661451966114960453105878900739871270982759808268818387475938822597613276734446442311893136554419573151757796794286823619758941619003757890047917445693897066852977434759819448872249579155586396716753717694657227647995106233044271519491608687265848710943152014890348703447719173959819769980309224665532484691936751428476241901336502867815109640185041830627562080726802577235454500777275406895905921227095299773080774930728315132296884033154573151548930254928072001993286862815490198985349762596283175436576820637703008797275695016663477706026677396694462098430756596409080392622388337655684004559696448408237524935563413600897050737876357962347958337400015726758141055459954962681888318225062149612207729609374035672881893687549594904154489439280182465255413726933964170740553597920050758262446916584916069129837121200940036600571216833472218504297574378888382755252687745638164740865191529453801361261814044243874354562803291897943017919968280584473369118654266877108439733078920543726296820485022029334638025307601833620185139554035470720151402476060543311393688808204417410145869139890552880490003998525357005660033752988157795397165050108432885586317197051640098742989030787512432833437861578696528796993056436677776543237951867856634288219990092685852980715874668071263805964593880824857116473786790801186537597217173920602346427245034740163091832117342014449976322991448526473210595245077568691470728332453516834248461312950456939116581705070534084285253941415075502876998820929069556843825696230450486230448952897959017545968458588082277147898208679244737969613123404963234570235160344805175683080310573449455944916409945518049790585055607411967034871727657207341782125473487278619046738311164706242877314939394371380032021106884754675279681898561874839383271322621279544345481098564615964623082258669540633894179372695332568022417063657781446822568037737166972052525421575617158837908369432075275719286807463275045596378249163985301995414084411254971562619367735271964281921954250403517640373325278372263523730074509230007144900477483516151412462211100554576186975938986351190045890860709547098662976016328402724753728421524854272192257714052097010326887406395419802524857791024148615067039935556294122920901259013745443842458198958508151795929073452966498427242052815836836104909343833186637418479058271318594716764305172698343771357097391039966571958113128623147454801922227943416823462465231235062706995739395942932833717947054683562589441121912778851089721799211369444913808334569238590853032808201664601762792974633397276815409599086377470138228937833232752793737916428293497830927566214216901420179032613238702358439166706810757737487923933912745388016355345558292565104670800431530542605607021770275044194753865885751461344738841686586352921748533516781316934055384223694303207968689360274685023069251498650765989224952767277194257041530053195688825278875337842518930791376631520961223658080233911264206031933124082388973133168803082248471777061331800194761609882900086438795103204360481556338258664060296963249704612616989561835714188653673264906806670520963710635108523148722240983399565692195000986511115243584169870633070592695038276309965216565236678941260618811611174567234309152061433846318641917331095250261930647736719646308538046248840648582822812726238783770279689798711188139323514132241935644803886929198984611468631912251232839378947368645734160329491966296053614588420951478712907472700031739036485027699340973647988457681433460592921128309811292741431666395076966517698006204188131462698461824481693113518341024114357645005902622333944493596215051110502685995211797708699472030491149671342494059389300433961222877436406114671162325917806486100106537337567989429591251165010091648577029373740004682721234423262330088881782635404591387562834733121220714364831342859851086220992395422817174733842974475159356550567533250809900591368417891414119807754892534306546671577433461980675149555112421583042794722204937811066006084474286127731773369759371993411651305473291265133109838179250881005264688354300817573640135613916763164628241228700200314003404487638473745317223918021823204812882257108237795137467862247564492861612368868854365644259549996116517601380177141628182336682413329987204089519643485953847465656858639058259372459868212642554593007608445508702325011337302679145922970743753113615538110870893541170122343625896196247703637018371906561515880368949469661041546987231269698832251284759263495225876044519980579318765451198280215840880856456860766190101626644278772508977768029924865917901561720939800284662509313585267623878465888914985532184581464537100681184893802610915985768044356205642205855253845067594195608686113577540161854367658727095079666391126830628056875279265277189484679016642099302947806200017490688433008107366462234778556255256248107835577267583927907306991353012991691840464190004095580461085393564858515084499458456494109571350165510310997295399310603108945030095212550960297368318203984289110454887973781570132714557630199951551493395427777138121287208428699294840675906865199516004053501459217069431050117292503394700673727343068836449669160813654803089153836498361489237659046787433336101773668192594040935994908724767871583236401046681389630499552255779882210943978288016477215359770818840932883693721817391527664482230122826310366465174463490306346770182823318729101541232913810687303496499711900882935447952535399860095990025902122191670262998921167520855418590680813093891022628595210204646185957108097234664537974814972716921414109817247533618001580249050675123425212531971021971249255720751641405915367541996960602485474816068886671825072589136025951593374929856942713130253339392975312514773316104610128819655633060041715332813036968442755824673326332184621111831956188323265301028417471717821184197457644079561299928544561682676574414053564567046528577178944805358948980532235893066801515928086139036305776581862416319530438288424243884220165375049315412330688660554563678460563931067704636058192126302008154354690281360441095735669095761053968683642326057411211875402602105390948615578372628643249410732275467016767618779496310463411139569558851696377592083673228332330114386900634514029015020163617028986693917119481504573959123104178587969814304742720799697688621838934535604943810261571837624246082090476797503981171267115885920420872772000258743452995098629185844469656288854685752062592095015436953287254764313189175622757343291120489390597657143569278203798749273407956920798136251979815213784303680038199497906191729440234418631512852299946519116979279146987078787731644800255850914813911666884174185335300402446989592632494422559829240825357576920683356353293496221749080580576727800543232752832174570395904819591526540747279943393308599310038015606752521392964483849814511512791965578379661916159047262272557644304387800380295483106276466035410999978516168782542207181297796267043715678963443046200057541209192767198253279831835347046255770767350219482897595715066267346138743330086524797254710267315799030586940681123932367202984865946559221863213665322148127091392463305879046470857067431573237139217083052039812350859749590359078455192500300606262517869575340834764721296464172706555334961245300196453343300556608055321075072530075596937924505181138642743660984683608917548491375915287259278274083161864348297243420675435530508592499728872203708869951273156933543154155103348006488218370489479336197944778829225150255733495033565951675837496453763797795617180803101401264643510169785336404144265455493868241597691089407811835329213309091335006798543869724011774761334275188585299276096100217037822674469805203386455890148888482069344335413478411828998029739628586978629481561517458900007060105299203626209625587751722398534914667572715227248675753519924076625701750696775408609393974014677865932468440947566338632188799279820423395679966849865138493586988216867191003380442566507806377050160118631148165157240672359587875447786224733881799098829604231972910841389764881606346596953540435175098237828407402946185464877099289029128999779052710137130906845294251481425833743125652389743041343239104133610394179530554087607168150022457398745057684284984005978893301306401281187602133861558729496945472539109372561835738967957315102216795120728499649715005896500450000690911742080004173263194613374591518653721735216640635402086210592476992325856770186872513701424039549641851129775876993768803388474795180497455539627638017820813150527582144422312061305974849579735088533273394680534325857020946418485284841624955011359327991584767879051801030194628677297165668450703335331725925792550077013665379497412634819027927233226089646793950665665772952098879317692417185191183732003667493977675605239198806695464430722403231798748099222244004079588185880588562258538457251463127458919781002576718511451935135152759315988434527462145587245740155241676041613653792819471491822706551962858749717116539667812349808882036212587293420981136241484981659020148320108203111970359384142696887161505523486420994337074794805386334529120583180242394220850651564530831235816713829777039109734466228564971001381085466010423251107288945466331547960963884056808359702353536563342046915325049409110337586668004384668248395988830282716357477301393229688235791188239734408519755340370895361168703440980526009561518253671077953022135814551358683917838047651996005653314613211010009778331005018829733249056902310074677218959946555461194551547725075678195020741522540694329831174456399880718406728491655687036316973369483515256898802219187791473078558351420134416763755280955335733095358774147691120582038525403490206893980951452176919174641857686939154027794807577820294295747065902442588380022136048652975650957512674221320956822083725316739686519120131315752457684977459174226914079464115087856036982141800575442264838133600170575466425573838855886583976649847367974928062534602075429975627942657570880952912771309808195297533577299420029881748802835270601680378814894358497220315867214464583047212750525572764126363659142446014286117716497497698523211427339518449127136680458164104152047157172447191785956071770612560347768338590942329326237340855716592678466557817291802112424795982388587294712748666257878112267147336023652864105682488829843623720513803894419789368441566521180463587317970593094340808525963058699779456611182841256732487597423069888902326710799904935378470278440023101628889587525184813808281819087061793334037367694390822312742029732327817524834268638559288642018296338082687466977785676344438645371571351286873050328946356082361204400406964166878130649880636289902992551625882429779436641464726378237809317579692164078157644504104324442605031235251146110041176544832449007507738167836755349989152231090786050025695120774550086803848151527737660861881130652224817567374102021611196657534920025552962259442178483658237907766830133987513656220136411481906434951445519351716533463238860779628900508297460537349426951024600754588529917980029907163855775061772682104174713564311071765425544111611349048634919961045636225776842751574649104887966247699947706927865648370335409712080093894407613053048344098715275723103059178868119977493445409370280959641841701859031146494666511940235951561669343484498516594093890011367648179693173353905839275776614589340041736216808580361710725603393821909509816555536006189565188452802819076516805140088431287188845044794229306880403597664824860005167223111561988652525876484722465611941322169251816425583507223434954125528614877217000484549453176260520706148801327035264194907211453135871379010434570850472447778665058003984267942805689791228612423956884982959029207561259015654629365774006421803136115952325063827800350229980137205019982349627372603328252098746746312293627319893850189340058267692697362841050940937347777806173080712232677559836059542905970152466714989294503999640716791818570929939510621798613553524818772864190087519795686826557194504488929487483275998352321521171492329430080142536142157965287242265601018493501682083755903609932258680292852727732765547998762804369009632885873622075089395655265184917366975645337663939517884977802966342255697711546025872939137962271223619877184644495244683534512258328772719192832343171903185118079279014394090572698748259701721899203302503931708351374808222234811014741265028064269355284942200952670172336888436162406060823713004176501885280518637378395228002623600305216188832112007507788271470790264071843012315989472525043177067166856620055367229520449836084380882352529909469335354072600225594803546315060826664580040704546683038963369449973340198338164114660122428861210395968098287278138982532714142753848174141429871729716505906850743282751530397203575250489751077829922850405555809924106695180323669568280661582996500369918396662145047864479560472690839405833024798894237079780394892514855558516828745719198243701821843711039955613465085750010936485200382460886458570035169935768581197275635316957136891093472897744791425030286450656041732769996808734840711763905068340332243120313280093717425692452236076913358181697566923490822206191519063802372877374008000962532467727059160425719635554573149599402656926354056722012793897169383895026446311569061135444855773608875374104029962478852591551276516018233074368651848284619595224822025305115492135220084152306800897197099260556163472545711153739648969314509117422846718447907318553594055111302971489186272036460868078683432442363280259951584395342748188064720976957439803880335633424807424122791241359496854385108515333219576321082193635531393673910031587439895771787200868644439518781334358729837978680645289584206927656690564786332255853566360658142427242788543243655761246211577503870772988874029376650086296716095740802320725695870803760074949326072663373257774477955388666276832475581994169447460672697897211638088655345178157689359234416223931568077717289682160095408912799684369920696117346476315366589549513810865911852315451507590444397596087996176389081125448356364778237216551005524964071444126801106029777011096437000141997512429926053621682385492179751489972441216565700256010482040472765814010486787185317721774643767270780903884530652918458950252020681488548070768001838819194829709268849865857101695210866762314553925339351176548628124903829584764464037470891657760772860667336677444673627828647029928287214413058946817059819876694445778858864026385787282715078917166110870180922914988032272232463697664456565414658045904180271387708911745900269276233581461611637033996271342336512002644220830412416083760820224455068245786699044813701758176190781792104655891626688293859619507096490963274756396884669006039918262146721689659027817722560266895767668558107234218893869652925479274438793327961119505314212605897159552926842283961309551335762082168169593759414284954463957591324788773331991980010229367970880887104762862727552512247017901990025372496995247560963655182450593280552386008369242177957299665004312901672656343111355452093531796976081104820562614874225585355427115576701010874061392240763792359036889051070234097626408562233358565717281152919117773369984762142539688881867213336706186899516743650513812436589548467112453179631412294445342316591852630677600076933180760681662686226072332254374591182216050150962869372610922796780215966252378510335781116845053967494411178644672564566940815928950620573206482778708431547229773900280106876585809004610188169939646408885288578703053996912809468186693131261443021843455768505736814574857516444563612795894414102493294332040377400822213669777733174833668266654234963454680047837046521871138722514200928269070450055364012539085316942319490755452709656586437424857582401621512057775163743761715776421710807478286025965671868641917677714978167947189669955869735022972542638932948522128020330675167121167737364293908622505893371648288420158848559108616940244879623347888504983926755355759044100545265467218917044274252349484720451543374054104793168990639576683702259212269394925030488152093226951291355743219237141660028836581158346626624135573913037083380900079074070687706878734800309987814851556060231166635028196179602589429693247436342081374806778223661580582547756321141448584041053862475154469127172627107774828699574390018684133246560847109514261952245943288124611701543321759418988529766824652608265295244740871992401744117788893365443396314136116471717024694730362809453152497906562962164370489345623081932588671959768228757910443084040484360134759644267775714250915911519339075447726325008555723851937043439955253805860848288842830293883275715486313463751118951859221115172396217585668072607042750428786469361133513365750503008140903266810836471052213338427289412890433109202984479509012179282266850345726814701079591801011491239361051223833569576367524051288705200395273352572557046222688601374889959137682380572113076151955656811172328687367368382056726536540106320846615843703193860999260199688574404796780432751627704371525834146066721899206215727266136167517079404478376085473845157489262195829904185152141772830461749805221227575765762143649100672573800938458255295779465128974774767239065678886174243514211777852872845563041011155384462883096046406926877305427750738003519250058692192242544841571262171427061511699401634737046674111696358318652082520183352237835747331242487792728316744107419581593680364366004029067687084902207406932241588900323281669655743061525540967119723831797064497092599033846775544831152321911690223669141335394531857836984560321407770102432252833182803337891932980273218046363014570842659027078763665181062057801780799866752443629165650880673437964330102704146113535623798848781785003651673685294967890760495238491779931611299720023853665159701032720932315049218218753730493251956562507690660384297340212358818368981532958657072359493335908500524782290705842579549230450694017188024842320245451059244940581850605167338300480969569152876605942702395346753035739302300584323422342090734885926994931651888704259322135466146698385673296674642486366870114832295621080869884822457327654662921266453746530604884415114742271268687082628828832483707176671485255219620401373287626434582199103057598493479195930467852635991546010836270844554103228916255370515153221708744218604840707834717254784858338613722462609927349408987995354278406069485810329790934002487144650856648284472264251242659268455492121571311644501864165459897491040190743732839463323365432638628088261623543399432232349526739838167643230407589530453885918356862065621392212608449884324563282653134110527841448504363548811127204033611179485907598746329321127372143923205790821844313185641921190077238913665458509230958375497519733923951196507572930612544892186541372417947280203757169663045521817282516709905760861839455313858382710032525087621253869366031292350782555759754890364050182002847045061349846377447451472212957611928275365045108584261127632997781530556370177686227373682749398948781297844951856355139742311119599655229338705177443731318006362469987544636454414814408480086710348228991736012341670016691839733603338776559343715158172313085417096408663726194947717364455369662556507570118932635580538783482962564044674907070235231708981338707474705168515080327599383713339201989972171192380361062485931478353345092602817424352627719448761318984655963145356334487192206038383897567904484246301860607637524617895535839119226008000943186408349324655111228229310818591307272282157330652956886720698002907898628663372969727572205896628820081208068051120619940855717195315745654862612630858862046473447862550519339245105619639734545157942702693263070605407508402344003931530119772114053136770965074380370472835691030442956289280371217706619075042205921415389355708077946911869787115658864476966168635740605308883572555695585850297846549434758207171092796595316153807468081236610167367431815287286840490214174856548576740737257697930689954216393181445412255121686143006869391735516290288990540753147727636040168332592968028512329523366133365324805471799965083439294914348195095320690100730211982264777187774880544994262904476143076302513810195712735689301815905762327325895915347577173704428665529200959848455807799077893535411780422538468206321367013104773516377096078372089665544734564196387989728021128909226710355673018633272124271536972287127331826363897977435027852070422967046028324708530230348894566061113429090046208944587461546417916294212368099771319293511845793759795429658747647619630592737049470201751794701256010911095315323601376256453165861372297439296590908374910640063569640532119017488033459300179729745479457057743558625170711673679645822339000596768889245582596136625314985168827453671914918591437671082869281299874107238933857046214242698688204782346133247845565363950856024233276637963760933716854537610455862535152670894168039733706247237782671376540020845295394546960816187642501450143584235524411060165768775932244783039687407570019109753353201302589301102408778316969676849451778923155128235992892846040990055794322811920967836098958257741153977363268905988333049078187165958906970215986914218155486267720286120247106167393292027738420251773442000928430121209282829397648307364388111801779659181910830973717975284077411700564073891022261188021469598795242857094812306530886792178810526166989561212822656402921375175479976814151064110135312821815365656311330852514681945986069452095001976080468926682198341241607943461491200909358020719320867852187199889195050457186153277219915357246027713340816237185167390883103822511725194883386887014650181970857914487442778935079703800900923315148793034153247344392714358463425980164097037043950817780177412562369232264690864793421362664224860883408988909030971169132281995065354611313068820006497606405403654980553982497972401956170875069318080112513009168510926748020773213464439393460712177844779990411467588613260564308549729496120974157129211838677975941584018239475028656951087232678897568856528884453524659334931462665773572337835472535488624395938783427294499243853444009634063263955609284817748353679307616112235984339617311939900036859695264378871114362660063072563047694881664732035275121781989784679440883715830000006706335087968725136478456339019004519251435877972873795203050348256516364588302205153541130093475567304694337756375793650117046581038020789216310939961135831042362110324605234955959953252476674011457437705617089760195545551575058346923108729299518140402908362674976823448140767415791951738331392363122177386993037247796515263166622007536677209859616154640593794651325382752189881410973565137854962838295083941456082009566431386913615449048548749522936286847451327943151339831166749624777853341725857945366135078901480488497791310133499039669379299731595263628602289467735645386500157311737678951034033449483035936592002197513078254840896474944045995363613441550095094396915446380543763049040632769038765073225414717740266887146480542032677174274754417346727146430638082705933480460749954956295111796179666487389875597183462937038072444732223273092164378075296502136042710005485580196815288076078289342045565621977112901386529792747834515334356823650963945203987632104086060003098079838081363430589267545889872556666542512914077631132517915975713029271217523142093030095130059809794038719329812539879765578043945200483879484156862846929759065749784535329241997367057418534642495255044600632674187579076187575805252088813225413979503127564026022025639321098594344874281959053662408079715044988774844650013521571939665863229262687339496577340991512384727029607676023860516851077198465244055839067004836009191192637727598750616966606186302324067500622784856216345011659262998270327106846171285631914685681706507228857043479701378137089322547828804399288256550442104927651714613642915294739259190569127424259583046487309926145830628673208017414923927049069689963335222155178713037337395346304932787186444591835352804302199102376277505048466417311540584997342006646604268336735631242429376477293866191609874128007856580831945719334435163779409285208892570679841176503312328737032196642166464269043689383808976159210252806378487456332961202440471908646651889518891828507168256333984610484084054472137264609790719545313932722938176184561606756065838588007188197904360313388230570254933426634003240198923400123644561563073895047045810128270231171357173734852115259374578484270916093660869115453498869866436131943132758260518534040421734673365692471301519348882465062883919163357554942101766255758301371672396283910156182439463185872225023460334013730642546689220006797594939466372158919508336807716178717422565763847411697150847598348013445572275602207527000473383223280042476072468367053985099372418055346236152924822602133471937966453503741596968911452274975462608625568698837241849437221315900241585983912419388981594318758243925627625561585490104364179280882772694668109754923501248362309402531597470871857788893054044114411235779577860167281334433449586404146334881762122297909725255721942697251560733161419928580710249492192674058847195969295893422536101649678890121696037545581872171437433977327504784775338497864819649895625761722602802396932313604482265601328121485716209372260025112642246391265051659699401163076798796564528901995377588027262114970991760330449574052024643002946883911725832354646064366695414768248230068446895676250112175356724746343658581757047561573824236447424784482714015932563314271897135912101916312524532427078281160004235503811558908339363982725941522613206398179419199359318597466538451240537466824140351193483347368900564194508561699570775867796697198794970063708948120134568655598166741097081628879664105128418855961584649688732730955361098157988523146521625743677357763090588973255111017833391888096538501466023413962961929143340291873629402407016727792904092985891704678658374517495330313700833896030946609243870859022752834697104896497256844715282218479179853052749045392242705620779933332466620980127277853806915864998062745047962276820363026681067372188243996596595108049610942748506288962292018576625630071365332888604498438645332354650742280274692904981147861246267253797419968310964545755254592408637068550125237266755568901857825855463525680690161013507589963119910940469058893585639212979795148420689241101146881447090448136057197188925911249651681459281602714879227204920060087008378717908805731740285256544245790920971678106659597942123112321299721431500200256551857926538953009809104914458039395177617317003167665010325257974333823850860645822886576148371484520937579490992270400363823805935918308669537409766354376649764881371736814713652487295787897636755777388821464863148608194507414762092881420789180010999300414362199620829207924240510034566577160606774799941478835750341146436455262688974674425378870953339098036639280669425230308987462429635957368208881869684072794528195714949947768115950287051253541230447419683485988279385722607532531895166649781831598867863023832224496158767186762306455158643814264934885649783984382906851548286314385078366533843302379116444413793043247785444270604471880585713188897539935911240677555452126195885413737921393529899102728220545185503566346706713811878968546941859631151319111492189650143112830978451884961618247824273043738234892521214080238656168737728142197140790375971163092170356103716978186729132227293865294342272992307745287051728189398117973953644137497688511959070085583981676409696530760354199845973734903222418252465824066391580949172640478202309172011665388936541618069876155183226854589562502408998659701519585638659758053723444377017240959306323406016942194394067027972927514847446922982104631909881953218261738782267962344351795656328688279031477650125081367878980985785631835938689744797952501105438837678906392261052304265132799690433970223526819087260481548947105490080642274237417543179950089639301615126240541905294752752687051877465368128376604434150346102627017675302588777774990869473877929028009612381015980340396677748735818372163046405712489282525651475264867963384809470683418397151925708885424343670498503439013622859221996090265205213357578696611304565884971348743186922864501386825555458513551396481498948606825273483919255086768292972143863130450956839903870996748539591142714006104055053393718447759628332893337373022826933588456302769184890588601536677199929260901767471421447788112930507536649344810215270524842633538023062045578175112058993810180776375676624498203178806637343148370277497173447022603974651656412601767780726017357318667127275860387646613856079127467847668108142608112886603232039992455829608398277170454130541226751560906221511711166552398689067473662923969256430448025386507841776065809892125034831044991016874153873916686854670506576184988863021511429480117421364014511805968583967558059588898656875805521791789876283395788031758427361029720656858858583320667385521943259965511855777805790965724917160385537975966752337611525740024099382683730585286874051168571841812820889689132185498390966679168482507664460099234204114473683973654035259261321065797176417647910818073704266636589299958502014122830844418846751845166826057433853357734773396761662930099247002574567682625923308242959538627390427284601247342143374117197936479998666881850981605332597538020248726248852509164114673520732898919331047053059281081514976791104265753877973656361052525700262745170940792846397551862278306440486553256647297013242741465899726392442468406175771213376286781824465231994797571672509498784353818654395432638218113452692389169717603504872216420278248909146132814810870743793937979498012992381744374244107110330166637000818411827008409599608747303977131277708230898146140014838084469930746632289806087702251343647550613545061059503558013222839863671170825928074112268758848260280461522472004935258061997066745007851123376931849251435803018222686099335888857595217361928685516279574131519101884851522220353452091490297415097686854798356846471545903719563639448202899179600502821484665017471706974950579257663636814902883011548445717132253423621303138260290045858035260453548542906192645449512804997026480624564673146517472871915718711748820636613713365039516822733443097102372816691535430994525315856336792334139007586877072714639650503444125394896849039228675832921397120549892131160317233879061817809762149871189180346789280226731298491467347128767062146409297428784002518004008254918739459281753518886196506293198632874588708356641505748092117049054680903862315272423262490481218352917237815639615523119788378147916328614757542957863300875234473851908356086944941022315476834158607574866680492839314090478891864239167182663050504422154565598227123415175669733441948519478635535266949701099125961393758825378454590558848678908582536562733937131588329324486739377321142720338025446594572584063560718897859897062003833292141750770939339966604259343272439418972350326340632424468081742132812321810804693987052908758618236292490355750765061958710484887743285814803982252190867812183469415435382796245897676339299025031548697024018145779808248493647591618688864947755146003152164813193853239451115261623080875018757946663305100565185613377330019153339702436870265460465888262466127247316363339667033037825356567905824117627217943130036228803933471973236894873106095031623528281642584632993679346697658045271676023982732300660291550679007470156313754572313065549909993526677095617346626301889389640157769171397432278003666769228305733449753876916516714216026653748802235612566563415220216555419951252527806489353271759598416665528303836310329570588702512682654480748616972699927649625892339640330197196943165560240804182518195880849922394406031961957141118945104217252809490270238952128971732632156364194777799376940104430313277661356149613233156365724282035177054879140416343409403246229050590314005368631318862676396748573694406983798576430674380170366032026775908509210982978622250614065928302493601363410388978190511214932222423870679344904608737621545044673932765493828031754469611073625223366260009021869522506395884833425153695046486015004945883792737633795924742664045696390076748856175219811623325744214653059212810501297882347724958813492993895426405027961163116153965749056221124161807044713876480893826277051777316892489210848553797885919813510220795664809876425947697122818096649516221352565762943883563867767531881704739605412432166957040793759940619850101510180026457675416892652364727863515456300180981149443490936806131765009333762021570691959841499024696969918266585483645606053170718551035775866741789435500640974318280793566766052066814727260402436090224631020223703160571011207410360265449198378431133325470595968809992888672820595152526743850969544326799574884120774357010975971495873845532011921950290735852548878507967343556325938562866223069079690862899376517981010561128235285528133949676149724879877497953090947881541831812821605095891543859430249282404285301435607331014895182425187943037689017728271542081272645100887984438970551065203362971497828403267416794336278490641172040775774673388917121873224589099872865678694717678256558036920538947158539291196738338557361238293055382865997117640530415544381006277398642829603575431268593689152603126539032445253553402974269077803794991017740396916762983307686143781873980057180470096007917392855146403386594912083311973379306240923912277509753056478190102467692604672623429591235798938747238188007186316102739795174267300395405962557590320801562040322475625553176872982858734655761612699652744947577963779954651255718416809221110198476902901062680721125139342538253942150529313385892009993875395606591088614559876358306934672948943524664446200199556076733492576853960610508772801340360798256718867066689407545550126478499385614408826220957974308802312358304876861438795914125518816607528680455633945081330777278273536957483321894537002159405212944643292114070370022362934022228624172066872823472328896311503950848439213102939988261215985324796240462939823249889403867594997372306117034586523032246684875051089284033170163636584962959781834180311234189780650209968345634466950623058444333456063544126899555194810167642962214361265988931565837643897641066292699298236069317375667524898957320628363958884585840874246172867057484092052718317268727135394351237901878677813886491007467542886349202506725066923813676795288552449912643408775306705079197395684923500578878907524161897685223665883563040831669015469916716524372394806463702654626004616228716518226540716444267957415380123071543488818577033629871059962877752398962038362303354468973909764824044683493090838541939696711192910474820413801461965177926329441093398337332884492258008251037660213279228783812964924832286919992370809877534800798577396970833316013177060151032502663417422174381838048945525350086149719498780224014520909498560195521436192076534609778580132299144785626474501257622911803534679033184756549770273144142482495813264784876791588687844881353620623089824222612677466849921277098932081511779649286494156980535526995279359175103235927023871506352434776973247638000576440211839618193972453277299788016823159483621592207617016758973641142209369137534137932027944718853895924736698098911909106380927850864089808606977109640173066451550376832492452399087014977677461804464033573926602738414684916575882637965107094388067280416387738769896793555591940579749035441001061589739882790529752037465368900978460283511655164796470357433122319125505575819946873385262268911822413406176695470611688414911000838941940558179198480093997703979535163115781795724371678990842304656067595882612820566022417638649141853010938037192894526647612553978514544985592974417520798081406579381212282478819303389038310220205665254125258094355476603584553730521857724559175695271062856848384803735422435089695153360578021537201411333425506213305432940458558140473910228118553037918582421392105099831882570168612331326909981158767358527249090123389488547311891381617013280213137425019528535646431570114520384125196464459752942022944108598390856346466378043431679312249265608652594430181474863516701782748124902814150024555156602971298319175109804579089885650341769738390366123395659753714307493870606498082205253586981666187132093388012187600967615953477316409993247415804940955160817547462780258153389574027177874446282308230454879253812569722365584546019473945319781688118720323564417377830052701640047689059773992710517120677750328791146035432123651562765871307326759368037814630716092309521111953429500653309427578135951231067081109154114258598880596391595555098199696354192695766133272957247027579944626568217210605816988760174939752775341203128171926621255402344740296618553071007458228676318478875297167266970359252662127881437735939316426016329132380826066569719629893184561467160475239911651502409392023045527043015523208872725094482142611405608182833785743704871698702855046361099353233799046665150046070884721460427396571187191526724232871475723019385067121966686415070035662738875215879846670405266883844525068442710988172652983927994809613427933039980463837037370586219911416879030196834410658124905298087052784776137518654998456115611584300268279928416683198718166407166407973547864883360197974266759652234287371649542202128085761583345481860149271882854674101183617257003964150219918197521074631759267229237855461877592131394377817517265499018357826623769583358783462412087686560977805747503292391764150825642939597644431498413742834154688600822769182686104240493113604227864577569117106600918233857103357874927441945296188687367406852835459827026538878683429560559320484317198023574911558817092493400123455303523023241329411221601714744196935806167400589645243391317636941297347491908593609920532939424753139155677113970047190867081166746259615955745639331019051086848355972656748475315406918721315860660734788196785411910263647734462962760494896489401551453841217731702168374378385433820442808073302298931078856030775913875611192016336225236745464332503443461533075921923451407686347338765724364888414198096424996266205897752428987920702479877454022088466617070363786047347327943456521391625145684598265748158475726502074026200069949786158569182851840164302003108147829972742035775439889273990709992858470639667794863270312307439162959039984102686484666095565588681918492231830058734222577632945458744997458685716073743731038153768540445331293232983924621482026613777984402476921678456746807356624994086822314877916403973168432948398675149442192936216076996507357975117248563290187297580111769691958011915968494073182307183573742651974643285385958291384229494685370637353139013212424666573649940026393326534296888964394246766171247100580744696909899160936826542739639438113264574694400109846820609588286476843635333987130967110017699114058249774297538106211124303960997958829077974917536348042807191824707644137282511129385770070706954317590324292300262098517988750668095437401540083277361963128802407235554209141445377829700809339996095085106733212992083297537429183095595898918332547401003407002369625860714570796173175543920372344460986675514208060298169387202964864117378291982673528636061733077985701340910479445333333233430847617353535729289457496465699943041393219490831905027979882324418366863783561805187849190160933904787753812506312767704546859711038779077950534855772532680089822963074908220043848597715894688254192695977448313357441933991707017628528316909765417318853136937989526373757229984792714919870889878413306468267752172230154503002818948358671283470745646209544651566588031262593787179775492230379859257268934281015558881066892057148082225455459888685590417664272233657358660371932575795271427644379133239592697449621839030701572180430476539031204462459906689685065891231351645507930789373232960465846676198553604219522055106664980674815331233888980320019483711494044865819099144011058100034738022488202585381913947621879075140836789134347458195751426331203052809302965475945749139691847683041691212884009763518471748181162516325001758058972094784516749863941527917694323570880755023924738033501343634847590083062051072805137229963462972713798709872314779237920738015771188730140374821500347305134629296685755503817286657927417425735031028523149730124261707470456820833955309773934194541076927987003356946224759378765247882398719227419029539027402180377264277558208922911038075088284402351020777073562048054253523125998953602567380755723621917200454035665073040083096509213230734666354637685178743045382644677323542341337798579500287296404171500482762961431077493082171866397061061174311435391378994273327375772819793204778118531172443059977997116872623582988216497364036851348922385857403788092861472533171468037263403140189506619366889477611152936235735929714627734010896147506589541117903921603302868553576409142240872709270598257946120021709755763552656549269362559738028626704015681605339137269810227126480961820699536329794794222785245967537784898509655746010947460435268854211278962613716260830574168604410581008892950909369126891802386387635695294119718461372815722963410481948040741634812875005675633095023787086829302113459864344194317312721744711987928704533786902680302872459819203025741606827324003215912264019825962586975253591674933520695534236443934514097956255469832656397535214797678580368785847328509338606022810466121738355102673249623700435328034440560339526653297643765932046480952367809670153599278822912741233388471226216797294219209851878217866502207385518330889281751119359580203334299095403756551256999022549108875632352249711741289414865208963879330073767626356203484362555805978768332909020514334961908913723922268006237582924298887084826390976017242346037987161136716367722896911922963399526950559354556143083043797888770624746366346489433494009220800118140660640382049143281754463910780627284571653463918938442242128314896666076790187996779635304346122407029076024032619097170679702187694728305597135468416186802744178959605821874822080902816974743844767827972893097920292194225081558310384578467841729897650669299121359514235000375946006626110864966177590822699912524120896693621086313080194011396106868804793693166390358691665874281451465501016915907223050797894587773074128445851534871121419622156917543457984441193063590782661556253245365636140451598767297276278586588905814242681316057235956448403760346906798387746756872418801897557887799614196129112271381945287013934886624291446952983025887769491067600461409292291767128453419948265239932796774868564372257384569029213514666818135021162470968795439742478540561165075919397901204194880575823253210679269415896761820921302861041346579656405779521871960201008225972872699754991417176148942524136568073260582846788834121764545040339972018886965933525114333405775490237308197373948059703817307310360286067547912362664768260466271769320659450153424908653278601903383577893548479618080742912079134041781758064502476181944351337420492170613577871313463656972846250971498153741664606128072518795147298777780550474465761464024010786698219243976480639569505689927832615483432625358740209830403887311831537153762013325739329902173438265481663257592042662073066964064628458222474085799067032277929651896986095167244514637946896550464322509793046743783448380441685844935822631822659336323157076489512184809231284942554768564013261448960490527304525284509823895427248131369027750242755083636207728595312928507410290279543814527325445953042526691657529017271626827816067513212102016207934697927358296751559115788913983211403492302491875594704347320727054031807965872612315861333726300488563939554078912675370550192404899747147815078157040531672408256709234603965663247632848356661058069669818421221495155320205066748834342487872925848594408027008625605676370751124127513141362409672998796032223952530266915699795404623617873101304691391844112771987516590895841982572485597181520785576332949572102292970684250146534267674604365162175756742514892633601290696932316792225892921599139927621701945639225226710339227792100348855404213356903996478377074859546976726416622705748565690535876752171747277548978461890640660940701435428387404231879950383352054645625181488419774580646207706741148444197861886350971980474248901950863167850993373739537038233659398009872340193637173032667747412705864651981435358638408137180709852051413945915159004776143409902545883433579435954340906418774628956889112394914661624144603335264957360079224392013191022396229649351951936370131913342747027456162873848034409299159579300549033950749092759262698837697140434784233086507050536258743775703938180918817574236931752841729323382879311881584303110606506178616164954943714436705244405621445282226433318626843058619854529556385467898218062377936672533306592464748845461405913406603939866756227743549628813424103811918672934836554098005804355794378357682615536191793945294650091951998506301996740168311755893946123949442951686672640127889162430652473744203651174968184393784496523216939545813008286365398034765433976128079176242701099075092006225774434431725785668982025606696334211150409011362942956826134118615085869243107737708813897903893684765632341105970214047160334313913181677056090504835258779009277227751148768866502818506434873504490186228048097455217808586918041327996221608835151042874848163544404334404661973790901474877844620757198777646067572856388899999793629820543969145354860440641865392615630994440537135940633223794106156253950936270993940517741003772043529267949756305251568653862680623710601031815875148136316717466125246285403389144142503009901457868609649588213905030703854453153452680842316964609880179754924866458521158899926376739981439438997299722041955671265558702434159951336108768450385744126397555499598150995737852079302765294327455791105841661434221350041729531440586602655272552004100477932906701756975162121967958496517962066354679597322399579285382622155786575521898585863038299729542239373176164412543639485655975293817049645807172284057730716972330050048279628120171863436956876233922387864823788303710971983205238748818368751176984308050602679415610052272672463960368422696145443845612125072786187531888702579644187713649822884924352240157602537026215242111740886779789925467711638360121783851839339199764850302585867086300885356939435271620529444625213139619976289157202118421411189095599317434318437884569010324227589115020379000149516030581252926072665985055388769576589880735533586796518469529659609109909343525078789952592044514410853265765358144999485927405451726551898604544639880499725943536577876210377449709880253462861484326639272784518102292343654544539593975203841337263819257053738504254691542678100067123048012541803110162095529215465336040272102642330251802390677816367113000003063294340430417536990293757564226679138912881096749662093854732232811171107719565743455290441480226849231859013086487356757907371926614524110618619332247876318221773630126977304835548104202179584377134882763168796050499082090951353240469022791323308989542911230461475613775578269495138918172702491267295260196860320100706581161579150980829908402735588825246075067392569885804059964618207836999584932489905783453171755732084841973810553618855876616876344148827004390809831752487732687761725933666408446257165264172796723304727983347935256266692808671721228521006064188045044330055716452492886881615481288400952890517490515260051099373333106045198310941083655787329821258248196984722267972235172971312854876392862583206738063326158058141426337714236373672279469205127853190888847436268200093397285065471814545735175023484268403526531569423129732515013812175663383665744754612903190482614527940736673402530161935784554600872001528464537655492387813054474135659258159946723542435479743467756725252771168693656698270367215188766368550352524184615446281737575219519391752204621574737052900549331227784391667687026562425795046016220345118336575926196020119657702947562487833541675111852598772626110659418674154957902860215078323413629185531787562847953059927948246986704077291925848925080223095292976959768022082248189057631115818199687845154040252942206633583661697018285675712337477091449810815122318545023646214133521142900506167429054087822984731178167038568272845752568393661781146305328485829411548854311065889540311636576320912653758916148770519510318664472978256291437512004710318628873609358176117008115136733157445106726290236812495498341667391333552297343253907863416625687753089210666966339259105898934139055591030147969802263701104503891372937552633110514223598576243627817814776174056359712343926708477257461023466789643258635266135337850072654553309127344977721223722990631522093279453193128911454964376615276372550717433399739441695118887994221780039213055983208855971768981314977843189194568800307095223807304464993948364694179882712636202051730830085289313934950978066327333320714912292421201227826152434751477025073460318808745468487414492276601763951971628515633921025325288268923863685156487193131221986352337571596550717590685952158187111836154008437057126162855435550921285528418961766171352625957409093789678117964892902492383111173983620806003701751896458517786438193842544961452424407118239789550352368178696988695645859037975374209662717373205270548953690402083911665914548080320275942726552726840112892169725545715823530212423648155666868152202973970883674124246520213286963480905432054593760435692814441441729215151480762460062938765185780531910999196334634089606027952284391779702936073301374218853664097420307077615905070033236494419192855056065312170847296779814399215619436017357270243204465643616710512308098047758514205704755353521574535518882284841937288623954781303199778627650213017230779630748299624165581827755801375197190901512234210330995365786858350781573310202562543875134550832341962491199009608850085958776461304950440536718102474462197824063793000008914377603076339569531229390092521886348769044215401146466498589671070201888882536242713706636152961485085162819638344848623592246700007080541524410433545820086543205092192969137912601895183791353688814667539744415035427081512066478486653084057846532271502205342778105860909981689318468629625322452098497141099598531737899278237536757560967799000776920019739720938982641208194872194004045016673136559195993545852186344933627576999221886750771270139875987762789769926466798265088134119387015354385694722657389571215297973535617488774777880527921538881818512141670526709133246929835802482545930434534091506414273342107383515528190106772682404526135434011763824618591597168086470079380294090989860568330778906602810527484197719350863445589920730950033297899563507496520566405828850431099534405620912659389121177121908632974528207974917476006010403937047315409846331314250676593938180691153512618218667115869438555079278036084812950263070442861829089746588991771134744718821766444138952857387329255316887397358456832810480700771926852230762096557131512513302592159936966954792344277383949881274283936306009989970605060902839488674562699041257579263275240032861509465126810433437120412249258177136195593706656789698328488287063470784738720980208273318417377418866090803848916891183621747395525038240935730117722062282668878255088203168861522711793391883061348489167159177684127676287988313238719860144582514291563124826633516371018365999431876281464603259104240679814194263859264172913309611092008366622367934436653297129820831654527036921303797003215406788299414849849043586188471634564233628978612501678140826258742236128806741065447726621857450445815305715614380178165383846944198196674913637017470306960310076752893776816549686479236432453444328130904984442830719978837031255005813794035831865684999375230034195888253389341284979358002333066123787384899212685564621943789271828392120598549883437173855219134982959300840209390871709752627091774372607749928031069891361659356391025883201813517672835494917894020721357030379955157204689764224682469487747249067429828773309892357050382090622101634615463730577848423603680257252627215247086080774065456636976681165475762546711419652462430946977874484971289945699738643139113645968707565334403730320679184470645309650395437728229583006440914437589607117489119746584735732366827566971168467071209248899526485307195470782038369266057556897447066504582831258845884754421325841347896370893469113039300984254856662914970801988586220616124938232260468122122936372876835137435012160342373324657623360817237579270621479815257405848093458750965902591536190252168340208305465421701140107618864491351614601681130238416249932192105340640703750095067042055807601597423923938744295447840262092238372841621684402869717195969518336367131097916152829777646175036458253325117200713476817237640618905277992118058020068810266178148504776914061780923278694942418270608335890198607296329032710416458344860068966642184384182994038553303400825466859788074393123180117744311958087100914529792045924887677947050715999913673859551409884542972354115434382235476181054503191009112143592097583794400279595136809865587692119292910636153287812041249975038076777077611448806680844493216285803672694278323892310694826682101482952027499330089195617843032831785148133750728991041818787965622579969998810141292338933145168384763274585235861870971009153259079812684851734129423117588990785870957155778103803753928327408414932796582913976619746185578935469834996614749972679659390451836113776684437707136384623078513209898317993430733947979676387255982920631926545863021906282647688536955289475997589283471149689022244531949796288159818414559226890131776588558117463521858685394478153565352826664524609235085063614458264562237065594742501629172097038036422966965377739121967681614878072931218368307482032032877664167858603754698691058355249349684989817466539033673912060540315666839986547226177319068485236798051924578044879673312565162580650238150440374423914468001808493590460352456636840545921906239478590985699281469158594461453835428205562833943369780055489114696844502269710482994080911771959229908695988266907675706135014141125319886019251611651121292043288214133415716488215310738941721278689488176835263354064322341793205806581618586396972749886881636778092851670094287824228789879542970882770457002095202428650059843755153344218918984275210159645933977075852552070499015893539448838773993330517507975131629536682217221366918106946328419857285750003882970504088864457957270033379226053023297348166990139735394707425706994162176223288317517606059627216875285387966691744773828612165554667972756289574814623078370230470605589557428667535271957223980067656247993648406348910521213369428811482288123786087057066882677445947727106688086052001506974020217148591168970137011630443203036121809716789059174190399837189193264713834264572296764824201681137463841980117845369009481602340058700463441503162307254187760256646548203620041274123653457392544554592870913912443785060872842623830046239689948299721206053711641810388082792521522567581967282960414282921900730973798851678734756005427941890225088363079237498126294201848870175362006876236387947617720027012252691061952647571808182741105350465207618943274717248669111751762793477616724135009323333230716785258534472091302133447473804484625522619014227057237827999184075566351087114575751609087418813039952220397067279008419663092974891679499695020095627067432300438959602590354424991624876070299431916091585787641131849454003817566588720473221815578850805780978007828729656613709858707339539031704509117123653901361677281976256632080402818491590159646292000257034104506409710934503014819927105147168789744451679463638866846622696453009685021797901455950706405988384793464893885645409055711336670799713125426935176480189859918523427602882926452371841589216160191240074474007333586099454157971072989156991372135062580997636809868783122411472762947644193636531326205732710549259315580792386254944889987263404985693859447652051695515053969328301561319238720878077309924760783013227600828300017973773254897418319906826506880802661947131829326232595560343138400798049938154901605702669907183837626881776821048600048168325804735940505837958064246791837161440632165945131836031521612091908541133260805729987229322272885966438706030975294825049987941660174183085721892780224044358637490554202097562028204928189574870181104413624906464551247624829354886542039958761722440282536893530833381885779285378536866008166073096958426351852607937490920067396486030100172504372796161636369237626078162437443875858720281971776079611264105248505385684654690216061814554466245642232075468128581870039782420085089425455964698050067778374462054380596162235041586182424925897185943511320027988092743235126007073311536864444633268721340327612159556732388358443873476535936809814681910631815946189049694333337661054873607499597352289564460466265633568990555769781561760896737993433546361438013239142689435010079837790276316592024036454760937930980679694601070241604942935211266765589553774061246484277360694267593418080307238920512449961278185140582012236565560387939871805061393221762053712990809146470071209009330715600364850284429714791719936525450710039506152291203082784441913646190793177337263896217962663158170896923620921065179172755486358000031294908472834017993821817080330628440943027043919554907561562758440392905402397730432921488742319412902815799800617551886803600729886660233984563932689855319048711536682291766991733184928123507130778123047283060092998027431321098551116195327981585257072625886275167978775001664330868260571699026233111606366616354192382998297689454969126712892106869537500608008519824060760431376961279615632304569781182843040646933847679126702381966950527405962216123972357750636017603485616081076048592102872303321352957216785867342794811766212842135152557528494072679317115349920399434369968582589842829863654462461545332460593485700698199608896421632484357296226162755218763734204854363660304213739065897530706663760498854740557272696485476957991545778490890333183893795422340385320435481157370658640324194232321274411164081066269575049984467728257939580928333848737733764867375382214952554309442974316096858333862872829296371872310964807242161421744579610454478065246453169844321348446827133622174829135776298856749186900974786683364610468494005698371103208426288881757750671549342587409686282066527242877408910895016938440137158974301591162054412768256406993912439419566642544472995587722573300349564143528372650746098565812276258207113471467703029923359919932893772305319190751584207893083643237592822284453528674173956607114575316056778125528799472076664516527195189003876563272709184140652052675482960701147203933370079841096933577105534148132345422968621783346485094612872371436779875678526376332044405502496982492582704034634435469401581520611540499599915851667872666995699401812341651027469020035544379194896875219973820718096157189969110650267741423664315256122963241172613434089803947864564901884541587032329880982164637918004837447215725161094522489596208581579706819449704938602513688560736925042202586440455688495856137043907262117322845913647915741301871487212195812803178947040118832418256305805816238665612290703134538395282998861367013471577239280294352745708203876044965305511720789727890899652469820866068131731450154046799115026364179316435252463239205756312995762832930570017424075526411041430932804299764145338475253515881808926291126001334721711784073143817638599812132448302595566447390140402852208517725132776557606379739832341277901877572496015084085993166929364338365398668895521969938684791535644684573233740154296583426321811891119313447935378137438544586519500146424901386976126250500999238848209736386666066470260041374710584786681251833506802176546597583168754532828950195265364877928427545080973484566602437190292043105812132003956882829963175869502341382192027914523826033872909389307268139025860076862557281262662197114956980749898748553227456205571917552227591576807217786473154461648599647403029411808112000766377577077475650290919303950739767793239662732862653107413171036611708376879135241953009390781986743226664419763675479712924235467742771902859694835242244419203216789032854242326519932526581939160626397459274652427610009000631398650341212520201869692861457759589067402011205396376676677601511194413322238030594685268520308635139879269136474511748825188875932485332822816324948230431130745727646852938398698711325104887239318124062544016173236970084300705268988398636755107156160806689682282061058172169136421393172292756919002584333247063285157625381068813574787902090340522919027059374063158378377476717890751130643773207344492173564724833510141905888036437693747907959521638739009786090362751021939006577080945865431408595013396113792370957247305615827324858782242427659035654776041956526696574077290055021453940046470533480607084140824820001635223225767601240596202958880222657001662729729941205838419557576715570987979861082425372380098904269129387889683490183357773060476225529350517995998122094215226781094709617516704030002444748301568340041257432685107912678730996804628991719983550572800753244865201566277567959089018155247914002397783837936935620320203897672562700145100914228689434645968650547950445671104086266314000392432425316619321941653227320825946119878379594993310212154766205095932645331789480085353538111589549685915677052692629349587564337438109537686666723799451696674531225961472419342682092374631904188896936017679289740808643610392159305394687534003755632103976396591880965247972217836886670750570417101326773776357445871885860331448269988158440147272468192482223882441891466867992964222558535715516341982972173432273593532388527213089985663836901805197458077197622934993193329550588431951919284934734329542695969778918133526894157774122240040250843317236754325441883693892908909140712348839994105147347352633145895319319718961249620415850629001919854546927579722390870544283860326511153572920211772594183450170565117748760774080988354417059254341410526628613919095808733117236542902738239281617908071026956175115169267048190012973561114479901222776451268426106665434907004743492282598939294172343426215001144817894354978559007623939237121400381567394425887007713094314795568739838731384120985678055300669178941593463937576227127667335233539172189033454159680152207283401380624794398130547146253035660522737399109696069327630984984717624490771429399789105897645072949030794713878079573474963555010121704482679417203570000880055682859231721232392984285953676500578963221115243337462740627191147476983668675250551586361934372904950981062146098957716841134044776880573784935789024003025841280549394594172456830743086027808373402980110238445598927736669390176717467988737889039447596257221858178512783686726466389225430796123643744340729171189536291965296536999592858839479120841841508680782502234863997929108335667517103994534093653355687051932108002614945697640283026507792285065777248164009488922379517835442239398733108640482497596533158389622967359390832927392292545655682995542116622219780370565724027965061924781487445950896160438304849493281252474013461735648513902443441080557557642346984190566933721849889930322973878058741847214726862386504415481417848559435115882425839738780615592655354370073420007270257196043697438069445962684319314453475538206244777463176498138878190689627886536254567725356926466631222978395243154386985232879050521861699569998017720309720759054553535822593121992910911817913798768627339789475577614671755029007060883581468505018927055248545148630461236615122813706488930010523688838843626784551448209648967900738646721998551407110729195941785805869406445991243900073684144376326739403217879268954980191024169325771275926428007176366238019951887208185331586324720999423003100822460156757397449707871983956008392147184374527275973058527722173501666035205368314165248792676578315954991981576195872402130759053819499064468097003738382393539380703136227991758990667679100974126107892562688597945196588042336505737195841499984037512349230445033132728962774661649163681856035398775076377615754398552596210507871086302785268783108097812541373979464340730615831321198283583509414508979981612816169535332193117090413350315596001119144858101878926610843428611402729110465691534966720224125886502500816798593841110535435256259509085547624647621267826382874052137205323966974850773159329179298063837850847302773707955700608955085139389851583307997182927046354429926225841540748372096825873475201527094622497071392486330564704907298180986358962346111573203339607722306759940451114350716682650134704762579778717189879052334521450361045609773074561659056806338461322937261078539515085119524537184574089610556198994579937541174879505359530600485766448014837685820737874035251846867519338093047481982612463124153864317384278845394187826683592241717528377380578823492571656388437689687361446716456175173200240619254825985778183097353699805879837567215912822587308928523208741388324790678287449873844136189193000116867789002832845323956904099164247722042122840098141449464142086512484959751069219656162391987946201538403262793213696273986472925668559908974774054192928777856348514813359562663006279149794912236689329508701241546555174984675633113089471452514152855898372093783348056934155861520978022603784169615860836934236475322546202640517397945326411866240784896935354484987347143472276217566429655725467769661427191694852500581854364167819891351036316981871900342994024216002736398361649263508042706221831021397750859214438099339969466069251061552147765145530444613848494543489176457810525737054903985336073235334675065915357702878912122755713425148092710496051547476611870598308598087027263225740500905514158665874661453759138448906199754951836544059378608908049237276459585301686942840883185137494318346796690184993431385162190391552425047148898781882518840401554976725804250647269316159082749122962765899795942658331973917979198550911058324776604675063572718614239876258829625754829721269782229955279649500097646535099285468740042752866338629418662668170568845952055694157665921286832369091408338588994566322303127345068599518506294358529030519125488409316488111894611722837978835438845802246892370635621091746604749816139099400489028631998556765443045328389758202169858118921503655072184030469673564599428019434526328053436813800251006088103029647859510961470409261745297395245805777271586036687884985982454954038181513407987201196155788508003873379181689502564970409333113302542122841457309549303276501902757013683420072331324612292038768322515770237364325506231175694472236003284121291834043096603023709606609680446323881355940776721132034507253147798046341250082726737819933621063089537574374243613741952971855097480335092513003452221191291653497573083000276864446194794658386206841689814987603278600058789529526902541296774056852198868640699672050468982210901935477734001061820776597308411378906952069311116711332057521493664330951329515199701758558174716840210180575528478171463716407362839393250495744754829891679906800095958680410862973282091552099705454797122085001079030179413776320568164934909149289435343157837307518763339786872866104814773910644771862106602188970367519199004051414928183823475565431758015719010129863745171471731014875887402312410864430338459367702592375181274771050411464963549566313216341299221208622468975965670941486972651378265573529878270180051834409127276868420418584999791899572616412961734171277650208932934165093916235006290612177185084259710549364033472961052158020932680547938224020739775003646204811729796851144427553479623909376095106401433107350760090446154680721601918980760855088076579862367855555795901526684142571103753543283071897391916417403630059218737014210615574520580717711205496900807089263691054652288468871613930710250333054347525484365704457794101033258811848777247798018686557199916425008835915374253503072101901306748367818308268587100707258008817929688921865719591258728614458400173791519262292472539373648994971286425230563976211350417141121226106239912929963138545860572711384407331230459278151820479332648454877990600627159787321219289871010082024484803596469100490617475972549573498761291649841739300606182355013875271457935781749869830845693583166611671875765019890795630008892535068723083709682521903285994001499214472190146163129232957777771125195367282910740467574131038256328877733812106880496079321284946251633731770574355657567922285600677298344164705111499015978112270893610732592197141401716997478439473329712289604114512207036053131313909021849941520247403956303891742450651682996356495224753876743585250374710282768107358282664479137701476794806951722131155296881495968251431071836393451558997790734828072283332076819096918760334877623097845462090395231721413589332345594581976469339308144454539010012187694030412935079245204659771385241378190088738255942887863513487799435693470377998711786722723301463882275961088135620039772589110238496119302221960467264540418822848059978861969274006576871157974238952689570709119597378609939518665170318889590547495605625884344046399437367917031818853761907301408934217727569390603998646035022675835934771690665420668755855795911642235478371530992654075382412018286305457693171588956969541712719054526991288507603979045886145389202002745518964070520140841476853045423561197255499020415944303530408777144575538871805388152470580315712116728947340055291030039458725874392076634107438887358545679042805118982239150044348165707266282197569388557795062624727558805914087909611188728578591504843486228199515607824872295081249129839083225565011756917881596539007244377139521734494966104085086832639703222045838645823960172368423813672130716448303621386161184634211036826389291255384738648087898188651012086121679353858930131368825461429938737812898404265260209541548837718970339931138110579177792498841973576208747322053247362033557027745351426100165114782495898713988803500711481452221599922747856067533433060054788927170436973804321178683432663573717977736951779126334296509324359243520455062132401497445391186216145775378023949923218785037574931618110089153844331663543216463191859137943718116157375817140944318559879152727801444112683513550159201923824966803279937476592068957667462069001075685747536602921690557396870326270452994453130537630159413164049301842042353778822484542770097596669729379833801552407286656574913550304671907183545108443965307418137778288169531561837472283007057027035503019911918776137685647764593649915872883427195000506377987583599339614883740945049572456724301073993109743651613955951795700497829497746796904196341416563252706354089082338162950047848788676110439303013216554139839339198002735092571650168398000704156601938096519495241658555137965747459917545499019481170684747058937940830415564560319888132060727552612846700473000472398769504772576256442945208516842367494280842641205975339792589851125061360414628146160864542245007256099419520294002535501344449202037304461009259933185078584264758670686122948903172191814967536014882454926671127775219445487133544485458007088925868694705112622971161169373886535557396818853617947894878274372825942890622347157439312495035959381183080712187496804063876095171688591333632966911100988908885310251094259817004634161010660225810317669933175912775997097798057400732529882011368129626905138129750258911704496295872753588939809405782284651149882410304813705249088242700618586413687075677235824016009414586435853207071255019913734797626444690475605269521872728244248495398753836475914823887805801449557376855884767768480318260234028189524624963041090358664906155267812984189661057809183823492667876818274304201101244139304393986851216911270001029501455103231837630290864888163348584928707591760209630444475169790684597876377660295642813240195120010169883141923628263446899865497581760614956258494102906343436968233899578826954533128822279130855523140324837269132317106532208949946383634941080880393110231515688838930139687343286922099501438418888504943565094961944816383826526717502676870267667249326262668566815248646250782470348303161924991945640049070626992399761317434507498395448835960573874596262216116732087680848717261620837719773184724328692430777118908308931836043117398560499605478029565135055694768756269744934615126735209340950220652170933331051923024520364065745571490422348210661468833266558486915467986537928576139481281226239658605819332594659849146404948349416244188654588455193555922291650983126095305182555740399482355412587964533897941304932950516123348424789726687551477200707083292958734919244709405082961883763288873828337206388093539014878087597397223843772755650826092079270770297713666065889155543579349968566250005304933385927905294142540072679220824599122168506547676043248196382706834902638683163586766327945922372936397348633977207689795995861012959611248637048578033855772806224327081203950425291723120052624125499118159112718504863377990665953713629759067738734478207473260088222376199086988225059510307336662792690142125510029944081383410505955332946439789497793974536050124566170564255580897951243448014714209088879896672655790577130877759060261012281596523192534181963632202360595808909570262368843713139814352683553013534492569695122769787451633508093749023444783316107057745543838296992456500623302024086847618835980925858116931368158964016274866628737499093734651208278474568121845128359568918965573192301463277771569903997097619185259702278889931111385704706102355034683510618861509415276678769397236492036438513453476693559678388302297094256453000520884266603631736621045152209931862644627373948577498068324671649537939461880163789947759706203010718461268297833987598339253401903012090144356319031728186068345678747706473860764762950437403477815578772339348898798518615599923078122101080366082092443837307371986409120264882791970548389912521682726691476187266759509666300346608228990125030586404698461329701757976291150208008550166014189380635602625333253693279110204713555372035759614822871603337110179970133974195608102430573245670621533392959141900968784120320223949233880223922689847843313833941740601522657178710871919389928758809265735081649553478933482958193961664615382426478407268702597436672073960399091002416742201107409379472131730369932582203983605551319082305872431372553325025581655291582181735847668546164420926695735174125865133696911653214124521389778425221591574768684423773131314260133440666010379773561459230170269482662862618954443641876565562426675520948615238166456094031031998010596637016820951636821826353398927666326919021575444156497095333691691631826664934701993031383566149650768019471872910999637568934173434648748657451463009997819225051274911691234955954133092018867082509671944917338087810989617853912278414400099636254088125057023856777289705287111147644498787942839363445540899087314823810273992768300477588507432506787959947492770967562977740635348853137861543717465106099338950567958131876367167063983668186249345033402698603925520496751624172271544672882571495889461474196844351667484328347094579177562008735461966988308025665305424593807495529484962816421949903797412660386865067962510357581524325384993397749376206459632700897446661595631694028123361804819579592652578419362501554139279445608517972296251541833186959143655602173834872698070827625098607138391062899790010633113528073277186373433921367272213165565761676090437759527518158109716370818465528743689983759470642651021538240625129843670841839607548290089428168256185801793544196959074468343378321286757930918995585058933078877801929871669022234462284617981675393782337243684094875338172878746805531668249704463455546468453576591514423295933698575636653082274952392124125607827808874680014183819591639978250102475504494561741890270232150592000687980098362139469659539233369179615326859566275604607631047297989928823910999882642584865407065537771711804435214240397153431590322336252072254176466638964084680609953796072400598361627512471980408944593113515549867524077044067035693319764895319181142649142571812539997816716600259393577834557417001831608905227565857463506210736683835445063634585673184605960753425019601110761715177940824048935210383092481606705660654229310857274397496579532217234750479407104278143056037327850768743923532475116182401791835107291682467211662861739778973854217282824716881157011505081025985457266054669609677405935897841649995716440863456238789882769819319160568570720942356346437846147352799904817917837985261582159797892889000714552284998701805140204029614655296109659916001131507594928261689013528577024842271919250376286950861808952778711911383540845597126881829914450272730326234223823317559868946596447905914218272974048629191625294652630096202922179434287632976980147137504434537230050356094050343511941405771514697261398319813537825551929920776332705073250851809023127175785158512227251838384844691392279241196775809115579836526603560224217142044696570125985622818935292140532059752507278714948527509558364935966401468013029960105829231947387936740046779499348427434627426340669033899290155722981035960537301948678545152740846459195608411432922153046671001855384344006268676319218116358592611653029054629090264182956310063581229953582102643656521239038173008170322359026755739880671816173470858883358540485846759286963592208873861211532189260534812631521744878137971566744306331986925881243357649476593544756672916807006501442381606727615166497378327752443494544888497714126041361410365788476516411816073542089905983791422586268064043928347782851196093776405803580256747217463043074866757906179713736196099417793256800663551994929048424252638017932972504058367485050734800494262534132488386735746770680607101517756397947356235215750582519018046686887848419188743475330548593527673250920389644835401338438087042566987124137567074241750693441620344945778763569204994278465493612143340418681420665780528508204543724710811281352051819386573862807698192634035518462357073958954428085207801273236034192465113772560712001574459307198140336380881615382956644110568465222651667217343941021698690493745114664965534016796242780555812470245649528472854381543850304538080369144253961692648688469751322661551443899073491068870299587965054243619185185297648392793612644547230324831909741984292700638485242580781129165165069591979105356321719239300612947718776577793418241893880207621872735357830317474959838195360009088061936580699024477664436462898029778657558398926902181860709848145000622417113603718919356412482534155697204674513150732850307055859102705490707639577061666962313521120517694757694086640856438966179442636572177608710856316897517825826383214261904775313976987348982977274023354572237582447096092955108598973083972936745721779809568716807982113512376265647130186243443351255375398930069085845093820411289738715762793598760281443284114542864336490843883906334205407362426770591962101333299267068722635457064354867805877596000584500940240485953816169438639390721940100665393857570284540009539160022610795643926438603759938499679395235579168039290638290691047917599786485832882598157763314024259242950661963553826845513894661232696219175860543942788060677482423797006090711984885748602256727208261053234228334907580998771391966700196767810988211380075114839627037045843643427119648857925750647194449711601085603467440107974834494881280316308989624270967858177234558442150083542615825378287493334030830884309188263824072871208151439592561699314834347031127486986109736798821705429826637951164206948369176164705184022557364784621759689475021196229989707438151663525223192618463585892962900088946818926565425740932373964333810204052873123748795467270405496709646063103156868550643463965602424323337422877632022786467954153980870242677466673159662751821577238815492860389251076880839104373025887819624628114354793361593399988002649803358224887558053079331482514049104904763319455042334867964579142280771424167759154307293522866547233331550985744965208283256777436807879397813516778570311406194007852780591947031531140880497113126856352699872623152546199080605008219832987332631712008538135749764167827473709621257594038921338027788970063787006963524787488170965687082219607908409198168121026263359966875525211256303062223195566881425604127673218510411944697907381189059235980394205152292654565011873972287582232642471516166929727838069885264186168515085611050436772816420899309015638821671252114319088831718746677476372658848307995249201147140948691255818025580734373348069175062655604214010267319817783024393575162967200760882107313879572512820822109717320964748394443071160078337110799482638821504599814792420345193260621962131301413443876781076197719694121318858789725573156380168624194507522640892241072044886124997082690522856953316245281745415336432076974726390396556632665289627288569428127831955557864062182565048867391322773151322767505725429669211533810683109712219582349708504967590615635696135955425179309738500235115431607513214223916361244878529705218815976025179282328543480345676268606748836509294366461186236814484483348073452816210123108996012214644578336973662872546647794055686779665407340045838992157417349709215909115783094617027942870395528774209483675481107014778524588360279214670939198852383677489224568576444665426867814346638477619684646058121178708641402885383670779529690548480136634362046471596247783348899704975666174080219736300899912081769045054248986046434404687115190044167457648426120842852458944458226672516125844303061923823466222569172027110428973579125839908409451453890069562766136679605308347779366076340333536219573282605594582644476826187629018611055062985727460117267551830858331858078089792620385158455754174983214618245754540092289077655388035502615549165660292393648893700425815305457008951412093330481220698537099872708043104974474708428573215958044811251076468215843934850510591396341326100870736522142630346208046723436516870610709505214718650470576003652388985045537745115226483536006872513630157271688490841127493052127654816818195604651730439994755400639386150075699827537430400710416895633229221223874491811637262998645742576948352713284191426819216358942345615658187689436989895844580768683498010473804901186335975462851154257591958811450206020668228203331401163835332584848026827362278245821590095757532286889938417844473708226080596488497406904547199082121264309499100312494784235551846240759508819328391423006205364870693639212800551821999079900891618770548100365645839641957734679014025226759025864746198158318975865711815661473238523967037002577089730278896729329934876870120425580686752418891520271140309055672496751577824088372600425320147752057956252669752513213087661983820531772972359871702990492361787628893504639509005767608774853786701188132022155462437517281952239666633692238338039247288545889445598798302548834317558273972327212710060303668621778561403804058650182557343406400243436027770552219116786652839753960193677369156655062412874164155849395829705825941562120051969438928006206846801598800410115733044478573234624905937565291745948958260349370909270938159331558123919204497324369408553383395009932977366783923003214039683850551335501546684866022846482984574010656948149275648884021847510596291079915312581327860540432805233074002184667709116140215290014742846355212396786732569470481160677402768777494117303807792091750417521443808580940504189548091582231526296048678353665416052138087902772699787751027765502080159580183110503854298567072258695245339570962817128675591842398324042978628051008744342074505621830486187240396001348822131334008617764936973629314996170839268826034616891798738703836206610358686042813029970698720040572967535216265581672638232266448267885331102480851227489480555077518665708589350935019745479273454710700502802784887403666480409634931920340799567757287566399035784396707709578767015844584148670686304328254536773327537393881157443200311515060160885363481099933592896997871249163990922080378017531148521014434587603162427999370363501243317485863179022313231247021060508828722710666536701942439242082350376609144196381948211055059116261605305659226178387603178148586383797432564240570469937458384556652389268678806734625567027870483075519743198524996459024877747198841337752520349336754277745068778149697639401032872964807588248599462149165197647946242050254730597423326902609193273666994717343282082341819712870329389705779847800123174278517835910555252104937502156052224678113717025040198299084867083271147318913315170138338600518973173203815233788091951086539417443262457780469736379911637116629978099069667082061733029989497914999865530969237991317165814242534356491964643429760573868530168378067819987692404973997875550387459122676494805702917752475894498138413666939520230340356052979103982813945296700794279656684503034950893853849586133566016008382362982086993566223838701387171544931511539743091747722328786562348076045830373422595715500669613647445822301968153366265980501193170877910096269705078883483860629241934838890951441266767157410528194213430922724776563733675182562494461902125258329431692942759822249889169834932900525446789693039810042531701989546364034554696988412408231728856908612229615775175159294146627543045673549601815278688679313041337183733484140101990419535596693885499283552487420179635124321322577025288420633202572012688483313784750373206629204253599579181585876148341806551792860794284682837963967083311338623833667412728796657392344035114349120489096039528503507322404187786409834336353101513835012750054525943323715148458740596490086366597336743155594374069182565935209545427144270045830374695412205575099699983997412719950552699023346892721223429919314329587288327787290762324043909937421633280807841796802095080088925789047995866802676202634347724516480827194612165149103242123218820218303009477913551573844454120031885735736157762667102497520111268566405117799759491861626368657925844457241087271113750674664249714291519831523580057416356266007484258531174682477836173377478029648364904354264214902717559904781550395330193204862159618858477847206038822414192436007368949606068308540740313878778382442110375525165320182173094772443767837414662532779376059280704084935809581416042258013839071369123439657880061255064204602162866757462383767204182725969805123116724869603242573899867461764482945531826911752068765210701227357572229313070097553861749519949978629133516977407325155472682877537640499598138912565658075981057359205981494169659959323680710796382277420923684344594583140682676515715000341955029876571498739464688994810341769862131365475066762171718338887495607065648843048953938358905330157519493037815090641815756216532745447467487809607282730582453529536163928829053925560291128611166800224455795671249095699741305244298275168000755064605509107531341886700798444669472518594816493662697648383472506575361234386449968672653001617616988389780806250122200385170006452322071436057224555499335425193907804156839039574628675379693115156613977324788210344432591621210944966884763703267549931082226658366504752960555978383133034201616235668394457433676715780810640622255392482480966082212689137195497564863685165154493244510201475175327836892876508718395034786298732224172913537514635513386480169936838705515021854333962157734819319025130587432475318096671901227231591965820186000659534852348762714345274609200829013407834410707221866181783419699777383591738905094092244754608863050215558132149515364391349464170377565945628772225855606296212983709309176029121675003996751482361559236537985793602094971301501306685891061598153012269344621341938741827982034772618352105643363942039887236636584149832857922787969402765674766970493978963187851557131144084842840621911118873607814528824999942798110060959117480430988285145393568233125187879214340494209727542765061736163618761889626314567364506664625682619698453032589408425987246535826807479629068188078986363032794552774211805960279353457353266176885321110644891942996492525340527744396809556188162084206412448390120292853644669744796206184485677117954591151157421991025690734098165882789513076462993714892483025156811360292619854582501278523437394361130435613962373484993210765853801830020516242662357669639234243328280196257271901619155074353272446395429144697341950713665103110428889254327371894780422253454679124482864249132120580315731528477046429552370493651214515656112764750734938398301941862905301101180479282117321603728573341410912708027226796903078578049355008679639220373488457238786285228772689377969251909265802107010992618433035114274343999195290789827978729308036135461462355320044601099414018875004668890506327538080888343105843930094003274377338248944959247723731341444559722156731566124317197962298027597472997618566200598016259305811057003335765227953261143373360318475329944326680945947665266344061324840772546857680901424782360743639123552554703233432204122287803506367247917176927748225218508724370426430641279360376476622456690805830673982712511084237541064401012050700634302709535297242827999241835472178415472466485207642293512953089205531771947671668185922640818807148763357008889925294431463442815613786311320365994526026845449674869127312562968421584900371874911177072829356326914997083087548368464960619935877408680043306810006759005435870661996949236166603053298195932764948110711582119282758261303316299216166621926886052148707098295624080935432231189076152789493231136044957265727060221092020012016715107251483334482619743256783776380824633378964992966271818438941495303621497247477367433407473651084764057526002126582549349336894865049289045507587915470938991708855480874924420842838628288031400365478485775971595302720247066550962950446557162260994020235445605078565054398384331463702296590686755960903726086630294550694560875328748010618371670655360255412569628671366261514535634357850645387700920898386796692575573061245987881973579450450002831361800874678465455630259546303495848980811451132479679575875027103441985166956857419829750574211966524828099813798562226174320377466537204325420787420911922549580547687314243150117254473739609098897454981125818317639053451617639084461472607594831474787438989775022996516023105305978858453775896364376229628353629902729202001504881647264764554283811976948701510640046250313095005589944247645900884033711815936436146519946264622466542865277073824743067193617286823553570425136942434040470318487929639647046178808897283549968259826155309084538801897924456221269182267546829231128631145037573084154305485129982906311110365341098014642278392689007240898414956815741497370841904088017184524392183022674392459678388807914142027755183618358730722151942903712814665689759855632687771398654039009367596255780828699284516451053464359344067492296256585203563588793739253874172462508601771453998323201287277361677750673822477565356784052537599637773053324863839964957293179193164598968960613816974631479168449474840205136663747796271109155166890967135479935533319011449488773464585787072246416560596873904432771076169648672252975516040220384423696841095386995039009761287440690587610015415590000888040357628613384774310180741072694813655149494930007045968538613889340984871323690921669918847554719593062007488264522790167276713829646064546776901002104037877983217842892713255422114611733773256693321637830953194640710706267587042120902147846043828077864776102606204918175866629369611157549777916584869889566308997887496184142574894616825650716696554187950796383480818411678709026939981946450380867262065315284410230083991633240565960538358442716183499516032421351474593524453393237800975409712338755163544645070982489584394851286738563087901273509156712117176371186912313910339671147383919805614481312044455506625770529134776120137543228050718393850720950281891212070024726669945551470002796299993515535513693232315288692488863664889945165262732222437676960104258007772293592968572914847335202420477231144398381593225790289633266924713191378282157389176099779122850886772068143004284088491253534830310882953167379282025014322580627167520274524648742453662437835857507439491115152566179662756925178536967786426494802656751412861536872467695223295087329258246801188350280106222237194124538230109116421764444508279631908902950438643103751728337331709190353852675268630870013163797139207825614292637972003874042397583348045660631623212957627067951356818280104169334945091031758461188644687200116611592813070503989261117755843985492859465082497085926169302044400197060945834258951931514051053849971712062027782117315342378185368766984834159663263946513573414465296197374619590461368044982480475244253610026505215238820110191916768732589274547074039733879802656863006628600268395931893600756560149662711417539423886744818554738488882404266388561011457599922908989826306796528561064438552710340599335727641524274792985296495019633537865090128694074729955888093729918464787851672797197573624944532454287779823654556012642798503448125240645920867879208360168259036169272850607727453982854676899028048482316216361381426675105920410216754168777186474600969428550088197744701666889789578849560516034731952918028500228403071928819042615809412620415490440017646299392684123102195702444182334985133040103945024283545093476131136728084516150186453872652913272521881691281975495886480734909694606321248607437662291341101478292542923590068999662313854241680705453722757579337849666259649135599119017399769402437269240211138958411390948616340888979680894803233847924267336865560066389522747814793092930948417526437380533520546455978038334696810190371162473845460973830563250620683199487582913948240178767443622583615058582032818313175236304737516604655804846687249706391785660459201696158297658157574167607836273423064174109902127683941091506366327591207582973317563161061277646448520836205148737559059976575071759251707336790100057560177852687013292783148026893764378448986203609747347043017057456912858158509911253487133598849281826699635097867533283341739804359797361593563243346571471160037774602339536461529641553319655487912344179964183130813293332993916026926976885240442332611744445710892384161476946816709370689544972197891592592041934590064818937241781601200272970677320421564689161932252531527584816647703722924318048836286223814406079704945162390081997686278531087578770489480010685179147765446682748093289665167021865549222730012911238657557430857145929570470613529058922171507878915156304123084793919054845501817802996632237619556392256575444255894421236598730274210970613963470489167280374584490711364005125460081707895245724815116085116514761056678270862787461413345120968542502486303791343135126462507168965746241810523028093647311475662566796287022535102585334316556773598964488504628187873804110248260982106867672861954779213634711500855978370829085578899029620771168083773941957713086071724958609390987324683605775065823308140359014013174169468015891755634952811380053314928529382044809954419949365251935232070695927056252533914301228804718032392606428118910972920253518009980003680105308246770209736645225928457300672447513699468273153256510599807262199609833865220629015676172596538270436940556577626914911527898631161651258215656162302903807310603727016921239023055966057336840425067570983158589651038957608531315039017776198112595748782047648907030009437276969093276748721443954470609411140443211305469732907698406628853306059421177353070125981422784179592867027359754131485842160992510534907667495538242527723359529448232866621856831735875324955801706592915554826361733760163387138214378790207797619180875799723733719732060106001762450915477840668591272094600440891019212032348724726597865257661053897637991261763818390857966726762700822635003314378778246891642878229206643782721908803249157194838642491661395731094947781068459159835077809813626859894493690751431542780135546491446125360049585399522179190539246950096103137987762692294344270432073963217894618637072229403232255270939788403775306075856966043854802300243622210445250851248568561066016798855523046074445934818296159771228677790801800747724952502242912207065640878867243872688340154890003390037115092311230450415809693141195971657307847560221574417211992289922197496725784953686306899686056746703153211924153563093408623525886403151190425561249609930964094833136772277131377019518018056758658160480229037190670049486724703990429376182866911686123105710097973034022396263068824706380443146143630899145723234631277841199350587234776314278821848419195774950821671763122545779861968913408023755733584250246373469213750779366428559453329888676498276240939783656422222420527426025736888930835474878237796299491866844241906918272327927721208901677425207273918274239338671672635345216927278754321357146808504812090713231659730124689897423243091253040727007675793274555753732452404475556071617382736140827608880452021319051183672953628466431573688632323588072345796604914273307631056264960560322683271765635623415386954860491039961372859445560043372371688261755380128287223896838365427485441580234982094757836618154053672878035675639157320235985782552570307643217459716241527261039802631384877715821487362901688303156948238583453758605767956084234619784218277908411612167100250474093605133122166060397888655081463552252363267522522890214038234564306359606372816276760192636470425490899996212493547715798659309416604780046741063839538011313593747833716311539042926486877440697343866273835651923800438163940179871228301212394526009651841005010171258590287890574899476022071453707376493732055227150018456044204517387726029932629740509152443817126318730265243122298048218906154809147771767560335704032688033122109642688338768320902614824912294008379517042605516131952877018107872909105400230988963342087211978435966619686529620759528639685018526882085870272924940786608621388366363201077300569016506761673182059222687568290581358737330941373755907618403601281964388720867373926009394171987401864220491126000948731494107113638969248819789655359325379969980122272658274146718011724445689899931814671255742579359004176767322727158109978400497466327201804860956293576169312250394939989781882976779293892609277775947173332558376484000390458388678390666786030913872726379477955295773764433102951378158398547111932212994407882301174478298041051183691785001365751800838684984846653555539864896992178835281457421965434931888604037730011727691413559563746590880965572749021631798428894507319506675527027271957164954641826480073110535086933983781185477080661915355783729731528774604877628655780804485508121493001126222119442366137609912363237799714269301368737547894776706424797925456801374029787356927857227568005202541430180869568796606014846686358604097478158661344031538077636232937649884257480961568132452024493720733537283274316894123619299506057351074036177443730259760770811775399039674508025845606281462307230790508835648103503394876396645697315604430019057874655333408875002964698478309875662010585834902252162025828529314422906337473457820179260943948602556854131568707104474130715750059406843189133472079662239043614763406107545375148297047093856449146917240662851031736545032337542517476723319601428849835910160378851771034554716581869913991125229089825566709115042242189995773394886945968036737618476439878642702284356894128791350099169943303861784751533247438875438756057087407241555521997096823066587590269334301388423656377934228194683167631151197245690026939117107899383730258421415457167758844851080878216879389424620308353530690084221963972323717292624552303075636011054826899245042976134092337691799179382503936022639798460659255096283193796381991880793583474894248801381074658879347531943007884185985268691588384635968432600814976648283214579420703995555956158862543728526837969592988945085844290936773108370425092780580703686512027986852361103261770989148439987491563529334219686719753015067768365340728779367219311130380903126890222192537031517699328741668912612935598385224659164205691084496072994009640811683343932350764230116354058551758933323220883766679232013523951325159895408277049086655343224908849826472460252782908578737856624827741952665427925576312953671517651000956755334627091807758638359320350533719412356550592227012233609463722084382233792611996957670658076696618328902716654415989970097842621482826393653559943557224975787338743567112464179400781528904107889421305651443156482148492603700540399985657737659367528543834553045228010742508863052268252520503664199996846793081817086251719042299910341378528021091131693873173830691802898519106993740152576783761242002521444878104440181907920730629036319130773134039515414338010332995066009215016972186708279108415723419244513860645535454510487279272730324969469728692139089183047580144422930237106931366870882054978949920584224779891853023627389265398688202183316161336563666528215697188361409298124919026588160250539345587000840561508428082429829772293267594587394374490093660372389200816872465343792025798615248532518479704957147836037840486629769831180250464249284651425550345077276250245935641274580728163645528089821942667814179175750114268165844361751385067995362252779777092672620549495898676519740951021685303209952420430973584768528613059954670591313808545212694678082873581388492497388926225719758946776306162109260659570363841625660126412189486275226395870309094606490103827063397682684343308145543525812572286367200678470572614466478533573481023418521656659193696988142054772474226458358791965560655927995919391197006228179999546379950193371981226034565436584640658037507749425048808199336800283857144326579706099978608000723686523837706953036787563802911461147977870476955973485878578111050453095316536175478898407439323584098964582148791803293759403070292536102811839919397865751580490895684065435280687064687203914042460000924485045952683273303657762927548072390634716211368362904615772863710128222751864084974188230336341350557258773793590838660403551362553998718262649505398573091811839263611266576196137780203122410416251599008797023151038043157829504462235375604195704261176407434583821247868166461574270799836155145854296987084626379557097530824747113114128517908151241188169030957241174593785062701054399961951177173945817788257741501643900654938319045558887420367462577457590224203560356168960455227591083006735544288000148230350174895338635663857863731888745511344628616425237226022694185708181670931454519643583724060912152739917031987911856357543285188812919220978031413255026080056744387281194821600323450163785836580041970281047352250197123768697905262725680279746671065247767656419895744096449825434556020750443166085106933291708254541418906811052510324745950401768481496441439110325643801706110059484238173126336463603853725057163768552112035480460367551882071060851733255817279441520994986307150425249739221534626626097595797093427001267360797596284508159013936480388626986798337304801142400003222189406487344391404543878204192041322315579417631888885001091725590071351556362135384325135087334585981563942757971959382938169366899702968712255033948029791417967656151952064168375692473512288763023331108177585754506661860270281395846994112533909460448208567488607535140090313333168872315976453641696812807334297786826816485722120076441389216152285356548722958727857837238844991080700722976975091904769286936491243197982268131067162878412741188420193790554618154870849862216481722994711706997064559624275352181336491139833374113173681439035491336911728270323588515671565110006185778015260847121171900056962295604966605829132086185402023516097957741290786989951115455337402005103561246711050011472546669856848207735408868334454517015493260952076168337283201037406418134580667161662180018924393552230827525905350177150201078615749159427582325219770684175723662389189901679382933992273319443998892990674476365700847040756554242286032389489339604958000922619839737019946709462577344450407214145558881200564786572047439872327781521778128723010047914742297090361391396048742397994836776822311451304634313693283647013926131679006517228957433931696211588144714224378654376376280531585855299126117607200160543996370488538491690831125876204401922577312232748529404810965710390639774272453546681405043709973070968780762633437879220738811289615105001766068135531179840911105002839112718661468131200354308612469442979053230816126140869754008463568181551396996467029036311385206771443629898314867038769541356279367672329258156860800639387816347731243590620925694130401763431316488117927897421239090201472472032488613695943936655440735356236764094392279718185642798277271525839570090109849776300355065682902793194013334844538527740062498158789779132784187872109071220422468999084137930072355021945798298932717957667346868534492747625787613069198988143600206135389109561110234495446598432797971897314016051051013576235292598090541244640692306951580571285708052773268833923828110638411069733711624791645665746044228471645807980627825556013006145040883142220152300408427744615819754693505485378269152991607400854440944656624159873330358093430519925970057543707591886182151329112804917277917813720510757033620781767738050782336098788952122802126140428864386861896585476372177463748125822754452167764621003923833201989545949701756718105477612017111145557624285162022576602246767871950038202353383994385215889786500294487317167858991732838823627556304145257783274406094764344745886747353746623194105759955302669688849192129927992873829851742910282239635285912898961496205794898581682819892537208268779295822965813435782803796893119910183259438865315193359766314444052957653736562248223779696123610211225154665473853776695755078641090720876056813526105415423618111541114384032560335314895172149320113604872123354447600146687306841511813964756344810593836932011266377713991329272799146303273035482749105903713500581078630609266525910901574885740647766065658403215648454821934055942255666431859188463301581104360280414392499458121046224181182501078068239431787253454838438772869659090383110514086741286891032666936028112500334569442410846274541442118724868064830157192199280220111638409548440975129153635924987967337005904454377187321276948447186283281012815356979830321252460418945889565671463041906371539704129942559308174903191775283775947180710411906434128094125327399502100176827528118241095999956175879160123498942343205444921513189878945029021087415934534527654063630174411469541373207922743153281950636257623531742395548892043357938246617910127514504064544815055794216549041216966275277644886147041980276374927201801384405798210124382797366235518143460015214317451351620115595950294036540161490830748219969321714513435315314611703919259932422379921723042353938032543947485956442694320324804345194476692567434292182750240911663498745560711063383714457335045328474138650187465038403572078613240538794367566854909853211707096775335316348310872364320641008259983773730269940571116717685254307237156800541314767558403556635171761805786121084156811863657938514633712563607022007850334798817355104636065583801249335699009565026860605731848800738920368324841063663913173427391489466171253450906789280937337032149402973003023923948258214293442807669637940092369737862348775384867899622867151175697424569740519970528124147993377325780986658813892730256656227962945234434756290329266388151782843507513836922400071852702182418323762086591165447297905153952925556675623661432316386107582377512032329261897939946124045784916591794791938119986738356902431475772165543394598420894869963498946422014117018256631126291708230458430007173599045374213983413560905770647688264719099409282641911538666894322745280168824219916097241615916526546622866192491600833549203070134157838544376684702021705604717638238525503753507614601132114844400839121614489695455331583000651952388920061223797831945100145020404525473874611986272872192470910325746218748713292929312547569500159884425424450987118917764980160703370610139245809499369066564198268808060579709067135862787043661527233919655789466494707670629215619910367944396590476653981108406709317149837222003137015648627437862053433247028944137519787887404929356470681516629093835001337667394067908163738065297015285044980490788846534347367991347418132570218296068476536227696321426741783093863368924095628587954197453864759073591581384267240147095341980075718764163000021582659668091076533835586113594530506755314521728696049576461141105028036754969002182721419032118337524615721973488737530269543463302247180141003351387621201529781833388384973540211195742610592249452171166315209094706846268277279768062820913398626572422435199515041424435164178680869917649969005501795678813368947162384255479218679450995985722084742573459822548442810790098045109612595428524852218356091109719092982153768878104649708160367307046234548735633805095451121818252581106139364292322521120984935062914327140360966268045975120188006943705805326599637238532478436337846539396257564668552200392897909605180003926301883579786448018189409781996959309801208767035865329078044006386822124081470461782341832505718882948688183433280888143658380796354935034514544122864911156966836902317803458574432224512769473300950966183284415413402220291885622383910145159899090046643840738291900829301698756324053692521469836936310686053628114697285504700417474049603806594578042074145422361244056197001333679642616616006112212496411244955030298579166357730256142568235740506473568752079085971005938298433814321418577385444021488273121769128288579054607921511816814012922576061574048028221707836691340493886066796494791700061230116819096421578675647036438109246429902908153648066719042131126924271626457881967820601356792774482697012636308479766028274753784726201989879876595997883239943371562975423499686367865549630333782484312404994140205220383276454992448405400007793568693749493029413445681250861238651252513085045143078796371505657321688029108423652924101864752015761310698058944481509446221425035845158465582981877592424174547285290859246190240650896928670761808127476857754548696237495290912863635120248809228686194899348568733686357533151213030580025087774698064797704617848219853389986642251324198169114782702230930606545739901892642801221311829324152997856599550521083033470093995802377172161092787100438947108851833877986890430593150454918016463289661635359532194261221101271561224389218666418857390045732319154654951066738630602378900825128488631965065963058955468650498802707586418444144625867257942854594646315467722647376120861292515498452640516892573348743023169251152258754596849738815052919167125490800476722601413553657007968371076226846669876163987250902989112035169154193254783163316782323126563514193042252630577810083233276444985106471343626515636401501029167399225685390222752778231609019521170028586166428616113573565056857929183949116919442518898777072966825057327287489395721891939825226214602239470002104374344714311326156688014741741079735938373651830792466627514912295026679600024713417133056358854798188538870228035598473991664312233506382569531662370696493925940138649177380712327702701979409049331273883122614427687012683979416853701572001927282734529285976591163881345092363839157852268295460168816101525639506396181697950942939709713533976039667531809833984550675325301221372579537016069791756960436071138353167404925273241871054862494595396980057246953176558397681544122087588420939417784937954593850129169758836884155164774819634364707882848228522385584210711469891500901867464093275795422069992414663274461284097721334752413564833056814803507919861811635314436203812782933414649091648910430618594466213138726616166151876943402427049765202478576810211269573340729441792091362835555769651745250717962284279680479893930462563486538672709555241788294572049276069855288649366380748345229882787137630226610226977305918120164405255244246548355237563715621402683037919352708567913403736415875092141286403917508059271553139621077476591685254468247244146873922456492461803678771439924245728484288651300236923362660995472321156828867578302331566539818366439354814778269159374327483547021446954902568024038157652937332571338200301600990248298188966461877886155545546234661378045318453149726423334409294115809952956101607431594166334814527747335995075941896742665397441818057836003000410270235401524366139503658717223481318864072448337645034231774723788965355932693130816688281528422667871327557682823985743739701043697242708619984199087280069725293030360496122402290725760977296669584430963442541535317179509864897549178297686342529510819511674001651658320770054001746588444131695774981790759963437827830635028795559591548150362047386512598513642704169585927250305582104509245755875543106847561729985461863044811989335691782692008208058680361716411529310573490077325715138854116594059930059545111007992520083021774861715147329473846801932552065357338079311209244736742635246338780758773466873817744207952012271853309902322668511925921440999454054604446179233540263982244249724523060521266419640330394184414869966986864858331790044022568188434597062295207065751989246855492618562466910005690540973996258251990707878615573969205361093605469105498186261445349393339426685549375102966977153372825136292452457907077928678713257719982894731154473968955445200318788131236542192774617776017237675391479574802492142827759672558218315870018046940939545274253871665989654828762703203020905946597026784580368501386590474106627360187041236446946218507849338103485798963581253271677111200715061460081990314500463122261281375416282473109615697457395878933694708496426736589641216071450456024059754583623401566013421511699965316799732518409321622777860597648270347209452233209746667847871293066038559365742847868957790995987058339765803525578481349432544814725799006823333943300109143823191111886226335538897368384410071430647510744047688844163110186541826028361445529601793028069420473907065760838884066410203302258185535133605087606515917449494225357852155002693578438349749021100995782194554595007846323587304366913946798795422588317483533025224177708978956762105047852422924112984240930832645285041159718261872624768645137627014961841388701741284496537703324922699095758147004887028147735394932427538046947622536262311026031549667091175987105645008210752925894636032821338314947626011679242949773130254607340800564507560370201141773350467736813369973853936322824961068780470053947206334881420388027994470263658996580263793556420302312373304828463010495168383178459961989654973805642117810381445387716367975839862139625588667841042696690450534240123673731272536130288435646468348549243809989453858858704035986445179745832908189304110223649891923186170337264615615926478314468085976637071539022418209035423315597089931827717144414874197971302623939858883036714723089691330154947186070124711960227191314958217453477577029674640941298925645715965329092306519443178615860028124142085687196150778631697730216699887703581592965511797352736777541603031514199009674260446762578957449459134077291876726983742910105062190025862400800776750321478907519895803702467515267944321253373647245923488859032092078575452529221600047534778847808577596622651781956808249126182914848218814015965565749317921060126697739368109454635592991513295574310831781723102111549616186324820404059614379354785787179849876945521404172134463937667172100040094470664133401998072286949015279561289580009105823575639979262379298435572610073003617401567183624628657422484890115999197561322973475138783964619591547918959162421746523204974851341912937913940700717855095297482224831369974202802273594031519684291584641168168368046173600820902686479495488191374432511513758632045185925126778549351714743154736819555433625597624369630456743337112465902325967228764844576884849951962491986078662691425637167252220342168386749900052820512799684069764702313949657016108859795745471908966523026885101915277564367543728465471060942190495820079033841526713105936919226070287432369028514705860034543826945268294682597089375271642237120670261676930398246299127371374958622139531433397979105905030660578565933469538829524518001949165300537054357412328431581797525227945641058872957032318925464924201539727863155859999957272960322109057070124353827104532618410650089298419877819046162939883014606678858580348989420212896314337956369389526176425507589885767428322122607461276607441220802430812870268314117816570025805632755890767007663784663810185918814572678436901975453752096059835146016215691114339985882592931134969042726897616168695674252371539442909303338698795849478472180414419483154653810727143306060600053692311065967359211869305156724118958825200817304981017983020602084179150554690868368572255647800416565650663603125809554253797589797069216114138840626867583988680185693741541351510449528468718663511842235768648994892739896801479144651933625643306837625283409447111132702375231844012026551735845035157123018368513445061536486343592834251960483338626330719641750662196705038667204541320588961199721500357640584330704429807276806760335657942886464773189568920679019042859857710016507451368585213175803071752407974920558144455726448641485145144959339663127512849530595997474774567131432028032845092374891741553239506230432298768835585874501729563992155009118579983892160950152286533437176597406572165520103906093700632031763260477176305708233631889938937953808099947887009901211030586550768340489432886590847345860535750482031951956609168339499478365546937542481072075760872470463520007883657094980813309699638641471437489927709553074388175554829217859932388648335189481999977512142860068618644600177621831570698776493454205757249478794421381732123174187115040639615608561973841379901671158034154745386697194811055137102324651606206738706799348380053531184101493193256428836619329966025383965582789926766609260830890934682306130348015731977606162528213476667792387961057842136977258115536963776686513933301557539624561903912044528752103479352660808708719829039163456939339802306834086398194669801056112863586141226825511178228212665344843090554800319714424728499261210211851647966061403263575135514080969844573204692050806150603215987903524048900515178866348075499623683856047782446826196213462385424562943719735281192018771190927559735271634941172160675393560131989294737618795210694364231594304671519848798979423848428268676511337469249810990640464423569082901119579135395724899306967287171903066791067091262059727314891341905759410130033198771059990424968246991352856517731795891034069026151924908925231608049751127924705917965871918452646720619545619099265256384848665684696993469047923021051378299798017215114029400656274612600393021160629058514123723955642050544072365267475679919203166916589477190301159245564284219150246982349542016907611345845743220817483894983365955778004796826831662067642822802753914358670782084199723234763750190687003847395150053524094590597254874891782469918854084314030589945777135952091291967297639390847372907409938145397254336226804109306653050150506712546082725361981788137691270229846614968076674436399413887405624470185869385362760427362889661867697507024797979296889870560472293908229969943687227899817894205529491665844767946257603533980795693553879366446634961936355957725832506546275111751703023883137821940903530670787934335204941708129887897605971788949895686681529280812131794904582972981539693208560179633352647323251928092290315920661970348564772121633379530935170520661595145924543662141873014643713380898647645714855875082269275365083828380495429045923390678596998304816045384076790372006490036470182374673440083263432892538649810234530214113249550175274111985638470876077930649439368500723352601868635826130405521867668447300973941389968584878857457823351738460742433371312798403430140112201086165909849993633610420392873504352510507950747424677718893126617106090216881312095598550170228229720440081674312379949884302440033538283474279246794746832764879015988226884646374486890553941957814422450850052839704140988466989446637753672916373330769858636062337373139820198729505303082948742449496936320007424752708548988259650404921626590699562979156507067522681799803233869462801902211266000748869143018770130655913850691368185183963781398597570429384578599269705468751840775479402908430378365844694503411366665532618976061722847686774293123934623811241854688759454599486382868234657385731658946287016309728975715059253827868678163596656201855575897441072702235586501848138929882951465094139021952610432755692256898107871542566400088288192287158973970320181314238373801780717655744859189550029406000701657124962617014615418154882106464146954933864129826087774697199100086901621581770444734452146761989376490362036204213307750177114068973588992780044400821610080403622055414152436561342984493142491335571358167621990387925844917546402889638702281717615088485453096702728185428585011709008473495814346328367793630713328328226384435889988622803738694392474642534339548390153113514413861975104435989709497223612557742412703697603407181944418848788039926065073337430060096849990953726653189429562322280900281785218205445893372247587433050015422437751662307234381194898166627078210158845812616129572962375140703014438810098469933189682676153775677703811171827525426574010358365600867588134268902286520758915303131745009189833524864660836669482743358337854536570521673841517582197811819875835256051382917619985988283388642951189158962873075906339311277278734060537390418732117313134315155185396989540353371938428107022072484633785770943980395437733982518138068691505309691833072426912560610795629183516721681217855944664879654381745175895917999773921049691229016714017459269944763526235572713794312865119703679171793539393305323217228184699181576450081896818043968494650456775383276602930807308265112958811130332725040844432929805896806579384491773642436419130247862693714181470895274689939917477103423706587510160142060968049238812958876359675430653642401408571276418551697618526900570644893719993683464638448489998278062601114671983331395255309059344886752964007951547701047304274616111956557053169716243229769504843505620760797784963579374130315330090770157491024927268024574466352439508111242425931214918003165325024283312566199030192525575499007344802085607880418905343292787233121826890530584391767010212175200164852204159248309954818110712032936144130369215135694475212868812054739250134377644404411487286309753280381042554738851497572163659289859861168356055773192794826494721069823561107690278045134177223333407500821210613262588457731257801604919404663597849253747452788409567860517294545325577458352620541749090358377267689576097879864487218608584899316416370668332574767665201697764568380387473100811121368903451576753079804811765853247948096383659185901152278047159199810411870336031881279316480961739909949250330768959177977156882866434683448960217168014226325450194259609487850939218215804046548681320663087082884197172045102644049651082798511925437305098849197156021718369316074207025483386365851004028573243774941614381300953682973397834196613418185587089199244961082074843016740789333547438104874678130450485334953692717321009845399978604083468344869204626640354006522613358568057928406774065813093219742267137389506505667185934152821106371821764666899821555495591439405700764799089976989746300145328363355533178054033736665537157083289847249043779657954632000958171227877800394247803621080786435987723920482651295224056990776555124038536773268588834567688984800499730945023545165428520932170444047009033364439298192405365679020215736550684918605040500606554301627079272132217397188444129698300079454472913092949654026681950126502014341648229147058495586544497698492303982884737934972550674373283144314325706141765923963603173015326613251730100552144683110379835346962118721005817406157884662599668415743741406655004111480643304378280212726459099522167634336126750125408630126941883131743337956934455607002665463535885045318614128867457593472041073785713986924053882621346420233481728515170994391585136984592982352048725142389267373714910975608492342229186151077309737390246801283129953939364695659272008741235826142547481774712435988543711184415111692520147546337420917774709440050591941198350987930196577647323977537362854627202391201516078224111073995087090350970918724080248522518917440610138502549912745490562852905951789456299721994082993213278286801435203062401704430440925210347620005290744738252468681396201008695356539595429268068016526412804050809804130767935108756414491134588355650698565284668253992666776638513258030572454573025891741773311575743749410694138004416227951380198155359163112327816825695930331454164904336269940273819811065190394156770735989323240306213683208552519383772725840889803848520301111688676861787918423412309778215856429990969909297827059915695287475426164792709551234484519519080252320320052159156787276447038104580297908770382771390367003357233774790866652719472774045994268359923686640621674249031084128469867274855728427217152671652915894931001639936451729394572253942574064848441940973199271583533192441572182458785405782911494201291392111745579399919543917900828696406845403963894817365746598671007571834437506798013297414806904224702990114705340643663506163335808508275151177831634733706116689517166156849955151673733217169744509443401501207397722463213347255939932746366818243943736164742221507404515505132965295625226406796315379929928418254322089792521078354212782812215860099878744185640462130767615137139368844396775467759012239381872547030613227547497197648325770486291535168648013307668831656281948533255099456453405549504610605680186153789835888625997212641089531475215964575387123295800487232628113662336060994620372930833614236963824026765558729081693642599626429088735370739896973681885295887409192165936206361669676921352635954079313243116856911488544831344083568175467053015394725295991532248953531396236277891287588358288911394867736828482682712620551840433041793887154060392701125497036109695328306234033469339739217088770218669770178890656661040486257265121806597042958368001112243498631797902338383882302447881797323213734742736042743970107463766929442589265516076411375087860876594261495762585229245502519378466158584279791347416933295124888662224488848995619608242030623060602406486240906616282231469273742393136468667738462554507101313645940715495836276498115132590532924794571776041699153905584645386797421679262988448132176164960094719255449835256443532152388277034453692397479010338613568348613114829821410680663174073351702799914180571223170008102457458293962635679071751386891216587281638114317573725499096442034161436840755713737750673348567884923665607543186191662524479355556197015394571974973901672583476042496205278828203595288019117236452369035152847402710340577806217636426535106850316071817806875093998719638475873300211147907374848290463194029832178481807799294900332543705265986917907125508965903170074041357098422949007843046050127952762192293952795122409767823091834428499914080248384081032903746307480928831482053201314796568142719641657963828709971098617876175395619154639865076283085692123956592038647048584179742855278668952760753615848558484017741915547168173280788455313627886075341444019283357277807482637394658049367657279126601461682286841261383460790686069577713037560941364861003847845984089874576226727412860755578006150355070763100375554309530091907844597027027846733937932454365893811133123559893807063281802745780877596872008033298925201441378038721008810073980998310542888747801691065928852526044822395892353046437578508920456645134890863132162877881919573561640866258333156161590395140458674768428896372957137593486055737046180941007700649309889206459629899513141363157181847827060541469965238099503748658117068204594047365842484123919808833167310271199118747992515418683805725832158034835541592840431470906185234209269302692092380315282955347853184791867622268876233194615067523349271434222727921681876384157741950772463595676659831195991572207160516349098906926269728749836781178715454108146697797397491694764040667762572400055810735367549939918713431999802417382335410670981088104607808704044486669395702954333899024046315087375786753546166832661407149112261255371366503953480906333902251679804239314047726698247074268707544672606124093724504877726043009529253608119892921256658742529347597592621806068587570174886435384487364087497232857365652465475740504505496778484349272765444944061705872737587583316517654019669955226920067441291817012802840788684307349300729595051093215690211308734130974041024335928753958587795288915727921167998641136907432543547229170245626340165222170240670127905858077262863294537612878703405674130449984508100008584397329429800393502788251515963266248943849496110013983067813979050635344886147027155993843222668681246530607977083710689946426310156548084041986383809691210204212395688077837438635381553031068129429763310176614714258683520635648618996693722501444394786972009312287489058757297720170683373907342997851676227384057579236281819772809234851943291387792778453333872974911461402693839689752945796953572438652346674689518282284119061936413022068870797149633948584472166028828526710667478287553345649362442522094041280220634246265989259345403357086029150841351051391127678262399596441054468849287325576744965737208030325706072578378120070058909645234207950532244508914051478860643882613827405629074934264764626832996182500436336729716047406255193604522572624064097934526343857187858944774308825451962463515490109730346565750726170633178048074030265057962292905732547404401933362922896561816137852218611447289571441934959120444924040372588988278834882175996491005818963829763714853465661941610075411661305434594437619101744624779336502141088587820198353441626781483200192517007023853642806796102314115220726141907328071317198440330797592495120789255807179732715954671130994927263976643480902171685274310819327198697132880295211034150774175919025475294885410158803374278548130858360890947115605238590122581227588584565886138503235139409093787533944371308710904677138948756599912926973049273143584366987947645670742397877852889442319069934291410785839254366411091736320233347404014887665746480276177877646946923244656880948972536681966107252005763192756554764469201551941515441007680165275630211361615326586812761026033738858538570002160603099478705759107613799337142890802641516389512362455040592793422285765167370301480376926671828330353480722268303155065595614000243723925139109970586456165510523329282702022284825519456050014686269977616076353930351152299601024170600815612768460563847735371259276827305338264279408822848969022142920075425249302660259275329704619004058120494188815722811219434129248983029334085238769065023584272225034359563010071117744001917306699610506544723312897313502798987889120543222231780717758058875485702756071943892916418812108801638513356994654710840378047190824111896551594715968624278879411275946460263600701063347991796672857657918387770756374429716265751359722100851599182026965602584242159415391765445704638907594282460707353473941619835311167701589265688887472531831461986488102948595166883132980311152864961266201070808395471451771918963536266579830369636570726199577342741445430123659443448268397924948194694587471894742421388810465703530314086590032374905781902499257858276092318565471537274243691854728154441145137534633088061555066696562605481958486998435680946407376966317210897832701390739535988345898488811558298095443200643816841128043572524652170064306036084913252295783741663928888242504569813773492221694827606798212224274967851490723028348010685925866886845867001503855932181357800853524165217368645916006302582099960663545310627008882415494956421162461881566082123479977474902256941084125858702050860306640379800386650811750237771094044590891520098785823213173913953264767188152550980897072345614904843788123930262578878410944184196930416260892162168423984594162937786197855039478439819397927397006949471500009524482001546672021742228593665104439474870227099375797816094706499625789974823372053453811667762994949868727612163306463305087904095402165587226178320107280448718042466936342534447783305188284952214146786821831478713997581589503879710188991949430934829551329908134689651510891582968986045492485027264240828084745141520410847506716042206240858167832332098866818977613817565410369531095829219337227548452397700529002022787980355605157182876706559967125777712600384181079561743191002477431330401933119412691181485620728850843248466199293348507671307964619536288659125876507225054559731939870940563159886945784517676405897441802443037402652924180395819248422182042891281651795647575502556168151029179827156073797705268124044757945565311936087237614541680725560571536534020000735373116005138421594599645230732359981077400327517897770409510765727682243675544645277781448743304506866130766570355956935292085949752272083487561583793406761816438011549726546177772854977604256199123336189771759614548341993259877961106256387274288292233693426177429913612744596192470951616913885937845927100467653098050002179856356110561334522464214019753614269219626132387385044302862006766114838512822703041305230475764502221234542899060161467960086792871028793102282570440479257504499378075994252784217133493718842647305402366148184945599907078546335944633249585521821752982251086791137428832596340596768016280414051570759875090187177456140124676166108777693910621721400054421602078311734169741731528104162265401672592255803966100609342278785682645549088964788536012039151253563397387175073900285599019924339993059668416935585984205111178859101604647419841337694416906406232911839506875961293021134481681185512323440328161550863908561222886757128274235277121254921374100546587530645399371979642468452713139316827420793318579074265142983616295287569569775678643479917371597289672599480591470267766360760975490399301997964602635135625263954323370236062460489780443603411902922039643173821126352679409598819793495872883203048324058380912565325735898877224153126812064173775479886890479629456662063663561836268820558368538828675271110020179609871864740689394645447664187907418920034277048298276163271989375998927477145872766063802778953599049263841908145247900786030568882386635916167704699453872516521067513457720329785359709498124039596121670726591408004792764054114825553000564959917284816285038534041029800904107722435402833212501204008333103542391075760196363468441328848321368744358460064884073981978228468309941527074837088242771587751517310893827665275026634186502402030213148161132560367638872380996677387932116276716404957261133507010487316309690116355842129208976884109446758036776495240794729830481447103709740157164038423046186384972402500611796244772496756903519190026609635580834949422142853172060266573559576935760306269673795394782576035100517737798674589638481678550867140410949016901414839536212541812536887002674313415336827057345588293543127590550582736320822216765541392905699359384959440434455843922207491102595200151737452777923988229874026903271870108105023821774514731778903822187919096296843392376529960425895108548526993108845914122642858234206823271797534320764546061979866842793886026427885616699359990560563397422197294097537780113903664997080888927349541239587214367000286750664453603488737345211711594893352585974380533549704579548960512377428179984659789184020401524250001315841240881372497135838833810969646799842197730735596227915694413301210594470733064571335739806755930103110365285089144855036550320998007908519303997035663949813564645161451636609081908720303535186415326445138979111496695880347147329326147957098048030335556878808909979356301823480196689693725937945641175467982909751007779918863794450145986861564642810552232659617490537774687249600374446272985037908656597041682745619345739544910048250379467025544473579039383368995683542882301496235542450719076218245729123879348109123502071770735212824431157323056022912992605818384239612813187144193236701487491384272391070880606952212527984799843598012797845663559095375851437480273922771240402778193384653969834891283383813468449677885649234032868827683911536079691943453077859906888418346433689000884794945435971552507922865089150901228514127687510101289232374421731266457262626987672617835445835340784894320977575839513674232273622457577679110818932916170668057989540972503045353801669014161875574651267656073575183395981414932912023286199104946952177982301514600723340115734518790857813944738854238201113261922398337786345252062560011432186720868698757899331540835880000555047356046255006444500414910907323676153882870481922371969811521449972595891812848890345250792201874566078935887393746552116019325749884117170211107764849794791189328459750288262934683728161610650190246057495242013955389227575335096510155001560557366235176567959589880531162648574180640251746790133889485397258481157366783892699034950284292736005326888517741327123227313476807638027671492395264662964533709667605957295958475337252039716394693291821023569464180275451448316587079177493742867090829703641551014115549204821718914242154920819307125109727216520170554253281556843847514354245465402636042151937770323636651318564289603228669701343058261280416659697048585450482475098543202332878122774845960177791852300565235200289035621348255200623826776289539506071973743335823453523716025553918918345975422743404311341372495047644107017081844971987033125755015179400413455973168883857548748987782014090280860513491684591823893007527982022375014831371674544918311915168938968907626457693940583764798286453259324305651918641449528106395465281840903666306751275761644030768906340453579735624791788081189409150836985621130942820615407973016027816355307626790987154758717379238659054208352316958913185677147132781980273325588394821708043436208237025332342948598619404571754437179855481106658649568740571657311435768106542758510278316470626764234551848647680327433049638544668184942780192892032280313069124447348619251914525551177027943571223344448600509106771410910378390463435890550924844331826709540318069936726986620981830307765693547154282068391721162661787067489977449214712990472896928075045543764418867600691937405697126827753739304898358785522232469896752962981343028749069002583197174689890291045632153466281566592566829790965535283299622545889328467148190239166414354823387979642048010034709561166019916636788312679484652239148745107869044451139876268742721075285761083732340493994835024081033879390594192080379002865924983601621393904598782423713134724195390511401425194777744040457389970008260461105678914283275869786190202472672555308210470375053103266337956177329328781620657027372355596950318500350273801921563071367347979012355008184881790151326569985416780008317493393753387777803867439027621335961267625867671730340782761759685464938468015565861302515833370185194561987251564889939017867811493010019635000125014269168620520579220010657515426538187811091946266782036792920641567927356962669043847363325807037123861021921904050489582719233639042207753418694612060032495441990490724335254415861506373330476267894118887324746651828036122147474528285715649248083726413600123646366620194095107753263913373348456805553106653068188046622540365646094306482143832049331205967529718506289714378128906584086937471719199620299610477760699898207792989664637955121817423359709089186403893334291421136858145149769324183720456067414587297559469126626541712745055382876762227565499230261974869240062589056573037652438611046807310122228730362494522135804131439323219254278260496274978217210031705398931931004235579530470591603830875951854328672913246031704147679948597470999767716476938932536923681733807913505514227797328914528433434587949813187948693432775953223352236535982587102551704714332701124051338586256713400019501737034592340924856323701456941731831495563722190289783742734069017410511425003875653052948443578596770531370588025176608822448070421144390236747335177478147072661543020850519560421872387025967872660131021092990898532756619065414378610456440615578822949724490981083962490579604500982000640076682584843888809349881661001471543463219461602936704590880671094878006758882288181584073568654556004975811959522981338405596921665324469948390220484850232535651993829869908772867278663242353915100723296912579410806536615565546871210682115717609280947235489287305603862177556633939027033835218315902024104613922690750047084181761257394458445813278475881836975310413210763259988975352519846932890449170804537122756820473270306978849394949461990954253887617660699245683895074952596718444643506407232233912108998411565542426889280717231241812811093075443734028085746941834965021841080390724738028071971735962524942241534395336819877211055719260694904831586363918545649333411999884925303069864842055088755118491041221150635276803827872825465422137569111075008486434451162258721828601498021606712124817918362632691164627479285095784985163921874270806479442485651713762190819937748266612362759654245314525313556448694298409698461135866997159078433362219319603100787891951538171533749240518092608086546336760832758617868050871664947032679512836878343842726093749557215921620769441529014465693207046391454330184566933151068285875760025994327593528752185091862126271123511930624243348360933000971927914277234990669446983546781354145363879508542356447296754837290720227547074946234532726405085112138740083747682073791752909949737047517931033504729589139888529985522817388237773697462529081227840793757947718265389121558798519043528385928570913106358694986685163522919363664844306025049790965528664085479134658079432861547616303428838796428470294010052157336211960966729184313308949067832708408119727936890921036305655360176792912604057362423254067065523443238708314979365839029339130798134230033022970312856855347765161486431113895212797996573641631101432022457064668743193639291608415081064646705972421432030402016326255333750374939841011850115849446012590246866816051079473303165105477651810339240975292023624792061598549321706358738372232748520822100430668753323381223381731353681288839912720585266634900267932704589686370925418249178355287595232826130412592940369055887523510513625204198123885051121910391563570450866578053074172249984297982673485859293797351874464995047791840632773180802807919833704687802203499599090981460375419919427406380096005863260434052727504628084314361381008745547134839671455491785669527741747195749359674539675689220261918061801941090103143738093003095242173122820062562213815661459108122259272827112830313602045150309479319561179799947437148510139139800595131221855555064211831254194525303973235065204735846775000957339854293965548633161080864602024216342143631467887870749268829392635911808577648583959002164366734703927835561528896767051679173734509380326470103458818188109058185854476117189842222553722226487904663146684853017257255721079522712749521100898119058943061909383292884983228671527712140201091599196107152906685074811270901993594031330821007750698735457835146097193539383343810976859380441640170015310755838793922287704183558221730255402147608178020029552757331720468685099363435591311151131374283381802443075367739227968033189195570097895007829619991095061180826062269405015140455764910602333338287359124422048270740132478585417214120144776712363041248198578564688792561116546355925431394283960248716595982220417934343334299767785152832828239558033895752517598018009471932878706337664843862388312525884833146679045486916375661466406831213058928149374884069978953285187611157612865926301601794919852141123242990197317255222005547660425007423690718375146183808474662042032104528327453677625803550105175757250465334327868692544209543268169629485760147266795874555006146242021346508796457737495380050610772325417568424785147060917015875087631848208116246140859856596925345575480596035678745749246763687168380469528208781675017999675558437848137762048938506195633170073799332857299227744594439783593244251206311821857082430073293578584005192036871015987900937007658423658107365048659737660924936739126115003911856090432072794862065875315393794139836106091967854835605443345272613599723912504574671445173150640456083192504171421728154488154806828824948521518134116797708073066482998193271418717711782390129077587535498397264130018539452034687822349659053557875099907963230760777551985791271353390152661533900761514371890881034263411468013740340531235410480178612983261509932335052239537688529433401615349354356085924675447598957793663208995986419289452852031569664625308473601553433216614924945949605851056236333619375740012163634600701245704527127289945612586180854489157030387791541441217509119962899069201862199151975241960466801050734605795841700246351128743214328327948418839862133168114497100232306030718524709733552636792121456433700640857038434321764277461419696264532973147804365848862163266746979627229900538271575678092630773148121981912452036807628883535445158360374558012580145870569125932001479614130436805279836460779589968012133699562665741795210337421664133327002335205232044682966527663306166651553137546381434181036167799897575831368697165188039458009421822282943173665195638219504933339337712878992605065845058339954671437442474933573660952280364944784952251769131761190118187243013449014005035913536524162269732418109047009432150363006648360056417864940008843308213040315953606089458212823531545484944337053525756440387260456729588626793744912876714590093670885657980053494445865396366925815636955238507945324915286336132095150008568894235921028454556596640723097134538927940142836829363908982995703665616114433480179887203066897756295388030756711535177168987504676554821302831389257115256895707585447800818643073119508946730135319099776680727173301632939305950564130886150035900745741651356494243980560150021894579521424493738213247085441008537417588956989558939789433783511189568122724665518821221531362379043995556966246104782621286683567650903345461894804595296740094701498811741757755904611877048834280229837780259649162379133491196089087527812186806340902154090581149502114104122927492970195715831839975631267690177322187984448889963154379109914686985818562002043921268718443643783372566202404322612074080047230267429694906752962494345772836306768901870060390683357102679596491373668464718865622328710233595281246105327807556923706259143927645059830826136364513551829422411951624773566245411582542586863715882210680120333487345641948503555786190591046120823704418719816674600110777092427640010767904863016068851098685560797732455667642170918371656678885661743117846411758462547956861894802956870456704663375071357594933589986864120843642772129370321497158232986816175465089817957717978913526905082496974366983143710785947459111426395329219928507662235747422449718492759965740869165559293883260682951625420408985921088666080831823901045849256937419651920633314104337778919810119612539442865171729549143213455711049822693699759416714108478814477684133784582336034730352099675133485533335856546187654871873125380824315687948393614142173819578521542290679848181966113766115280671395621905004305826230102367280524546558156043098403009502680903542408713425024343983983649866620375937922899412659392920232976497698652099295952717039606029355716919421194972259060809484474522355168951161117288375112776952108202891617773520973214577686004899312250840622044285669851703199334168553858000951737070981706338211625231372600227377662531409260964167569875676324917146300792662548121366697829377992880295793865819895117068302380758903535336838400643738790990765701830758668985446524385355079722000621562900942420323712978721471299474703229701960485608544662749966936899991276114378839706860910973187549398261838879831668433768018286357813327028613604681952976727621931311288681487306503849053822679024895406908944007348543858809184727204855059201651212409900084989402150296119517637606484211357492635123871230526209856069832641790602726908446677671488516298190876188591286424309042088618686048636224831810089956779662166832025538089055248339210037528053933549939239958891093485087936614108582284612180146045881542163450552342120463824652199768921817814373422214718744008535824977056795029643677771567047495690059402011924688269786651928582128349225284750642950838652866742186704394904505187122424510497577528773039889180936667449645657340874370262815956584318623540782524100405669237657383116496331729850198244950480459692724484895603108818328588313189859736629314603468029745557779622845928051557277826452205050469670504952775819225145247414088959730869061447001728683901634922740140317793923155042474000624989949886824723161992770299919829780835690905808274271630327052031544302867935262364931384344258854487355404516391887669539574599861014250101921266205782465447464099766689923603282675781183004273099794849341397516001528855794266650125532225326821182331220378046529642845182944567187061498618650413828915570298994575108703257248479099550586757625139055834355183674564641156158184642320269476010330990764339233682234457084278004040204667650709191452332511097490765567818558411175540553529653301250669836617799408486432112265912233580992267507737582320780511771919286558485284456934928042791793124047166521978179449692232175387828662776160434734119630224747366285986741101426258921236214729880162292781831222448335160555597658816545224910317120984433325474960422703595457617721841974066007411108188563509647435072145479099033468870182190171001373890517240746311722435326003056332667735973522756138396957072395958397021402230804482034074376281477522826649259923019100654939462526684820468127663070131266628453294690839067214713095225884774700345409054467741690352408899735454638188989321380106876486254882625963410615086062935547910516002238155782605615998724545277293370813351458547206499234446605233061049683028633890126166044895812272150399497990590588173733525655223770889177459309982413312041798281694812807491554055541036295148634634970822643876410780962045037098125387320406263095539279902408194358270195788689613779670433142994687641252959692332617597515659519333213415450887661574638406863532247214394341808008614883152865974510000193758267470591307596214912770387606691488417548593041602156898221621919890890781219177367246039306356449570911283689705017820788597678827862471822624277644377403768602029078846333897267303194535728707633539423668858142088720266533833469818950127070864084332894313102713777275845569581516691181646416514211038633575867928925106981352168492038968488066766496131885225644739255071412922770454160337667069931487312686892716843813640135727945969021891538859352544734079351483634495764928602268974118748181917060559193709254387931653055290720379966638720035956954757408666386136235252812978211881406836243796631378681101322245686702376805708288085059010309070166427101536393249137648762706053619829075749414697319973270401882629240893195404381575189818321466923921703041088940476542440096768283199686866600889463056132234756597389828881185283109799411337577091698552943100074219251108370212140586869750863517407551867845053174118325505337683805097279304474032874088235849141012368727434787670530361422119043672959691912027279640290641175384131609009028846866287044204079337834553363761720039360441830357798971121166969810157985001937789396546941376934009736910591622920342963997245678567328957231705982691940428430188025348086941993861973849441677520408549367025302311881137660671824714809690441467987497575220134421702800770759716964637594667360908490914604450580221250903839398728520754628678610589446705759409524404617106001042045049350228626528326109078889181534760956050988533769139501762834433459023294423766875673311486764743800283204464858098049219777547218012245068013314293359560039779550391534170916067138211567650188954753439275744930235836978834195012997126222804294580314781572476407304185198359119346495966485014719959646835968839618145079678045665383669113109650267350688856757769053436694802320638926737596777168178148721212607748334183984618760133497904344521060674330898229148827978098660727359548051636198703739199298349148193666056661890934979830766063058325359279152087078147587785552322564037516285857819678538719704397096262420562513729775349416521368039261442928556954177113893139593160484670901443703437095500061994939071391208955670919586061481163253719232114464003116001346743760267803195025611466356671581602901792154503365594945935785668466956125855966116398394814871221193697431960231708926437722118170157674919233342491382683028855481204170818848574127390337459807315017769260379924937573173162914994055922741445984698978939639125017107953814216666385968552457138640057670725309540846536898634912065871305678490594127911822760455893328940815463611516493295004320687981243226017975267630544673674370559238107049638510444348097979529296869950383303863164461543215510578658896255264495094462559311836302644154574814504134583895546656668572499058478776837892734458425159091475640097608161168179990534039367753954373705984706510565312529344461648736725972595919367917854464401009524101346236021165118168231896651569329977026158677218720870138531993070867493050363259062888911047868215432627801439484567972097995295943725898260687655778344977159096599379938939608286126670459369963379001454588482450126632004684300069232138356880173494691694335827380308113549760781766916155123341552532295795080345977641994884329622402648587116722348580164037201901896650723165859622521073670718759234645816850787652493929523362373768389780990484414581971139053229605619393613433315687537524137179339045471645259911796487434396386090922459026164806386862098440168912747311187184957871978015106350995673596959826680083210475998525460600289480950090588614490916978242203821273730859873600381212602624944615917697598545471278653637351000563314486892341840709448693828214554305180734613372348819827983407071938610898139485361522660570976360085881566528072511313665082401811339173700627905163564048431195251089560036217157156356986930961466954720583517919137322717764464855190246120996623071137793182482061807828261205283627085291887497709750494243321500277212250821638293330883635447186456294408395146164058746979642215399980881764079023011319892212326971362525383071982957008778651409515608148041586379559834711692910514147757334471876777307499437619677440725196103781960545676255018254304726257999286420222403408579483530330780550892472628210079833965962506348402092671612610455202095160646799189574407373089197564885460182103593472795418905286683567125189369648439042796944107311070201417147833757106129743533774482586411907500649241104733416075627499275509053331896225814727582309173393049661846007003478719214057160261274922469239256646271201450933431168162135456459007908549160317968290570496072542484521579897551408884160938503253445336848446079823050668905949678675375119862588624857672933369205114456548375838591240494381055434528878377852732789073464551643688240616920680537922282178135466041206556012266379369036221536434292001128293335346351732302514555644441563599746065541624778392451400002756421850962469937051910944789176938448012792452981722987584154204261036951975591476710532890976031359835660190508430064437743025957161964288983675743904129531870023029950381383714611726301091470459418228105119134256525543073071770018362666344929677590589488782299611509298570012107811557562817081386798920744952910224136253588165817549467835470631722619257020719078845324630260017473637589475708320371020214191998536057889645908737329266229621634053395160867427041390793289822350900587717775412605557589662347537137279476846489750532522450368656933872919164876118379350593097576716265354070452333532340229962262382613242479962616208176063287029969432222617480630390843028781776120760495794768147243468540279073540716070097314023547408394808609042208258226194465834939096524801383691083689238656893625699595210260797914037642640083062538639618376662859904472568985916249633923208241900043254834385211309941039693634437359744019216435347466174558937201411430178273149624834818305382699828039138174545689208615284790231840832631751671148725480392493042466487997504155496309439086078143959332345529692764871329909643189754483720419862280761370881001017659167623006811787101157978182842793624665743939124379891547728641051639013885122691493249326822861316746024968086525314671696256894221586956902106949070508002906132563698089911016809653100638363657623055586462085142433520344858432742501308286002342349976327279385195155757119192255340305499270849518219615419509493704546230634644348387371760148181462098410032740635487344439435269364350472127107524612162832329989755266317552656081194030399273082429060784104862985063931759401997182748540460673406621292949033743027055377055566913760973287662107688384454587645760608064346623822569258547219902279099106208541137301221633308815472252770592943657524632293449764310068737287483970506751081869534834434798195571320083604764094119917118848158590926324321445807298433984607440203133275760841099810563899838331343845271976772436605162634475972546557459696275634700063059972142157309824604569018338336054271613818135948255549916586993340545543546686547230485196372625323618664830488693810746085912668931821542926482880938572514089715133825905786430801750210292459284956495750896764137613063537406051862127657317458315626617087059193646451043869605403733732613875211396360428785594857989293980237532609059089662923053334144011345519865363809612692160942029243863457670301501433609391198299578006015213528341978777573832115496340032135729850678008624869046401551969450491513382733384597203331340136543765923189954723461852013545066002493926619731823480936233152617408359564549569024972483136698146649332412398627044729588290060227199991581095970369650913532835139946292989788030122225005341079452125709499802549896777872552676300409878549747915754411347244423975905125963505545419634045948238847054038621471357177583570680976300651908360325027268018978548412190686415243610567129528283575301961855370594983461068035217457390125617247438544357216012222174644422886126329106094167489233263077997970098173236828530213917393964704197476568641185208855246483223230816678963056031901421188028257234180502428262982453433973695704624313753678203196456233775692052086885722081519187532352940883687540038580092930772360695550335788145293893595202341297136081625511010482966037800470540331699273059024237183326595145945234690713832909834828029644170038315632967389882814716471188858396714456177440106784723791875486048726289990479881694264136704087718987649903417314873216487210694839717482665220580751923832035033511819300988220563960983852088642822712668937103847502997376193712200944065473252626269612415592442603450570304202765970796630879228834417191478339284957044878802577947157372079640314535092281788981209162668106707884428973570931234788729775592773260440298589238710150414242254720014622798773590905595851934509440271520531147446281053325800434150675384818041366180164621528110541280501877850169849188776800868546904483891701336911441269640870562920545374881546249970609997775791047962666281985292483183366598757051615115433114782641902521861737831742834392257143349647347502055111379481113175550483245178967261926611143314984183359822252281161633948955628172669354515309092211741658351172234088034340784508446193231427012412432953057950070999454115750422762848995273107545062946995538316315459707195669287394908741678184145521453490309177931233328072076342903920063839894485611126041557988007028077682575460931534221233384056814680108824177440764434541222301645389725506319339320350441260232021907635585794998615216407305502944239631701222245077588428011835031680389416973496362127186266360006182368641433028133576932169868229210996030416089697301731978170514277510871688164249464280629169314428841530430545912715258360402077487771063748477986626604867290615168163638258397145006304968812415607247323646484357589827966616663443772944661960787346564423862935475883475858550380335570514748900233231635308371328744657124512874447515093380852071530532830308868934713620256197438184415666905849431446887252311861316251117365552786174611926028189950557967968769247700607762910875832934803579323747118725852276444338070859493001739531088319040128534269223076818566840594162900112373593456771872674421326724150142276390701576499961356135103518933227991601083998170662311235032979574559244828479519173259957703279707549716703322842774681677244779136822550787704914116703202702823135266144579661809675646256598999416676413472844864545770011098900994301580838177696920977340710251370821083355205959103922787647841163794827804288975674407474740999487675966870693859421981561634129949752954761767554915747271284280169037885273477347303416469227010606915396594392884860805749560281487213407893726766928212051811105967818144122913733514689039822386257167193231258598670289717649860291214168257521611098744121649886410618626615737954092214966211749797099082422775842555409019517739769865490906758092375007898453055801228765219199282851532751696665140581089333694834004550646659331331555216824177897329553423294077046259784611592293419376791015280944356291752757790908551507547921059286857157777179289239380603544640539084437638124063057517828241986119341763305229423695053666941650190706458274696779526671137338014365251211621455066230039299192092792279324365154169829398270294291968702305310514993939114664497693646911296496971946585201645012770687870565681136107055646128833077492909410113551412906957741266449773717556058508603118625889545793264837974740809011986446687508288224503913254719208851855164693068818396964660481590142155364413637576029148709185866406359636880728636040341626562283360029987545305915984226810767711139281930823677593637791705843874594272809907418175045019989784764281024713964189931612716993514005086683295653364336304528957645429711402487467313039565950479612470715547337140710661273078136155142327079864186983013327044756832252788392705229076324608689388809231708623359040570891249336457827054256345404326437727829572974946976177230893818981654085022347281385548708423258728025435791572174285353105719511893454466427465258673545491246638040152220778244680531824326442215747331819810602907469793815960858890551518973645730048220139169525013270571800734302324707361906575545346625938962648102314407650629643668361735863558979013557550305065735625227908806421754932288496256591119846760461927197486788046735569472915349946995828086382386059620727557528216030664833862843714931051926404971654891256247505998019997938691892768167751014261273735219424838724298872089443528006466326348204968351856992393627883686651780478429504285779881205299143308427925787978183428437926589605909079363429116583918408619033767207776867198222235397066406838485866629622589501059778624539585840188360831666009382218783431394706046247142780337635861549502439381593234322457970891021908968747682408441548105315217838318512149734206484165627913953693935177910370657905275438528753535150522333857572729854081610876692420281644959729452824308904811280897574987499060619389546742627658593336363645279534695915687061495225320585301187833788398123380580408094405503600693978406996540305417393892198683395454806165828856233254513215789264515153053592336323421417093256606414230885169938412416582021548402024370304141092240033217003225695975845027655687920666095626207491141973225763620261350087424937851840690603102510241504889093989243690712058054532601001162133667844679091686625803578675999019493323484330461144234283450462056350242799743385756069098050047603071867918619043868171587298778393309243073126735095722634687239042669194595647725944529028369092627964519348935033294577935851223163605567645045578269133009924673957283865499465440967308140408396358127143645165316251599021065339251342450925408463964111082691444061697305590500431651960161923029026448518710001116391199439745806276572072494373513805798451725942040707541424605307629060272813779537062336157029979611697318104784233341082959000327607090836471548145706298478843168335984988675324390511524999935639473011673532101743617663457546351555980713877605449069317909315118397107942540072185919229902553147575258417042683401870369065906804053737553774908087760104673583209164206918309715314984922150514981306867861922620309003918690087167375308001778686252007714498037566520625328706453109210147561348343566547429487910457570046199925653398115153355760924135442948601525060247079841002440824943742914786631493720049826869726615388827047757629081223914563101898339036504325344739508047489568825865471043401683182021574517468088830992766058321125452288523000249685954124711849428849974330108626101403926752891128009495578273388376995284520265937836923490388751393008140827661255699935759046039256828233904838989022964940444940781300994560878889017876088002179186764309260978494385908203695804299062505991737333385981727493242383470326592179677996350693569960185394769516976530968508074657534864564422370392406339809745246904352388484489977190630518968853098997490376842454190451577512180758829532708451125598286436986029745246041539010061307490186491206743468191421308866968811504576756722091512509378741962233674907071753304155911182741835564166754971060104950087531481346658571091977279499685956000766928154352841535085088194516939644838033411617913049384293646495072704468457147726030184065034246199993845017054759977784428460744170233740889455069718445443957385845916400783869316922742589424865727126871679249274984577714759329823392939014077836102159875266108999487264218007757386504013051897707611038122273026629173056463251842806430850005134207361450221531053235177692231922665199503573782945450254670488378487085795819916514126721877706267951170600616503670754213659243447320214023150763222347833366974371233433217025029736077593486170873096388206143105389498157291765922203971863752504809379270633042860481316453042729910526525137203723427009912750847795925204220013739387178990518590045175413759111625890647883350548726529005598995910069934594329817912181200805127947893107773687970923816654006937728511807837290192250363567680190124153686422600310963001486341509399478457011254241132326122318666016239258773724484471842241314098350207174127874746465831740507592042787558245520932988273716907424952158288215086422232052837802185936051303008140670403177917130688110434746593291463149035699746422518266918709619061329094728352298433315711855066779110636613139072003225492334156520202528154945499357083209281307903179508326670357462010529503661969214180800213690877896170900874724604971529486985719324677369568182465672931106569542984037270770990995865318808637854948545110700203079851156902529817986579683684660172356967220274724298080812311861237394053645612413756071636255547253805660792998678289414657020123431637285947068368630296196704274444821328882979160852883865174121317925142779538604016102596697457421869262837396853825313098103118560784686122501593247952174141660602752521891847714000506613440450296618808177232376905224320728297928232685407734894387854159969274979525806077402381211363640680198605162592887815728018216193375771887491225976628163752594948937515036918389430617980208090268600035853753453016361115096164681543379244568237419418776952431763392674666567923569619134974358848757484329345824534549725234622575621481781342343229149006331660337558902496942589775389945397790018173949454108113470605096496681677378588605072656268870273859416072951633170816993146154131035782985407737965674026972734036396632538225030975992019043134288688208893822236887313949402419060894349438371417100877567078650656314053583316234449746026529433483535963578022965217479124544125263342088377320175230556416859445505202019195111825070185647490013729529087920136692115975355490138782282314715745509318181476677234124748079659818923725704031314662749046628197028137321721114017054145381225761075526335845405106770013141739088562768192920400368968604925501458947138635825278179039776189693546809909861916421696003435473219567833108682224926834347172728882744220729354478890198689010161245288661360134179406126871288323990276296915749058855777847885632950150299620309088413351974410773258361567642813883897290555228173635420575290310218630766009370757731345225166271373193302550332372872418332710987140946507322903670227870222014390456526242530771013616387428896449893396370919509942241532241032394136725754118437015634152044925114271540703000292810070830473586462833274963717552558597941457215007581043679075497243652444163829309980144011179411182678582866849442316726823686864339722474240163012762574379942094597941791260978965023605350883297339504673850818504909175991111409029530630050481728739113478067918497033292572850911580843586343726526057789912746198824794253266674588332659182731527046361300009048666144520265001034383720896385988951670351269021833628617952292426653029090727509725084431584077032908250740938002562312956069514907824976340851206720860170194924937884339361184200261312952102756815609420853632307937727986493486394229508314326401718249133948112945380871936470212567781958688342948298266853728624366180893194913485979451479370141034158021217055418864405100609304089217887862834514102913249793898596464495396608624341777562229422626375426402513316787108335039486283635192837019123115851415497460806074282832652535989396206065543286101841413500232116152549585831471788066092259328675726070174090017043265094059080214432255423401333394988483969146961373454730684605054963958855556306860387137466879990249826001815453586540595765024823265862822657328386637995344373433477211194577669753080388917651098129134617516991786554475647271494128933876941714759313295992444356988362935632784388489577994274487996947226969184157323343220578156744966836872814551973120709637201872790441735483104594471907009509820767111576595892729820442204930231761175390107187961983788626220557299647818749130346364851431533093279047794815100623559029044632931622606948950216250600671513878571821456571117502964290984549160816090820699808875838485332752866546298355695476071342154395753978412722003741357215717219512603968703099854592118567772137617474346695335359426655298796730916169850117709651150995854528957281609412348212814626249475846980129007235789034588374518308805090795156125586727705059129478929530494520717958256991635059022998288280474022772166083909731474494378241578834841815262537805636295053013710583415521790339570879847342268221253076846623461319337098258589545079351749206012064809362992945355046583914469587290533894397896657029144641735336184320836031347369861989643073622557700287591205941440223199998258202052074684226106109404887551581853389662418225023182309111847913892441797735472382011003488665077557814896657812874020319365149078748661543171231624998850616224976703964650041162396391107124763312460303847617959631952286085799892186502192267065313904542924765977322273868646293084815160489250581761511147798956099676080010966862946791915055627100613679598213108487956418315207283391429202012068349156528499999873264198672378504138118323289686309752603335478477059958798012776272898872291683874702145369563862232124535798171029540857563476477935277619782676594124778797381379281878667647578548768307702680214404206129723687599068791932091916837742293188075995462189963417336416821879960469327139894981257101371537731182047588564453245809225553506809166286646128536222958739271227122135235809984908883514325399425098085140296905657273298074936706103813469901376981743386930027630551250339249950463793826262521203898776234640720012554588408795138669032499837781092247749409958871013623669329817226333689037455134269865665571449503169827512658055870782464921544021182198668080945619535988740863778766304741603934095353426146383817310505247658856809791118082237736643149627161608334535655820216443121920430330463725579921591753593971165386071795663879226657130345153475675543087997467043699190050947296790752513393725492406658029606752565982569771134218231589622073721180240456492709108737134281404135943818435598987499176470668333048672809905304361045403304465766905183359207126622353110345139447296305148597381589466124443785223005709054271660891881361548975787321975143432808430715856611416366919219788922029755808761149246007093545996322555397918021505273418252268880470495740816781648868818728992022077461711620509684110470881277993842206004664016676259162098931863377151288805045833036806454999666523285804826434007359940546103785542906149545772574063871391632988029678029867324577034502119835525857398562298723578826909999010538059621739233667626287537180604925501912016302944727263478447091732806154101978658911081791486790081589434348404571246882657901646072078019547024529416661704264732366990882493154497242955095612797110084387847984178616362887087455296228430169554120205741561181949318725446641231286407261572293541292103480513360541428671809617584048555053136838153425144665966659991417144764406018939633785682090773973800769601637398462267987851333650016508514192312626079961929629555141351846355512199403575418261793137062684597319361828922789763398895573524571840395615987345782538421225917151608845344090558616300429424776467494527688174336921880008691952799846945673447008163250766597349381445518395230885384357026345182541767509961756311581266003514551985617293365900174540189212327196329236623176177639674229446465222198587233978927157877666800524266888910221162572804064997466861758454768634273955915899262232226462309105870326246514476217772955032194750490430653108330423658848633002059113853418439633459134814169121289209113774880754611679641176017486312883015368714485700845092955237130793414005769612330432774736784606224970360781650245224084631896196170264333252522160748643868244015951294947783651897876316767224141787616141855869003496260176817821431049555445726180382308766277844601330820985098773807090078318217914903434840839681542996499206631546029815736060199899482102355150691286269839076265626771022629615657468176958981926081579850335738063427389484993447194975247256450800105216547895731527899576795458925303837723970015958536573681880126095042507782831557955713949725346483195065118145420610532443349970454337536864471790537004446771081238534783400184269147179271572388839937605056456856290795775722069040925543424024907595299353983323534681334694292517441760244322319037038075108038569982301389861523712264332731068200283044219029790885864048367835184805735909273661751759931101140197254646460803142082590523967977358192388129254600903204419048710448566368938968971588499947228600008802243839581506573088605499221155325055029925650547797925755679071605635752520203981951180086245006621563672629430981133373729000783597799105785549442431863814218426807193604623679193946806657681551916949918125384240169307695420798526642741408005566642462381499445345660560444718084596893807696787401573862599813707178697664989722520982997649962441999622203197614704405699877985222199663997421782600593985210075608679460377998575112769364539022194171552390721487557003089673348394580690723163918832364295182383603353149307528150975388986788162859425977091376679577332767957103605847696670254135961932874981391110027038077928310098669361567440630182981054183050583464872965315235775715640848239396512274622904043964283504645028484662682725772030444371929952136413119083027448454105846583357505127884828916089249040707233345723296897479956928529193018361613873461663831043594633756539980206851639180683250969259267854097002217697591059633202752022261126685322144394488463337964896108730003637790060701376006621160459132486170433017015632056575407801947131951688865417151705290577559048857155079111008093378838141287910511929464857240134152167432411975579670921691380885352643369412137740141941776061020429869360632984661848545473165140009079188722428069402956027066912445139924964713592847931887421073271864198241391064126346405750240823167327779949527838070958654745340550551028261983305454025372141647248904330643612075464569929758962886976697093224281321608347623277592719912480465442209683242001420563410247887947476745137040343431432288060447284355123977160550282205875892130161603061758799636535675216395697263959431009313761588882415775577919044924505802472741948420409873833619149225234424465612665962546896720422527933247925838089180325765077403405900732589299924839823542802787720019764474743379378332285627013154559021505698488706152061811393612184562659183347850231987269531255165268113079169102403459060668258349799556906280677730793820087180106158341369090238124161355234993763247080786635819815897829637284476502554666589625689643895169797712167154658556915808261796773470254093400342281236170423518084958926969822322080366067245508292530320113042597130374715614749747452929026838213824581657086417414789110421365928523984760749663367943355260477829477408578506017124579976679821199839712182652780908032216175485002692873319209270599826102165710670358162761013633695222539499479805938332784310981349802952249829532721451884783682984441129472990951480195007429978553779631842066039776175770134987876658445617824958010366926979626972006714307875989727821418137431222724790320357322013301650602944929476212977803665822346184783852800012787650322593114673073045276183889578612190049975613499188706489953786424347653758830566080684259057488098357777072613442977891568344714718165090756113680880200939233232768806142625306321905998491641303908851659804860605204404440847660600976116580116194488441167697807911126038862788109758220886479388094536306991510606274240476009110651191746622560024554835362248203445541359209975006812383002154059958461673578235470987301108630500071193679632801389307389682131798094252985200895401742529773874695645548200499401589127183838449700578129981369287590200932422564558322533600091479327109813964505646445740223628772045026212491916706550740225420598238575595024193215459023476336575283482306654726037386863241094987848090185731014377323721794256635666257630906897501763349044484680452771518043077567092356402837959680540453027597623874258498365093774961038832900849998483531291578832939469183839450248393386363668941184482762845309824818790309985452260469971299855400607115744004658781567560068102035628384685867515440235858557496395510702940270018417527370757520761943792589512346222433816264605236110334431407976761545234627964344715231817051644506535806785835754402320020166672725775807301186990690938170159433475034326707050843333228759199052049036821199853511898116392874133598752865496731732999764212822193253418225357064296917642428064707215225425516014840521534889000331211436503712188909391008689747393605574405852675907925511437202953953022705267043359487696209069961076895067422177863934528941067906387634150425260164632615099610229148788564758932758158235845560855163637740227686170925719780721152132430997840425350227941572921375788609110860526969566201065309398252783240187518672096184894649490657534087077547369746591553090380820449968311856293794772186712878388025338855390923303120584641124221748486586538274956859639113412446788930745829474860407658716585223911296739089223145078308938697513330867385601687681537075305041953365849169451860669258735191516382203442974077887918316143805519838474344143882006846354706243366209092952038970367653255309183816791500196546456396860127734833939545552043152372710649042575196269960643781088661081933398521144457359868869165917785948630922234726660598122922331557816356841556712074454534017407377281649271296127654829977044742332389662103121446107212981157952845039083457239877775800598982180851684821581692212019585176731317717552841745151462887110437858193715603357345087937508997701540225076189888509210287291704758188903230976212135235468915687642320805321214843717687054335653354050099261589906954890487148592982758609690646255386877787857270037553495107214577882358290634367851822760528261948919216164510991507318070895272537521259564998656678141190646367763071539702019138558654682141313294804118997893025979302722956350396842525191043720545836406241538632390737998513924135299768506635053483029422422019290244232021339094276612054986001115492710866820303395659056711312735376347248002757588841099721658127066053385591269513855802538422084272679312490673252135002688839915186339540474573937048229248337883611980398910857673563021519967048290460029122757209883341837885565778315827069911490100025049261211996925314565097403661727844403828011967334029188254523263870689587019015052169136775539983964904835969621134292941035918175343602898259379597268444442557261220091224042302502029670084840232472799368305092911344012664069655644877203803077196533987347579010165402125719800191836941385533587725370645976554282225650905254010436814689979546369380068769797815620735948620955172435542455211103699557401808389459666543440471224735102808126107363850481349545812313453087030849572289833495100435880240415280403522764244287740802100136635079466956907834248442910978609681169102650530067384019605495264362200440507525568355899507194240384889412780662672820166513075517244593683475140941589605907959756699062926275317179805356841780170359515164619297019236764980739192826772038628388032418404949660912740867695611262225531624382437864065239207312449008731126171440906182426336160187763159134417665235583100298421066422982845942203205452134450552292993964625469082424988247327258226095897688204427073821047438820113144388926652930557176187966878709581599709852575738641055426771467715064976861145026644386558509264357885185672497526389058857241906678509096331265304101078049531729666500701035977026022085078366014980027762780047055049506857085584128847331090279751315596879398514345309036854451335541681509400014252427846204974786471449876274932372396149948163776108842587520274922066768813848539399670300464931992184499043262571331169672397987194169509080473437322744551850188234423184584424093153773172251688855068361788920662542261935077306197036835333873813254471370426820480230807101798358416756070693168328922601807232748131060786537250874536745186516395792421917980949146295886443428145379122491466165012283124291300806880305406509448569672314522543426615731241097169799520881682393657731135215350358841485140817178307327588445634654661121120733148758221584792477602139237018230565678679616708807710629523431763386839474707333288113015862667729109523940990629581519544614108967854999936037920076742159589502276827032665244902043636877490740167679717237241822113582820794599224654122440079048149739005837391053543590022702357280417418701216092794621897873870037363581647978623316080433302808781964971585708685156141310722823151678539461895463268510489765805923283305173867682914980914914745472450401107557299994742162002896763896031551677927510047212363649590613529214538444690097828384662258946316469917574722844344720210498469059824945183556242186474560848510105808719439351011626139918417996750037668631390548369374507818827583204557457301068376033980564125717808084741898663481482598956138613253033544519280999658820051683610048500687410757750589842522230471104205233205529527708416149283076019408205628815144917994690304562981563531504537274396523170264121560997992838922904915754731989553984783458116219876191305325921551936371116783644088641452049543972760277171716255336228690648996226244176530299302545052502550206191028313490350821546803406412371313617116481620813922790091797345498801665795637241202035821691609479515176070584487734093250984222582257000330395451360378044415174783854242313936612282437609889688341817008408814019103125432399588583832040428722170436413916692883724959568052444290514000103972287289258550977417757476943069894060065260301570058205605613052961109327378858015032961914241057999416122876113650218127684025256892576989977759214748543973346819389933997931550244446439053014077716630564872781842716238263578650360900453928472646026434920542424110872718455854724301322782371612426890659221060875982563224842455726330303149413875659061837150015276171681164612556144939894088411258005006495301268636093991217010459686975740699471281918630494878091919751048346220321620614972166317960813560665945860038961002611316327774507737931587415287268022019024406474298727621563915240110707312137715880007958723695920399246395189912788218868161141059797395901430932441276718526912305962548239097030389376511013081592243937786637614687847598583547245988069187534257175860787432415632094173097022833525277821911155846835339937619621772241102668885976048535664547907624845309922889372810605651809892947644543529160626276226695095561272426045331669537018083787384820608667491213312008163906027039316943400782559828647109983952423763572020693353336897616083828233993568338118914337429821869919366202690228798064454449874772162374701190958299440460232806179522048471176372252647495510806641334708551309973922988974055178944285736232390108070649644145206295724314491839144278354852019831056718485458302936447794916146615809061995006249485675282340920513587042640178301679055708016226594293302018541125448458312815595789907441233330278755737182276758934592448799298656209659055052049551572953607599077822094063285566191925196652003183648573726804071767604265054919474722617794730384703773347445274421486029841671849449598002218792215340912721435975755050411008127017392406891109791427948145197707231045197946754549994166396162408780327697006072829590446813595762500959158562019492778526957512970132259335519823682022369539471328726919358841638045383096556147792304608551091683564803161276328636581782183971335652263704324036905354525126370641580450665210226297936832184432554692589123166535922809600689964377269970025464432337957258270375088132359935919695516148091762111009951321390885826504082807661376421889741246996734108997191393356810156407381327350904159687927427697231387984947153807817736800818143260902829438712932813949202314537435095774531563866991656974773628089830719432236132710692901688329615782058908519560634594656600647922110655720808835145482129488163412140568595192863859937344061663474096661354053509892558307182478986886061814624415201009905361724751282034762060742470567621562057386307729784709847039923023640868207798139575701703786016666751401809995260603902222584802595120898284152907422476200789996031304100761993775351023981517724625018929170159000197074463721681748230335887433226782777186229261344775912409613115119147408123797128351179799303449628085828601270775396203468890575168259424927554086494286912248645930820554443395486922354322061139409276415535380582575198841269924786723458011487618439306052306483274305265525045412977581662227127735043075622714548667616410699760888196230003905131163032187685420542156402180942334460560360378976224512667795486870030455705618047837687254034118614884720291116893791349343417261490442769088723636669383681585057989490183674947698539896615094997972194739840754901218704478785169685498394475652653984369960690245026839084688820428322488321696104966489135819250219771244440944193390764480132863194027275891962122875087233937812327925650569477082657949781190625128509025384887008618258707120928200417287512358084525309102000948161266060468598237596794637580851482920591695131557934164952284193042645173746744926579110266186512427527787741975940851603277166861567218096973763511076108410607940591086121962387839849275156533502107887821100539298959358981661977761733722032010687091769381459253564673878318606033504563421540138624141791606961910211744793393616675146239833965609630280045469504172740417359542482176842648774413019665124744550222401017285827953549509413585287456563039651465084504306738563123252278633236569010530461856977261866835169111702252617070497415823917880212884144903382002312148928824220982527199553837035633906909966966656685734782070992210957910329086499355170817138606672164524475006135632011608736921416896047685234459875401885351185943313164295947895214214349722528487599180496762637586564958337614428065548629687972450351338830331180528605035815054642820176348032052003846880778153591490463650413353446822072510321050891987046328201702349948714579380786447843531281102924427719239610601347698158161673492404580989034772790434052076556195768441327749816445111584718690250257852406334780019330845577619118976882242468265835016082696134327021585662331442797323823940649798715376594936680758923743713412500521335675441657590073307716230594245443921945814590951887280252364444821539176625556073499998784419310389751218729276169824639258945623590578807365460023760475517487236875113870333699777822374566187798882786630201434438294794481936690774413448847107973028549452721134173767881328672622294071485647098939375822125428356757523454888905816693497852240857209233751879309250705354551095498114723344223999812782637707263382115202930104654169396189299578537574310220753127915143234373710781745697266882178150691467454888996885466327259608494833709659285050581942350028553658913743600125497285637337374153050627213113295560931325372336126449808919056957820346063237576703651216195043947370453527194802633655688578301529711810475441595731468310183699522706671207574653627649108717786471553687486608955803257926096825573855813446773991705629752238355809440275154212163804535423384442246915254354524190788434373036886508749630235473144169248323959793620043709779108139466426301120659240989144682240180819190391200947337824158808001176086684138628346738545718739220956393961658146011142226737659983805725252450450902171218765239538521213683709457691915921632001833877681070667298054983809119317997315524070525607019260068824084608304170303487815983665776067490739628375552303891058921251876539370175775191758433443080796873666149102614058910514842067909871936893021069945028759352272641725030263227661208502060530883742625655895653246798517243555439387659026217128827947142224320444773034637816273336915842303451487059313750740913989390302441882328207795075255039043418260985410501379169234507934707849376157988839609466672073428629067686731434502699050606305141716249933065486932935006607508933883801238410047995734885379247850133041788073574968878083464075541694542287116584179056686179942749786864586555982301601001809372680837026212546043983446857095723433496438919240181723391026563647210156727658775191498187574991948261252054521502943404725011696666572602000831735096989253136019898876672718540979415501873636491605609352424958489663270912559894467050907693136525624247333503499998216972350702643953784320442675735936657124802767139040133819933839817128099151502952207881137795439712510184622813361052011258167104767195017953432814259959451600816249038656475419738471926117846677533817042059700128743992694619821737389556061116963593359805542892902297804060056427654870965677215805202782102027379135337738337928696547746852034498387724978204830516283377767901245872201629901685952251843146343174695474982162013916117301854601124419922846779546618176367052510446115622585848459386641302339638841259806325444344085145055939618164992960956011235676083620712298004140460583996452658476077806686818020598429999255345801900337428327010006832469770843322025442548589536314479816512747307687644642847133365696248620708593492610808661767766206548332898251392948152213183148699530938574660795201497969208603595324825863523646977519022681642968907068212776333930902596103866405129829263453606010300674601199029189048432496529880101858719623086795832930158915354083145644525418285325459235472414099226224641097946785813438848863950856422539867857970911515585494543849653036570878659100071681002690924666141804424748255743023982316340362698238051512610770815431571600654443873484551473602820157236582690235672292890743715445160289812371760558813721861957993494435497393779964482378801960170748940082750305095394519139728649877513141214001702057231129995280079001266288300853919980355914525200681860771265556421021004027764102527695135510660167043805293709647889670681042038873201470396724633300022081064159821679338558192555242067323713552382763209118291533597169506893724528317180370685309646029769835471830845788772488043530184471629560251166168557488328057753313716179498220824218365472995490907473707789208263662032508197827182906436194745782385925361810953171347907468114437486347457758943788400338116817049724919310430596226198137883551447150683625501300038315689687949577678906441546400839899760616924437169756989284632895507901008892031265080148573142706720591083549771570093517508463533306373965714214871400264843887513991457007136981116553607760712622533550899339022590831234893665604859585285391423519614068819049606376692282568993460353860572379872529189779728081283171722326348822503921020406902932198988763787515755999731313020071611210670620523748147092063770300221813287854997957045217289306578264416982201527531638824036238944811108880240500530224711600945602541382857702612347058586158638174204842318303945186678692862375552846571232268366480844634902114502312429391328913355605014652142328843975050221176041602773601513771958215429756586123649359733796016253930955707374417812499129179511644173549792954348375314642722045758658811266799472091085873407913357017994198414888802486058603183729061498889233323657118367352603241904654351341238030119161947284356769853912194644815208887962850556989280390006855918114759406033343818770325635344206767127708266206133553744018081126999402589044900588018117442341425160584450692787247640222217804812908533895538057336612424944960496182490631603342071968355047095919801130233079727457352837576550681719540891297480636310332682162799532892610748309185453982668629493615000026624764774918488139400479351535363162474373739973480281288060711894492822318817258289902200452956252825270012859589359841109977510455527497505091580635326749919239909379807318274862570269200987335611876964648293775031168518919141729516411141496225237737004458062886628507928266939961363182854997777288560882374549087008454188243642861168844654254520655840259401280910710041817133832568244111471088564665409814862484322785986631902449761441748758982577839724453775746180466942964157952026326154595904260594129487445548207285718685693492847309263798005208691659357321578825351932230783929514260110360637952615952348917263503792998980423148071506381062253121775287111090784304201707225684108090281527275681110806639906665848891525356652711939706495643654897611965655519998522143105928221122698042175583783660535161977222026378182689527707237882412930412103190301609611190266215780815846162619082837127311135505569560203176894172197780205685787052322160441327785502434032316685421116328205399963815275344283316371502428191979763282748916953592228064228671427058898541213460398735372826780193043521488311381833925296850082360658679529601357852754366271554159040370664669910681807400896362754875514755061466605401322458992906808356407797419053948985887289587366862340055489458072560678366546469904747140635434711181535119835981607348613716914331935138357485537325296666672010815793805443571130918873922636308968907846487440561755180458109023686311466329331885620870398043702062409121214795372875611230021178847358369542924201290879629118126101329896501994792343358352266368986043776739702867308077269487621087591950529305584006442016578791799816618480858934005498721080285041719132045812382777560630848425416851989277559954675098393579522252859013258570458434495662707475825955833114049054746713374147110324806988183346573686013264567569842965248342381893662895986057791144428493696491899060392493513668259499454718174166063379283027522892210912350216160001252132444621499662552084054607201102660770111237440370388978663697447876294734958158447652313996749065086528138361914187800077904742374981467636263125670778235147222202104003961615367563863440008615121190683954991653455501449345724230581513044416598911902161205812229449184040723037306265731057353769170002293309964316438879848334682715810929610286820575124383142838005667052393397729174662720719434619878678754412817228392172837074971101053617598856079017269424485256948079457035070140166666537583435631763161152595312914952309700748234001451015506010943167681037127469472066465241475767429508142149969800896256635672014341469340648116692791616637848435953777593081753810448043589050230618826419162926281880804292831515931100111008117078452519956566728490413968768434503006482828630067838518525755342210772631095817247956833403113248619465633501303757159198165808854548168584485422322791017432605751154484382167110277786921488274137336257734159930244015090850391293499276779905091621916887350696156363078359638162183571080451315347048957743058797152378487470708986381586498912781726983958267816058970473481183785655193779027173224391399567370585013126995344048272221321111084802648874012028420100286988891163173286768631149216474842193308657978373487531171191213765620506549300226219803313080571176762041571346205812821808527327330217797939383754449101466512133037523760464564756449887701463502654922239600294220399815715727468110040163316301515349924560427344331856158912403905895451988649025268886975465960403885273074261254547833002693693335206488160409360502753746366811039171682014014191538137882052251490993297661630316614950813372725864450002010651326451541346009238268642894580608448312046976449127090519859103203736457963087627882795845959841549951903386345683751059078898576196176138320090440193924092904595278123506536277471069047476069559426002225462943675045674355745373603660166814892690581396044093807777432194126891377931928894271383445754881595049580583806194409969895102071028588667296351615550707778118393989702562642598284015131189211512632299852712602486233740799733183369918347482458036169297431694989901641098130900892508943729995997704457533480684477366210830210700117400547118874235618741234233942623220829470863570115942672130329424404781165143406587788931518240110018055293880912557532242010558899015823767906241378515622732826756126183479995049232695017405911010078408808637082343932767379549740343145018921796656321613044957177629368465565925708397281534991508845362662130348048034988185891294498255399309774732502167759870799603591778204653156238199062446517009655338123260242713847900254926793694488965251022422999442246032345131226433724779914312793789308168834064622355772820678116829155761583580179656626352743710716171306309429799303426684554434197041410855270611319888635853686872244223596599921228880771273936969945107696824973059387116393029296692299509453859637295714312639515147465147268994839753097338609058062180259987293124177197943393850790887492572497014935541370453640639028549614348517009156742542639147414476688816969624964732105478081770423910574604755199628879103600663486468538332563167411651095642514216292932604900269299675258495677948907834613289365940344991961195378563507670321027114305843394676865681874062523299115078844243804018995702131598499604187075150625718024452352762010552177402744909503558567444993998533798226458293913248598531061756776804917296409738041870862002942630582640315783626427798514998722237104266043505162666331226187477681531135896534874168487246614575830815577814787121788790714115568149157213869851265129586844509087100123820699684083321051841274052296788176064593477959445762309486166381083400857379623774210755385204416523237428317517721921074786125443908004965910026252693067346868810993518715105177858133644600673239103655182440022891860623274469965541489481348429268227906441068148720349029697892656116656425827664450297386936241316527633108908568269340935447069129765199823802455837274967547393013350104824271769864512405842599252862243444317860026955466321689446936244293786137095049623728691122356407182435600232886810995078740957798985543623944879401565241202027139888994040597935144820979708931511071066585288275818536598857734316179595175705248389797738141638967549736202779505767751318491685774532104076280156004986165414967962906543039171695628101577035353396093620003349501233331968680005695455554963126105901304996711021333945242347259346372141299242711030940746339502438252375501022413705414184837995764244837241626193615250543958873736340859916162898529367876093561370888253430204635569326592405890786909903867425302181355278893296029597703792613623326911205287302460085811908031865508118351816130080804305542819482461275528891616179539515884913438555024201525948989983240809583957086246702780799858026970448061343583509476747704628903327335430884890411578603507657770369170832659368149668370760866460336082366212299190244826073925047363269746907838126149849195667099586032298985932489973095259539971546756472003629290219092842004026222171747697270672574928417299420569084526133664785974566465421500416463381974281573445515899230648717759672092156034834370671128097455193774344815250513417979784311043917415437706152425412031935427796132486269245591937256766772733759599473128488902438683608115490536247176955248617526887136104765232869291470638286939828860556372834734108537612849525976942185585700406202013344610830014052898192761685946081151675244579568145053234316334630664121613396540260181974740435206088373083284448291156829986465752117431463982465535572040981366846169093730174317600209294446528938082399288374071434147288129360867914543916392107688728841232754220218487439582925908896483832006207892357117632171982530735664398830850685277370049318160966982166124222893379591048531272354044152329716731482361402830290162556526820426008369853004725023980880757485629447902890359062063468087475906320157420171687450688177530508060965255565908741494987651150701940322821717607214928864332634040785112510452434280629648387720797377974072810568261957904225323550222690959690398024230796642518287195683716739487074414039008671989492695304385138937382261481912928543440169456718823471434658271592747334078620414632259473897914995265735173931114817684694766334868193260790728515025207342520640890397591727748675869769378656255288340598988673852174982498860072629696674919236671348045587563487486088149014776035640979094065446673019782879553624048613658288408871488753670390365860447125968131139334281295000217438773746881219165022620267016148950037607852818827661631835343780638205881529548644496369956512130977312238715719987822763402630245609470518502621157858446605942402260246538463482115784654913362002592582632255156306398009865771810357873335501105766658852872603636577565651739443022257404987004110834572184690393886221930184865356683720015196800780878047710430365029180215418215206436306887655796798994168398687218300719449244163724987803048484940117852253868364896329145608352562862469407449370393015981430232504953547909580399547858812070513760706778510279631356221705352043197157715870719967917094654194908667387548996154703776185050223375336199982927940068295155169820832603209816504154668379049999015842640307902432476594901581275073508817528966341489333391847416687740615456239036012519105271587658568362646948816644828897887736363584794965633118829358986818388611784323931090351999119475307828110251385782596922991497338245713860604481131846190010619901398615707129916221073835264665203713559337401459731006899387679847497613997927431476532435357939582958370354911646640225018843497284891440991561129204643743610747413676689473632945059089701716852458108375012225261686283788608350070663191947170664173593981763387998906166046515291221574027882728235405000274228900343760487516004436107609961191863931075545486976605532989359349659115262838746963842723304367458567915199894776187353016455960504403200477433238291938578535840362726817752514444204548116127348326640050496119315498795748034831492922223162742385987970462327892068093641724304270159778433744952263481243083738170608376973334641664107320248576465020820861830603392830001708540942429159582011228558786687634536457978515009619153724307305201022054623817364204364318954202816659575145680452841805223667757078547235258931896197600172068692122984228809841790913134869496843489441361201135304101528720684183299404083177182884689661123650801566001644077629581625402364183034822622082940992635360945704827446373906296099441871017335302565555976323372052577740594708799268547974625125338882614072879459870033043026379491504269672538722386731190356657810377380467876485913737689380820033063272899379842982630331564978231228888061599145764891723082985679774252444421100915594249534084221654360498787150060815666301925020069942312086772800013814376234390834767486227681368014610798463174097067995176746193138644413983920303528846326150334534351145635617359622365447825833869621048491538488490496961617996636031084074352742274910037963881180565369280035658328857815728807441769766569396721984155442074852226120155671133734344210520574532077742133890804359884457075390240428887266747101223393157382333024678075661767294691029860858874312099869823068143073625579773378562579282238444193105974489508108957786569464326488273632146176172398214681492399580872648587556425616090188224740478803036499854781554128963067648226088263552708217223696156538546543784261697549876586887635637381887743471843587564426416105184919887941784353120536505164589459687664865264437154391033832756581767016170952444071113202302074847981113333609219310739480016828362466258602445622211902709025404919661806242510919201448322082976797585628870073298357244180360420876391314896153739500389269927379824751319250698438696107612961139534595632672257985201547505266318852090798987748898568549596744915062755060631949592995414421948783764686209261249523320049576171241728461359175505139709743314571699978539506264114155090896161707931076236414936773869644241682728398117601866258423347915741824768783176690929100850997147361176505561895251507078146891210200591660158482498768891631470296873270364994699253467698664472588013686457146427112335213902404566920902704955403378555746516870109780321536847826059977562122550819671164926072004479282417716176448102109091182413341751463142510165540257113006479431267061311608253096645361191371827771980460466793050186370401077520470899588278754356065765099399138021080146141239490032582261018932839273344730983499093003022954376665506520608906741791664152198360770812851137722698574372392966487998760633389451157831265380375613333259805411463192944585231871350882149051412497794921364825014732766311762208917382666228785644939873646630666385279720771034478382648424714443900371094836193661011751217908845641386959526882172403469285366163816101028169429690877617956409954745378477565675910393988041136126824922995386129632636873645468107336040928025789334629495183860893461596929553074152040528246394458853867440025003895844318518767390522928916789849509578407766863546753313213408273614465879977978576557928913304488009329972634469371291029844232982528754718692063047873497919111734503564838734973613287802821731466143184024497723226622952662612300150140397252410368772107408926113166048620444198800740618321410589208037656542036869381495500384977849934128182001316381675296157764075038834667302193024258271063030180043003236981162349502002086827280990765971487583378504450317452026948345193478039047234312204399284025522104826832559486012449145091293186268075648864749889276152260143506463383357200460799628952152479672748685143611614913514384927069596595887804090129247108584726292048024956317481274007260145611621209764588388756175377595389719478340938438288808390246768018252666775315673398367775752829571820234435965488760743250792937954103525916190352545712903445431545922653878672360828543230608556544430953160717534138640373829148190236829867398405007446792518790532719520579216659974625847498996929430760923588698162771278524575980602521369258082191897809500455224068423426970813909927873445710536365689254973060802876823568449119121538714661879040772807204320226777126889211459679769910174963381659911142630038950452106727860679720290342941410561026938785523856680245569989450579448723003077946234094165535580905537682710394273182873708978488154186385741106440477455374529439266291189327107115632298641698878913137999791614946026647491223042203282178541301563324241213289432377556252720333087883691579075102366283351935078019102819977383599015499500606099674702072271520409676109141376382277061266800410844214047984225568608941577012238120829740250372847855272987126580438279223990523652749028385294632479267120561756660656737686797602652596165001750531533981875303843232610431778834635112599591910263872492380833299678482213533978777208632180893223805791175815988765044699249048426425152035791428629702795065376760211199810356645021721563036146409311698696016337160541533280999706875231127012112378214654311744329068712290538925641334780357568282053869598963210784487804452882373581142653423385788519797501012830123124279071631377371782633357173670122746855687806683551031060937690128215302974936188657900317414712216968432825152842183901181922592140497881889733765232627070954807992428807620627916640556457604094914813215941161768711324662736051769390715538633360581408868177702662998265846938984614433049983940773647537978349718016833770134346615912673929647456445792059073035747634288804114004193296116221103228899669346158661936148741162774007157895904503885237562767836104410158790065327698005576145148864352570994739716822483813902679961430714784528977538335316707104016980234105061097619516142569358801896796488272377429263278524317754005230554555272532891132589089631403495822686352970280823849640030895766479389144150680444328956794576938703517837744267457679695364266180119254780634460208494018649706208416022174917276479217172617955521263879599439097295000793558086905727035990283464750285315504416750975373803900848598773669357510507841420821543930450844801122839292959708822024695792477623008423207142752703966089079279898229464851475777841576291413179361421266437245454110241925718224665955752314203267951661014809681831439325949182502812797747868838968879087385029193716695405681182554607280887209613215291000094145606893498309085739783642186416996988831579762094469679345027149003632203641868210292063932218454589483592053590950921270563127398021065919394117940201538768043131501452796763454361441303744154572365248099031751799665772924857369387384000239655002701132069238116485498412655179773810046164648409493343714268970002811613860256720855547400826225792455042811205717337177941816633346084061251851931719375632020732848061402889707113832754861176706635011783157775135805314445189476057987303573887329494412976876686191687276393524193311490770301548177614296330797617889151268450105955277675033960940725126564120213421738640130039385639243626052339429177578356991805196299229079829245761775846645988202462013203553963061359831845151491310689102209898769246909794058656871887709530601540063424069117820372055628060604297581285748264107976797172359034336239888904798958375316917893199800200341029993017494053971299056406428478318964956650527534905840041210661109210881261953764547509550896866769935950829482920627292704733320510210915248469375796755853770815778811317224711069260483930487911294939244275603860839163260987490094127171058166954940926872126136149381402619519855375934926070094816000976711180423869167544675328660302632847878202874578947138763893168026441279764056789397455073148790170554815288222033310228422051550995045482153277748892410565332990308084215488887936662147803738877001766891973831957914926720901546516512733331617033578059294544006246112768619382195476829390747238956413529905454077197356891869775610867811621028778536400805560237684517881243903304837811715853157494665006202440284554853684826633400796337932755865632279970641169541559317686140802048968841084408116493553963362920444327295140270109486860098752283035375266826159511587590362558826719981129366239486243509835581088174253262975042734196643481387618681476058697714230901038762146244329566311008401740014181205727648529089053740568344821586066756305629796501925737883587633843090726934448731110517765702117302766888312602959295692399397752626550869668364636156129665762747039069240166625800879205431166880645895346170239589517750289224700684295506612827419646900158227482130142067901301300292829261946656241142144971665320794529884070572388933525648795584928139298034518248638216482245583716410048341027354681260584849738144190732420391999852843193232835955881268611400389026180185648599571846961872489688956806812547971236110505234693953665420297557713454650268100748749937485196007674214528933388363828887449356812015051390919197440137340273442592633265370634915935445912993232536617609923758730452455866934914400120487760628822317131265870257846778740659967697314676178345928351023571861979291439786171506965062096110664010322193876925280830975747575156982813522617418281012149094786646320699853983702442902990203916837726530371914228351661939125210169235868976623966476553619810595815150736416476911653962043887306872149379683501088082282944942367147654844210385714698601788172223863984606251518090917114817698684132533680585613745521670778984132751421722719919217660322996183733971778730693290435367675495591854811779751834697478714374747625626026895282556755983966241810086424497005520697296111232131914504526860016318114606484237392013041101414737024130655586081089593253702184887681621076059427197546605172873930522532200630282719657321247354148801288432816506519212564183707417838590418843740786210470238400981866075303397135332124968006193545192192671040498027195263694227182643850050665026731602138058910796366576118418335222232794264630171386250401286238363118069962087601925472790636853184145049793384748042793990207407124409241280271419955812937795887310177346941916945645904090736781394935384375604215561068276291512879119397658311226926621860015135167378359366527367011777048912911201839659582614888694857693089584361932149487137298756354434624039302369548975705709067897393660016555577247609965700311704577756139782735663493147994999209878618872532320526909029266581470440556730844620930610698135072648149225044271099545265492392237167469823181278481717808965849847442870664079554704126145401731036583899508435870012710540662905209082323442883376240857733884511210286554505091154161970207808084314936353304711191820665840685541925951995291785079465884343341937671428161224413325879710228051853690311198402040860439651835977088927261329703718356624356359995831827560369424391523055589309575628192572974493997899320320468420946957731570132387575359957831254514318732152971943341572096987560978474408894290163099959398758431889878214827636797164106874696040464197138458049698024366729611581487463334438202003551674746196746977356688252276678743338817930523136160337271175331379518992764283476172057570562489931308433582864019192310642678716440889130465284302165701344083471173023321459063292024717319307605821736946911055724178910819312078084919289985369609407224536228221922458826256655132418931341184256169000061160606614738413939510348606130390320223200939698557026260211307369110563895458979784565858562592554604342951541286707162467674798488983574162133975565444310876494712755201301248940392684760378049422262056815916684754599677197838008139749038138518716364252477389790134349183438539761341184661103586775999076930017071721997976710162288869962080191384410464646877674233680429105784417673337670941209880797630072043243891905191456354055597864778823823592705250166184385502492556679183473155413824264138832557478754125876762004334918619875285564810961744282956318202173655778815466029737322091524651406949192938400147407067791229330615810601310685116564427728031210219004866070872676323984364720907159876401241775158452115411445972914017766412382101946335977357422686846816941919354142124050371566322493295921586218212618973761484909062367044693078994000915662630169258942792025804746440110523907833482355295219977217822676396925844882543291223877078697300389523617525243758281999131144451265007385201648376608074245269614425407360771313394942701778236155551160219023621828697329981758567405456352282105834763014956614113585883777892139467687600971333692836530324277793918317837043047177105324143497333816010416808911200681797577892763698833441795748754857891798769461102882143029644460720163447907897041903103289022997489380384439280316205134051610071641800301504163808433714379955184039731298761906949572949898901543275721555762122735784552923668053982368883065323312228363119264485150738047593562504302445465297628202339569335800915092829895586222022565563740868515361970308270033979598654754078492879200417252698382372060340065539505030960855305471125427443479970940666492352456162687765645746833045805812266113093719208934090731280874944688234558360504482771349992409257642828638447534113982920775430661889774218159264484274727682068259680653082395976984314674737887371227219713061681937544231907988419455086634657793047594499881530943308529643382263303658812504423616552941707219598333865213535952727973022263317458704536876809039638411211001960664837165709005591073366861619499535381871241329597473644156788803445896024732963647828379443991118217114297060647855430655318255716971240923912219880942379440631383328039325791111213258537642459446794757289532326687099011756409033034494876304497862442030893711415210788800258764126162783158728399545286268831363950775268381632771651940176064075523053328027809571706024446610833577434767121265482178826568631085840949373248787594106101467795089504358647173791253175654667796165240648196620691257783360143363707743762197390348100915212465220276687868514748725913200073643389318803071419391294049345628064210945490263485373368997705067105785283874214691290860678071842973092229613444747325438820105423760546615067413713147406761749865791730384447030897346862299519107015725082112084725287027239738584228857277878952730806525963799843199488455921789179651467819833328858539838621720827219474676158932924697894659168423726043181800028443409667404410361297328548767481918133979622070738908214080834752702915030929864250789646772954726077993243918492781896197460461539547381834093053449626220731143472330509793209659430023413501473898369095992997205314340416504200964407438775193298249770631990514114021591319591407227105384827715242984823719857117446658756118245110602265808975318695802082757155797321991100242479796621078365217765941160577148078988822904781454137421945915700063234902085191433179263204687386196826840939968664984571139733564495760718700464637563036433613087320463761085288439824093178831097594256628700573962295524354749134573591826143970260555468122721065515118162583095142051779363473150744611409468939949071992710349692514360756927575163491963744142011221994402209300401116686670535819579714882837398767634632300147475800889329005079640297972422663809501106076103982400351127924417655841396419094201056738496317995063532619914586021761446799744087713254999752179709773642703713667291572117866695713701898253639238541972512001744124440629325327018572463796706867456709549136088798780853098896073191058275999006564982882839125594092592532845600825481033350293086289659180160099925061109530073624323470715794819878489207182265412021886791002568517841477551969103258283031057369138140214469131608797222135272030056506136350456701223959464549840582660032951708490405350667950618923999058641568611651342071880387602962025358329182755855315511711760148148438295852345054208407703643240985742306026817562469460185972834535252513185570239981635605226826979416330983756133512339689933212545861762723021001088598292662380070165910176822121196984742136172844234712008791937254840508122893547887547233268727329364702804539321313327406150059073113405966653109749723044602671813079718442627082587118825078220718729713427180442101495765030583973603038182297042150332221156273183831384983757719067700790598277768942564880067049027252597474965802626063526866471563950302619522821947699428044737595718939456716958820026921883695321922324959604525850429817016241765979905914832807601975032519537421784344019857299627398671124695677927389395515159153544022656041092263784974189575399350982529764086518266185291644334080461905379738253252019209858890280176704134599506479118032039875658638304163060430678346029791673145934239920119731766354020955612801015200802430826396093365536024810420733055719021475136619144675402499568514158737591152646614461962399529115601453892412173199458023187133931484227026428422678878062706876351441212653542226425179881634879079680624681640552715456527519434270139932678713012597770358795247310804597477074546167125226469261073989494540436342095009094932656962721479820515391625314856506410937996319822803847325740629502613409376493948296901455093064533231850478468719717928628442001267850078149067507081785534890722257755350167420915618295894844397314387200356429203366479554327698268451025080648328199908422766483664250059153270291411495112184132224731410134458458117136182674840721991469772937926347479133520631525059186762446761744829799656278157382296784140481179206292809607791804918547849799866032144348647884522364736801414946113540918918874465126516390136156219142640612767418688415718383192091922417394200310985716417248232867790792883642858147771052409053910302431987537663145089312768225724291274537052093321972182743481752675427435004400921691856423350530096220410476277170961088015658976579628471493037375110117787681480590149546035743119138072973394253795134031222031945878537735404634796731560988670705378584615492435709390381553289429085561264782145909471767381857946006688515847973602991034194782508309630155386790406943679584626345107489102213891334730437280064585354135355080041911589759433041560146234592385242820814094832079995098869174538796041830049088649669583082639180886192732786861109721423929907499543127272906359558672923738418014660029190406209791504376286034064405995161390104177967607979120562478439934589024450924482808686580641224330360912760152041543803021956300812423664429632428888126431948287443723839273071382522723033008795557584330750133724669122909725066116981465011813642146595185558860632713689597572336344102713731259698454443221709556139480587506334990528056518311135831825427997537467441112266147889974590859760459118721831023599170990203567759974896508076298321743439738834128394865826139540950592745754248034291150361152830442474362793184918894813289541996704135392194746521852166836534944735288062294198729150077548238728416189862264632467575980185384447461845361460848882304933698365994341275619003107214559040202836520183466748937644866457125800143343564109334677087080112067064388808837980486248385170896954111672005298929280394296705739113588435498356219900634203653552785757101617846020651287982755301421528490893247648802370018453687240746526819811586757706918463008016339281273173740656311498879541843998453920900148939290391536883516692715288280821416674421940403356790740689964826205021197584486932987304730193728975125100084863131114025623363321136243396748232174577278540021236580272140833731380934122571635148017358222071780067182439966817218368589937646407568458861208849814451139212889482694825834710766740679435621361432177184177435995679201237553648137940697998772147557459760588273314652032109351287624529322912725205621337830802733547756162184401221325795512777532256550233371234391574068598312401017537818219851805002123432785389490919622150239418307269062380138025606994243372733043638518045039647983276244191422612621531269061447369115929134936811747935488841609618575694787257430275686040049572198551124059136542343641704335492837463728028887829588623649369414389653159661000174033086854684611921419667789532205326562284471647365596463578840485937781510265012203601121103797665445173017350633594000002537657253217741421138608993180079013225629009037269042740141302707873356454850901100789129524323343563040281716766835671919870979657563488753896638796245962278339187016200366073540698458105812850536174126021423674008023432899967975690884221600195903231610502836172665181576604252120998775410293060086124485291366015175087203740602699952071270107194994008137750104163404847524426251743690341738967851908431565996712769928296074617403716216528173987784110681870791475765058134597120642004915155745218982911359062740945788903161213117534806564277584017345287569226245747197478299065860674045075081587306134912616296276325481834509061798128441283704706054381153048549831823469506564239853807942925147327387508087322282158131136748962971541646640179761585285790305151300444572642988936871713240853144435601763693154299776167044513947916544169692835004402550746349335980608231469126073899495050067035369694797352612227516632156781758440145165770961301358829108076172171207245068825828738154935832424601733307790183258873244194099278562380951089116206835919989294633667897393737832338478982220403512283399375948456576878975545016395633671026341586345269045310536303481317714841062425237575330708445366599569757770985765660746568416274750023438475329677284855496870669632569766854492105419266196017754691769915096374231964846101833833063242269586201974536247203339263041332986448026102849659844357005165313513421431521208627394217087626258780692358138617057293200311054339741007062577397709784540550795435850608424813475935931060867770800672417506203902425759775785650459881114805096540855303590090871062281754894761823124625852638813093676579318598810837777839310487528534655600390445539192440398306323981515663366633993865501252871259405779319370015816213214013401187768535901431192303248052020295600685955148507015520829456600048774742734804765477176336665553211878880692082944874581148780078495818537716373345069478509823784442587087027906764342213899665323478773574916529687647151478434624338562819323012470438175069023399141775569379787713780538706364202674026600995820776489485650548755261182715349760487097974795277587532659525745359588934225544901892875489124002966588596162530318082606367268020211507144317552208221516876178243194136268574244862266311672834137027392852779756859473194417472427088359435966696971004626822442396662967972824518220327756439817070732768623363431410835543266073436658145244544827880673190288965792097116901129635495980190976436800918719356127493298587687278307209594206238816836253850064128563077969405814214748227151564349527797689182224931324469544199642831802787922051038169694015385114065104303778072692762800177767646827286195594434970081825197704078915103269697466455459264936480617846352872076227515054761728700813136885784379234603051706616793412630389683564862169767587533237906853029904325498437885587013103155554549891184206236191074872102543336446393201950740939157983726345273300655128050623819603300637821075685888801158074721890924655000413650178815632100461051677377071760310553886426350431305739572220365847672738811238478971783752012760052914119884246874654839198009028150726964072323523107962867205640001827043644821871326673714203971638037036493465743075036675284714888737294793823640075736456363003332656990497747755846569556986695788921384435516380334465320559181674104524639538204701484993865688524929452797378594376330860055204094122671197501807968739330922154165544752872569117027848611667291955625394803603569898448046735459411364806336569507368840872819831893940526003562024912017675695811314053961167484710320458074155291137580600513629437540324415526777757634540016447015451933119497645304020438580067424048660710145443551646664282524367048243453798219501713435116683817019040848449809715814956253035211227579140674964910220267004756569751399130161529788340462399935596334890238821876804882323769210051081117664696487086442994361032690761930646865883712681119025789904269336526854254176397281378931671432280208790836620378408746283946845307599248841746213528869058584407306590621709971135823873166784264521960719873143510481140948364733132265880723670736409051331764060121053439904800931429906798414709933924639422269907907957107224526950795608049405959519220405675709195244759216262413469089703443326417839929686118937874180798581501038350677848427517861502183291234122810985452410791666390111180594313775084295825983338236878799532907830066023892964414724803037781077192284155734495283181182503686235006609341540825640537990791607132982304977749738279008484501484946776262940058262788920224223006993480112904380237352178218936393000771586959172197650546119801141698734301520723443904366673446387212134805805282101956122520789666237307108101206246055458344426982793727444633863354753966022154567901241469226663723830663762338042570383600462123554871991049846113457112278662832196643296429653657028192386417875971110254645946993454662399634601213686780413541168845744914869496583864356383392300021801115264036698169179930637520308982387805041406077709852201489161469691291326024820499560581623182966741046298806401001909759659986065309751258980323260745381224160381174510425633234429611313336168978045651029519044380348091767731785814533202053373466735568548223414203432497594093869939383090218163434358633067629570780596432081269313522532904957861434212348783362041494633690673905019111395812059560236140719245242631175047883597709233787503764874674409589639547459557550974488575465025569216049180342700312924546372890816262376321303481664197414438821604249933437594389285460402002265221556449249101771375746910370537104206656732448741912121430884311664412303838382763323456323706896168572318061566814742536583530401357974606370605122869785763810174658533633144950421182902849842682951577151915439936178273497403419502835993110457085003226858656508451817068331910487458776654547332699562092581499411198953760921407608419127770424900177612657384356652735863022761214915743006208480737157177600994923204468870309715589494965084009753807591621967200650265376767003966443490387349430176542600556062023614521904901414489888915856481239598563106100425287025565481511883682883331541847718319398048528077596757106857778150569612874761080054427469672705212771076952322987569099446250384306088866301335326130561606437042944082938379949411964487525198606033681932440604037929752662842771276773117750959207486484283219169526503631760410402164931080045179977119399253262782922663358812842290017904509101003930832294011028784264401478745905366614104359378068608438350932297258264954549254182679944625551520349352123994503741472834395453562046401651135010294469442095950240940866345209178629300532269170169102058521716406335229773463470138566674054147347512050905493011237674416793897689339056319540329833519495138371039064545302182280113794302162859244036922068570296710715873888360306828590648934104120664990047081841913123157884596424463306119922877991202514527473882798721177627701662351288946722117794891126891169182938704678592801796711972978179036245886075792673626231600411655247630664972023997579622657864542431596448697218266768110936318402141750345733972524721424025055133751736854482634009754030122398435355988101853444645625264351303944489301176904800205626341471709646840235601619904384096802719268519323658686289298100154298835446131525837340897452853043754555612899533637265807341336433466767803264762401097635086147667694877613031116814207839807075080044898302066452253225660295642794026013949218044794249278264384096807520907448829640155772613032470220911003851116954424372349957719849298061964802599796168629853144437618405850943389840761938748222890087469278788306827873369152533336979588326806975964849436037351604350093348746064395358847909445937648730332274694820436821154984136631928157483119722603390399957506836814454768998848290477511726250740417078967848809059508852447255974801711527961698739167375713429640014895954140295394910591470324336821088338610234989864687480024590447095981849178317385345730894297487542567393902691855306228265695631604927524858666768250173264154016317471273585149858345516075007436008142013370337291897142135636383065494523366552161663095290391310918774867667138513182696613680652240079975675383324290348555871211646323210092560076842569160493380902100143303761238126111563144926269120716304891576925647183156543662369790079217154065165841955610299779913338926899657704406561507021102310144252520258216766199606655564082207417817490045174747823916825296765007442293852009005586161663408585571201521319612863148573424799820245680189460766507190089346634855114479149792662071561006112529804138821955830488357564581731048616880668157871562406243586790666241434573596659671799495709057588119757925868617795819334721521532402790399623847692056538389063860196456253361033953792482968201924968849966639801558007910743786989385048635837189030371632916305920853294751269631326115501788455087316374505595107290961670268414553305209361666988318885392868561834018085708267099516732564592012320562221945410412690214553424590523217856124596159954464910468211203088072079621398649111192610901738045579965596370442705475096919091284718232880458875997504208326014067728932770033455540803593887218941185937460310458280250924256558358536784094677358562585022768096082593797842994985255816910285784364550185328357769111468901602800190764143848556845549885362268645144044114807396957296745381358858316197491515406544387016477615360991119651015778032622999015206656201724710905981505715541136537377647332883800506000532561030539878788071312973394398446448343559988970230223707105211978653565668135736492507709433583423128687014017211462813042440250353184201720639005394688334724968157443267160101075395953672122633951492606127674084569502666654220014222056414763988380232753009231695095291480366035708357256790551635226470219078628537068624357667753436706006971420209682069707542318206424099751378697578955284136514436654780274294981806178476065548760610083250338482111614680668497487874681193726264322534931423452240045045855534665719927683668445328013065282077838350465204071510043304209919800423250178646423788277605772212664210736503755771597749758357600319020975730092308011025010534634540952640635909370942830069452865726082019756030924691405320311434909770684235231535594015475782711504617429419664151733619015972184916417769048971533063564039314013238457658505754548846404768674688141519544419491438877802532720664787740861811701501633126705150999433498895934688028704794171849246239182108434238701946517395810122105102845409067116403279013206234316238665672016314371265542013255992150545884423827548151100629612251436500526402963370281756059678139361151892331493026988837556869325092583628944027599003274737182818293055116123450339962491894826333152534604154691213330680667983466794565136548455845156739609906460774187548024051659434781870557045476033535138162223255088599506852699555844714932451775734486633732442496004671154815168260572451269552874126431388261916466857991063660039046880055822966014612650251666673574641308661880022233003178080250241288612886255959956546938960225470923694660624865311146790648760423047845814248075185761404939994242410963271243651807470483378367011139082402885487681941465055944876063220613633549963191127356206191366848042646187986753657738663734366213821061165172471214172442603083509034356435843221847008198222901912419219147735915112526307087377249028398494731501416484001786502238089761691174656837690135938342577800052643018922893699193201154134006370559439343118357777620330603379233701967964631574714770724421952875360173330608566565374342944890900072163264292131601954126678968193163044510501240293164565227844598571028896762750546263371188751145424888269093703819785027993608452011100410770534924140482332362441833480507447264808896006147257610365494183440697878907297632112858863167426885845723126928965275821723000762545662602501268293072515916109207985106049977230201803078836402110780549336204792637847852079011095310871046172820663608749591486067881197361170265914971172819947219548276739854450327781746002266662683730525483301450105489388509167693104333070637583528063161325024018177987523168576091421202966917024556401273620211689359464746433599876783638671027582643165498573199884954900936592211207782516123628049251267931746724187942392613033322181532705805785806457116333485460950599776543441078097118366337681595491477186936720035840086589577344704539653280854151562087186626393956229463921985539056515469879422976553884447351598575505757645764288731968343753800926775727986390275074185159138665615318353430491269437124286549598921451781181108243117046896782064922856328734071148414787672377822006601222913812800188391228859171207245193325204773230377735192268887103027681553165744925004591924735575835308240653713153438893326798642282524994798982538067261019653626757510839028958250509791324295140876425806560836900202731723112697772505885617880914139669021795919286885288736505119195394783875089267604700759680047174661925216587388707825428517826980791888863946458033512016156020931077691618373121493108511411652463816416219806813376109347215899392046273990990410002972020466033150283835156968374107452915946374362452462668245254226152786820093502356598837379173049183193266646251810700948513635603219975194755095522339049902476899100738009682734571779152984033141040408511140977407219613271119671861331681079301874991900932705655785926834682840484810581197914358188401937282379045738795780129269950671936917614575195878657441097320145284714997106126895883233192301228293037133684120985178863206892651987338014676151386944304569458228255506496055500251221468082145966701631642672245085189339446111954426675625371352071879380760494932249703546388664350400196610540479515814791812361251293474281397421674451105306599876494702271804511548836398817337763987142341586963698811197469645076169641211668061027250045593638244944749344716169502556822498183707717117600501268363936647404853435065149084495140656155180366561655897018561907026550901436403556829598975414270582545607796011707266891669883975821781228895399056041283006068680693148730388847461230889044262832345266524086103506559087434182184849190550497736490168129949217689833068387138425010088696921174910606663500341937396304066728992662912782024504697078566063046560400559889161538323681792990871914031564994488271414477016284507313286789164795625356338228220433931615931438091948051315542007611249558105970198492199256151427587294324084491385839112272899746943848141475466464534496577144725770067468937425540249424081077726644584085499918551867610240408571676853608917748407753912809089122696430218027281801726723824223096241743122927839574857661148994716237474085084168885839644174828839824489482348000500223857831419720614121037434913533189993557187651956783657599847272844814605129098130794372109442041634212374550013323296385704823307590988752285045968206885888512639574422414366334073631646763903831871670321739482945716915884597529721635530100025320457744437941523072617581294598238445353193714264286067356439936272285593608369965929478881438379652980805649989675379606433835552362016026898233580756149234562774379626576676274435130844728169461202530235620185181600307298109479173738615500983713742618916640073338297911278188565890235605676922951592651995312705656912002171864525721195303561489550767391888641343283100946087313909235731915550811507998195656824490819702959802500574652636693224158468601435351183241493495355451314865508175095128744278898877186173982272999796331850089981551387173750067586764482622052454303326508538631935231095548092283803385545264927587157135422077848523576733154508135342379686815152101548042080145115860276301973005173160003950781551223883942905458811478348538906150453038707067294555182921235771972967898584014671438008943710404515417642380662915816140682967884062531840789156763953320038007728078539928971726910824964128424186960907665982579980401023513165731924099813761728625542290870281640411521938812959907111545339612710619943725174120689008363459668834228318110981906100616022607177566221366887038753053221227121023248387569596524439233787342530082083061546044342821622631246636702682357868673645688951514446213099133549285680822666046078147921377012846811029467079728695578925356108231659126314515918490573508544686520377486822896197531936684298617273795511415459039244731430058617654810705708709825549702662607650496389267858450201000952363704097512937480873968862161908789818385122898627606144917844477100440110579091854135885563495208401765295867848564668166946487277340049491595841441258378587214201525289018547342138736892862650305628604756702016164657206422229869968450492386246545273604409333569331494082413587550223990756421535078356066808673487596474027229188754992621526388972224907111813493367114608380914692062261817093943926654608102397901705470684189979788778336080989362561587113522468197879203135067686688568355673228330801263822458887483516967311365392675997050357420232224032391111944210097656607159198816547900919246530537763115947700458375749452730309907462496517376639342239257125016962664130588170101657980418174920295575646266269903955878448219397654815901526340846793068652192303170677020859641126525558197468598325271859147953028715876212891768720598406798263424451587024924459583344672818876084026304122796465928813575358945868220252653331902216593422793846050637775819386823226183693966511058574672087460813649415290112930386362865412969351725053943428729627633857827063380390422028037148660532584568275728830747414535932081858100634644821609230989942206096943680391337472622973780131254028825885507620667728408071393598009717259579767199462653819782458311271404424305623035478622984843693661890768687890242893941857067391185937939218431790091324058838467980683274326256534568658409273712130286012705352160206154521081855560015817314368253668517234657160134569865979249913058089231322363092250238928147258366452889333376418083552607004094971161153075937186021625562470708670725006696819361435201995832385127699873595888914062144396247477319641130949790967204024176396666923059383720944033298784079364110006738580499862770237440156153720107923791607550876384069829852656284779569633769310373078384200707137103146100063475784102662046916091002681562847479161517742176286192095306112932204533936189842968343429487363135711494102233032639755444007815655371380941776118897825828427445758249366457388531483394331371136928451377470524533906781034147652416601686469575343326255484062590465340372899810193309554606328013592626151669859639688136442745282491101454617087039554910091572291386562076526655371237086615734861532882890814480564395537313055661176712754682068916318260600569231119939606188440312849035982998150066182580878763780436164744560794202281630597928388956148414820126353685590056307153228361897864888132359235823348013526867215872850160481004654305250911460822570116098439893267176400349581461183823042401228266229515941504127058766539714119490436221669213214323906877256443403491332972890514924037873965661098179607611503075300794645253169139844370210337372938548547159029286851362195334464765915257371107505660253569793860330326431675096119806790516010219031126794114604333529962578127729611420514250859674794096750111135502270084585318431438841529365223083483025651185848850064706385458908191577315560740006867587606147716749339756628456993305160224188930456461217337569839155363727548152770755811754945091083983785666674506868985146607777722715097265206780914244840119893854117138444442985747611776614923889485721364890003639363616071275247486257210933238539682184740315771856605937787701158978416089838822635253526031069986032687085384316581550718185271202312915958271533140326069259349413051119125815941101758073653268761918832638326644920650089244436122229587228998594216491843345017713584982382309130883965209040785947812596664330359032142522822739995555044445846139843141911659981367266877365435251079157526281158013016495589222421663804981832146759650658899843392393574716927671243598912605627846048021989518556357662222978134894723770828332811186265145795082367751409118787575838664704164842944861412587313939708687073677400459339530526208686752732132085581723992745212646667846774289493371438345411187308952437185888204800104530588480850429554063348687478101231354253124995255944423935022637601227172397786017638885612760724267099738755715379506525942395015004163527171623342582429045911279605376691301558278201516964112890917533233894234542879112804402621514096260223410883525557220873759343397250766908489902695326592959894002589724156786446250173336324396004896078013627378771781247360298108444085448910056459532173318897999444865695616261387352813580781608198335089618336275167827511409099465159422752493166545359659983042127504330386233604130533948102632392562429356307198604371842385280948786110328839128444131145940204574717125154182941790095633054403346919712679218521518725840449878178444964468089631553968830420735224471590781613140987965624802952162529372629680475895465351359847600900119107949794868012145290032380947871598406210989089441384020364653055865734088239596824171415698211375074422901411430331949080847172511110118619736883189484477827230722245643531126510270179757859686083008645858415144867313941398501248353052935939642213056593954040659006091267475651061927448006346498150938081166554984961445950516672276051869713335180495283780483788270127051772073414557562525921768363913994889979175966527563383856123006774775358628828459737488731542725404198983802544728205357267262206392342819733254971335450211109772617025886049667292420783188747639663186997343638856757374724643554564843344765794222395072051012242491458955442861526651980581286392258272162124102944411118404237904279178687793525045160597253279484242821796318183055226679101974954266410394749239387404083139441911737667979539377787272069384092113134341999570772843491334657908657300303673407268205439176987257948587654391923064505356453502553303789867596092966866292355820988722918134623553516331347368640138766741241341191737551965147007940153414093061620276661506865569857745864310789117667732879608861766241712492581695939672222650633011914517915096618517465143965550812498724639921362538204402974385568697241874796369438252417340312604631785785870555999833656909669598146611704087399627332386401509561817446317887449212171937211781391162096397411210552486764357408255412050782741795111430556223329188781767158727659099792151074296360637260610583043740726346326936255808785568298865147633756317560129088290684274555498185862030081243638893172069650373360261642084436236115004125214015830441122707193416265211729910276920378258393591279368487151201579861891276483865021410883297283071147099810800150252413919415445558663890331066754395006777888256911572729564748126769619450693564605687254945417969754017947317789116039235042178225860333692665940347556512191111956169100454743897172389123218068061398569897626756231556308355116102881852533590595096616914634961095005554634156987275259923580769588286858944410934744701010610107688532347140974549122120281593316026582726817975588449257703159399080398927189606418977084486928333092416012744163083257562156564037744882121354818188600670460657877740411652144762730551897447189589184670973801993976036302229383419806405911573695580072641487160647730280065290085349152898691777620880701072391645412758958373004401298388669900092284958977470491180737629659248505056273979322922312058961799418802302112115412339108612609089525071715999037858905970156765384501631469284180519825473975194334297523333772119408533897920056720051933872704670279115758054182283364260195996581032610370669907307851692745526042717068215842523066608640849584089615278018411696119228793202606709801094055369955573391563133448433809483942495062739108313772105797514115775543475629842372676961192216162392277858917037052503131352697346662016917095238792673163014034915737453191717838516661671266519663686944069004067311053904637779876851502151366219442195502974929190793362456259871426796250906895721169147605045255708587456770748835033847534567384780708941983737991138166304674835861285241818492336238376270581531518835537725152900572674779083249612481510430104052163429124621992583862859244513732318695747982608080082236601262318456526479011007556784588186193859921958935388934371937373725443286561507753980655079182928721446980440964492865156726095223457625298416141338810411465055101860387448687640932802381134810161516145689444595888749678289266757729035412133692654146192929908444922898983868038128577978293598907022420759685943038006928578143310692694679591619509325637429821731955294956645729291381862063898985905590899958082343198352087674876888321358039678379907841528048718577902214399977327191175075015517802117471014206664075782577942588264587743076600587675635692432849484131875409384858390704984584560725332936390357402715649550509688686022374593876758731699976198740008067648509551369612207297803069062947393225256993350531044932698635132664973043807059822169107990071906593843343307752832899461258713568084706251916226579149153606508948636835336975028620737120204540290185772723497640878011938861385098249769956239895934578623515260588639762599249684126948483263196977463260215915555253874332704172168737660470377758247215133654076840331339377184272338891309779504852439326890047317112724440195965728992367569087776628546092260794673542006377419974629797303576574525067057143633828324084557406072057032202499710436887511355466246745488295974379822700019851661888953161814270711281562298913475854489687281091921693555557463301229596738486014167178527443036097839688614771786811000356758559758422221073020913517616139218937148491657187505692242440296895943243476824300131947905025168140229978385315815685483238636351133630957953293015613770882580826404014886543719889943139009792825057084231891695386932171479747576072268595120256991866500827845003506193966195480234392375177222172000336550627504870099416620256684153088719485268248135415221995970353890304311904961092920289676382697557747860514622870665788290648712572197297273826126653075036052794326382434410094995603141081410319661852426620394788949538120775545948687009526905794516858895598511615902107275667923954413568992394673277671804827805144130980927163592788345188943775872577330906996222312134471078547247551856880416059935961807793210898716182417571211681944857694103565215759705467409583063494125353590913462244724879806054628408580219135259304142042083958961722383896953311722254373558674861047649814405495838561225220149647050037175677388540917623572313469886728966588461111668851093439642258725739874007487211738298113174022224044542675099951964946148521790511197140976686014118640691048286439843934879715263800234489937193015474292332966511262888750567644540274938087786438270066753007986734042844265899503357270618276211441598960093178389930782157424813024700418129027259369437576964056494733055530117543209139002844162071182261072252818989348945436071713066999736157842407596717200479031862247191621969536155331707012841224565651434401919756395952403809543523437045521757817898488363699085367307955153452468747639037527497808006382270287883435481444565641798006212022583443163556433893523230057570506268756072551941064497239731290870490651441189406691184495386668957964390987595131936431927422422508634050883170675140174506681751453758252493769131918366275672141655453907684338088122785510935904992423617324142347339653045112764015338903169046603125210449344579344887600454558090183722871831456108589925035535363647386534777977799977735010227142279979160815262478905403564820285360368480469974406637158564851832902693356916888754808093079913279519599422514562649190570591581096321460335461347233965448406723385708354016815691524841225351660428486271415423175558741507950869935404197324208855528216207377985101294228102897729387753545378881637103329160723960471913991280447557116481977523131841360600415174092237885273629883529732940178864711861669202220309239195348466810618512619914320264941846883079624495156112411948730050273464865756587850904100766127396357344281320164243175774118429203234393942132639128287693545199854593459529002949493214813639716086036335152883644226318834649085026726934158131781453608945142532252649291536609081795268105230515874321988055659353552277770503741496789389319326380341726072446576749780961896326383410512904581052490815454966265745629821086048105264582308994950107539974108565855497740760386492380360229614438749742547123032462165719911415275778543445017494825299452256778455412389619000490534297450481772472201094317057747645682143344329871202603890954767605645265674339826488283500109650052278710454219075569802003501000779096492085356234964818100429518573425332208352093234951133927517912072187131182600308224603040930020576358100238633196612063831852865523131140874439225070565013364942407685058043698619705740793812798242523244568515895269827435749281527389211272864344271145851435738942349470314030449676295712000877865959996226515666158581081630775883416978030369079183176588436737713350567201949403942962600654846929522806584403626196963841251793840371003577644608260701689935598353871554388333291644237638059866979736150142678172438599664804339759218404659593554874109496517701688507488528893666357738470966384225437658191770277659144067802850301749392874285113229215202228656193205072942664349886997915687230607453732032055981743711768701332071834549048897609190087014541452348245499082106249948558323876087198009497281330723078561137691809631103141395485966973152377246227480990790346956503894498717871365345494423813753890189171072342603833784309363057679998423207693848891541795218881892361622909207005615616741515798382144240846113311178888402683860527745129008061630458163614587983095528768707533901623282649577042571879009775332722243142999452681118320499558106160991126826244648210364953748801213988775816259828237094756943858714701840203310819386411053445067930343490413318847268884780835257946474493406910079745733022027291703793695395811922644540448653163237726376165222274399776437867945508836798471550906197765835505639664356002095235050126022122717070936008580814990825731427669918341649727536665047598241608633415120601698590745198206810543965816842526604667104693684879241574745882482023771546265870956644943669501339586819983964071834982034458542769779393957594394633471636567192688036566647853385106863793378004421714884214340806566306569438145610566592866692389860495527408839493940875777311448642418068555673981784679901277865030531141359924810713451400351682334834444084742868168895973875349824251305127625370379141414969377677637283806993318850960226604680100209048356610124416687696980320032101889769317508476044187872089483142870148628250818647620033262155497587012754136052331562596557016733193299466444782504638403966110369039651124118245274405370098539612608303613560938878826634462808251856468867259790952630622039170861049193345730559456081848676375844483787362491952422729007228352171978738869904936648778787915585197254574356978193727637740718984182757241037353341211662341760203044686490209244610826667001513794370233391806108893529577435903495474748926808260566977938243057582860021176163512345586368596780625263372069072541624921257717573624806173297866622528525643732607771902108171334427259608156158810916731781499063034920193247952029805366961956402444317339076333529889463561796941157633335793506208804502657253720852144312679131363653829926255732438739716108962256275267203588218743296833418026472807145032125865894706864858603185398256394097775504821640909428051184920971976291445301553010507979822594834094814204146536255404188660585813842684817115818773505133204629377212291585109824650514549204448852709134638163337777464896904348992469857756554439617481436464839599617621987345800316247069346918775884776642699748464429323704601972592089826585979272948543583982549838576544045670130795359979390753381718311320104425113381723982881465573282166597004572442058339328917319554931803292636559061673097028052732677545988010244361159304772312692964133086570065484495567791288505701795931920375683217970266650642701815995761680385127400870125106960396909272565904962532148098705873779181452472739189257600463534816289579672720873410182356916322884995084644833521656336646628663327704355050719906373401236820190428224387422487930449701136432852000274920618379372618903109355237521250406754974772224177149142667708408948626762287761133608421497396567938146062501575745379283183816313442330421449588107207663409673844699225218573609776646783392616342554532416781246051775252474454491374636552027238969198940850399903167656632934663207177123882862721828422675955209821386198737039398799676733299922265999483127952990935143592367444644383808898009630373218183610263919693843973851035985617431913873079277337689786626340076952972967381584108445066719231336903680557248768791388874386272187482056371644922459373268502428586372683046472044268074006169224691679176837432081977901607447014289388441853707429008538681276413454438442970250889572719390919376133991187522454640665913282940397946287117725635777115573594884148895741002955373700683170069160939266350416029545173617255139993830075186122577736711832384360083750504695882387814008560766909426435690734513966101844821321790792423471357315606823204610090326893524155285796626291072718733065585694629418122741102865851013797085054163546403753356427381315831319020350417058076889988184646241166773706422033942277307275766412907932218117947730761070742132057922823980684025366690396595135953618352897574237443842030551968940139141335794585235544366561803033990824274854352455691083693790231191398593898559017030979255542479756102563593417342113815603338555077347325451361658203799597348805194002322694586963340372474723399963720438164417952052001869322379156013629137791989664839376986522763557494906591347915986408717138064202552522196748203563446952663413443614337581717000809200130764804935722359987240235770608473525548325733439945988299332158352374316019175911715668844080910729448640896523604036825230042053522593502721920971123460810269462533025611455156668430431239133060949195517072641315775838473536918963910925182220441352348204205597801914035194041513407149713627670207588892028832420385481505626115274783142520657553417537086366736596700815549437247760829329541621855969086090331493917521945876350206058792263004764227235935076880259639197501334917955221729425654864593076400095480372842806815301490861862923368593998435212973071807727621542733618022577524681683419280947590565770298044481691488315219432028007536520835236147649222175459993886937047181916579439646141139342910411033904555594403978262223357448379947639236844407349005215584766363027279214556568103174622607393621207254141754969984936644000350694653425058355780283914742487670563305667140644491276299409972142017888597168333876088684686424557531776774055669693476476165376097413975808439084961549361147038997802430112311729161549849219506713191327634146506831785949046885211879120881595820316601836424465092472096983867382790821280960972450876087460025944777689054803063439330463577006083047486123255200815705417436637178274774799756923757698073209284399589444901163866480996113897633383133276772988898753306175497965118963754681889745302453406182002258181633955620356167231255714595753842391223306157159203994893747493458500777095377682372021017749056523620871831012792010211166694760806302740877521345807441302825880935409239153189893608512148472714454949590453525968481252890675783062774542123510974994698666071326193704917276942803477829876975985025343332789492431686931784410177689624089624900112370080897753082315845860417491516370364337891972635498563629100138095504057214154611053810174332682281309593431225714404590320620849860801440852703405417436616498230626225455195457921956576607561816162923894950692957299782788874858020761092276833709046259783281023830745026515168715233555755304218264075783274185490078572790279075190831487225774076184905286315143802668625550065998242294704043637327682383057006996549964968024589091955829054806470517512896595684905802353179096718106510459191114369293415131084234151897335943914171764279303459932463278199497705444072041933317206298000159166728039311770812138546471323551047953518350760472677369700744429098419284360092860517357265381574643604911361228727577571055490875412165474740980540515592208461564336596019434220633905873073999472327974801654320822798265546130133597312102166969773953176814293876309292076178069703558393050365772235196713156825075812872585205275786907290507690916868378417718712900148087296854429972993371686087524165812993763796108337350520535277171956970254490333701622196554381270199308774813092921794096373664075300115435852660966184856232616906134917780036217864606934681460552965764690762584383269194280687433813276428101483997638496114074036465866655931143546369591759457579382364842646685830581717613689280842349102511648817451420395588332077919664969199428052916798293748491857585451790415310371915245704265572832667227003698674164916376067033275462068910658581940549141511486046938324133098887153342066984468557604774030911238835963578042389536199608511366684164404708111935414478594822463618816681585563489017162463431179612492052987151474820388778312100839293255425341738899978083261560939234989913099739506205586517567318893376461132426926100155628727723038571788629873976454201223182806183557091400560555739379714360209819962670185571439728891713052473361692545515377487341539056934480515388623798581503048086995752397998920963584679241733424528656291986595551508078304320492303005967593855931251258194538370825198577268266911924290910535425454130751752364462780179851672592642237932322179253559983551264804878105041241859676694887745933930003487251207366485791374315288209824058099821604678206536212469447869498945710816408668159238456529131074926329314989316499621221531446481360756465830852287422879354824247793073174530338044540384816932028914686133524410327577364052067509716548456003185166268358159916702833289152071344447603220032567312084738266465360135178837657907614477930136754759981803303150503655493514967195284678055923824067146251216898362445857337393328945411634834840143102452255778351170642929117896927151934411480374673409198571748195260181999183027579195884700002750572425017383558373436670348680382395316318698199118494396184340743378049831787059732969864377632427147649791888672581395140629860884225850011082548222716137376159867573717445756451647803616278035988986959552351857974932381948120316098600337575249735761737650352112397290480885588016085945746475186240243933375439396545065913387486229188124661456103636216045556017192381050558158623986932272176979474620032063846099290977554684420355856989547896194445711373069749162485968663095006892723280865214986259846769016598007862273989027875022853238532960511708182810454546377030196183206448580949532350573140649934200006928976331381840046460188946718684269515016856224841412379341081729564331213962147432256655433763833581065180569134925274403867760907823213184140467448094413220619683386259267391760405955755065373347990071235706155148172564952747847477024778590369517596203548565942673615297320094042354990964198929951304664421718825883965791309576371890613312202048918323669855801973285996837083096784226330266281606627129246431836816342437970175938464663232460336794718526589392597761311202662463289193079611298724748626412092642317089731313979809266082859005336151012547948166216914610628053845596679909182710058741134304381630872000021397460185309853676856482948928587129123077928407177445993927148707026380586558330208517788874599812774488909780400414313103686341894527335853226473988067421565126611650656378194860303763255253625862319701031063513087751330071577968196602179795903989157515543581236058570665307539447893389647440349789430442916528884599624229914570966846825077035116877855106738935739970201109050714235950424523324510761018403635993824738353258079746066924930940928437442348650589966237668719851381999120516040321158489689971646803291626677010001502969554273764465608109699329205758396773688640222779969878492779047241015811288465629178128550004492192449432102034655561319653266002436725578936483206593699645979838868184022148131045367992374085003068207234864842270824759661826899685548485596803267004421502487187890430180905904879258778418141286483976813325549841584098296845346530437157592274663929519110220357612608606410261516860322986080695992131791417910381119790788296327337260816159534385347081586103788366578669311084784093765413789239187111959941667812260626111809923892096426406337871098558396888151376401571071191395731228292910685642337313274817534803216902343232607920016140014682704251478377484047723591747611002942430208947287523280698547562903113318581468760000896542912036188920460609434326847484450570971859534411852696399712981213821385665112056985940023414707207056099261223793278174881886041267775716578166459667012280414406865642300885292271360354673234614428309323978919551416387013007778079372537728804189601631151439385498190732896410082896853709293739164187508548807233742332454517463117087625092416134158843297821742231347018519933516601162602187538623691292289467599740473164089611966367952976162095085720933790202927190434544710917660300344457611765347567958561197014633865317859173052940344389281644269896143789282368442675858546127045211724643937106996975517134045579414025601980481543823605400362105004021249679072085794847329137161391726131355879841345333818558197800037036432194965387348876750246959289143821085628573119268587085409807157517744604051351152873616910380636980961864366532865621573839328360143721100444232417886955059486601422580801338848437488695272735028693364444228224898403337983843764717033830763838289250013941044511030222569029522897058503511453958432545883868060642175613009882694428812410854753131109160296231998469249717784296740866663639726720688830537361304275427354004921558407163217123194033709482217828691835505834072885155879434028554828351650540303626933059032518314341335458888235649256640949126364235547339442000066624877846656616587969586853913886984291025262470890546001437976154473036122045590975039527531398920717752489698363507248029234379960007695118514171190264463099058980957820718827698083717784237517757388386710655737527679357472148931608183448238405769419341134799777895026216682230564771811021155728113944658553794983563574387680979266619540532311256504827567657976538135595274985641918348308993020640377822510151244619720827254244769016135108055939497690479493710261051302342132426414809592067954850060455338147205918987319382427893358999644315683913918807484667010484863138108447848816889464268323176358056165184598460774647757688257234364527101657923781598507730692783628449059266975348880234465820929544471616977184015858603680773678703322628186233819235757183868499395504067632138847827273589736451870406584130344880677078505501980382571717382601324700214409438162672467266875122879387717421323455534242843154418559678633701519719181490858719034554724900358052511051631527467477908507668707906361543024107820182877682547256356399980092597848591331296233331745507391523778164645901048393115117059802966246405581033517084536070980533222833855816367592330000660709696188236023758403526742368484268916397657370441821985256542219740871434000840257467403888726450798737081041386949494681040187412794564171922946296185133437905715871739138401432243506404234882365118033165425083532481408105830018296020307984865015937028095329974941166833594272492521985910976208744088484614407118105733655757238674213252677227343622454617749906496362459777660255868854384208542512945578819022503508927743705327950994875445755865307402311617449292673789058126767702316082044425164377200833315912995689787071629051989434158649412757114565629571249029702693852722132874876274766269820807005137973313827133849644195267623869344757808125046807635066762906667494368048524665194265602945853631344776630362864398428777701150300689004681722441051113020257636831285801148998124827310813211376394041613267233437567167031846148412775563984824119588392463545496165156580115354617115998679808521341695040366890694935138007984165796170344250028487075581592306957983914453182735191405261102561480372845319867796393362754142863841840252227040443219922253085608979941344714252537658755353502991823147206048338716700223639015251486960794579188219988488934794018139514011617087903360730960456415672410932243283522187991251157142580193206106168650661226282918203915420352712687311921499554188990643483031289623889024562801394671371678261253836494007400868968677175466131549261323611459750179509205156999894632655006202424961821395449399734526561558561843023591448308041698709464063102758943282414291478709154308817145285416888194244423053729814633426805683044839220164417753144283153524858516339262917455053170027416497176259784219324216493476530649209949426200037892225097567605110816625676855359414967403963653484205988885291134136676911970392096122763364941404409671397877017847322619464042778410626722884620465596242817753672758862733416747836857051453066245527843413856029264038186428402975524885099359836544581816625305615776900040496590107057708390367912364852456920130684662167050730387170785521171371369419186260218837883264847391779136609860394275015094910598832030046475460358263584568319692715727848151385036843033305090372879387939068105643849610076209588461826634464033315999089603378092296349779519388888127007466454428859986404189444936244316127584540675497466339386496866045845500358882272899100902422757311305389902163883371139418234702863576728102939879076106014660729503833228499549541842471304836348950220251361913387403706784721047685790057255133509701294227244155939881007404771297176387821924025347886336856732247336381068452923365163018342137958109441675493023101721242382885064985635094989351026543185287571535245232503548537901682412048456204405361540404636038021260212240174962819982625776353822950077368284933504201648586816873684763744826124796320024506700427988924667045407189604286770929119096702004349345085280384226048508263035992102652923169964598783769980417123633339226532561697830833905947165277086962094640906949795167645850220129448300160956446441355165630738049623362724297073681406916775264905348017688220345719554961918044144715363017817565854987474879247106028822761354935606095085960941181747488888661956770781192796316965899106975925572567573639767899813461246557798061400472552181538340766450582288104734695561929692432461067180879076366306996676695066241900057609726978776764768252050143533889251218283341380975414575018695623329522896372119383632913935547380019827342846907499838022202113135975616720954085974329629664045793181323050734669066390508891972000432019765510265660683452676120743864845753007918650730433608817283509753691795766678039794317842235541727082342209371915852303817223559697146308159730342628106495171812474797574731210397627196974103040734058123715668552546455153786146898137843818203316317725365386993393513680666926340360376250491766182817566362820479576598864325793351140410255260490643844969343782073895674289253980606669219065607276878671293037507046242498907272178302810201664843617814976970812101535892662787519667647972862615618953597573708523203835862304160475284890504480373268686333493912383303434180324745811836261471178885326028915570171219346170697080311258110788036803428385789873020644736456167815692496651134463849548525604014883539124288648540176031265906625477310564549705747050961777594442556926072847785958462469794939689276393370382345629496682767439360747865396672070449804133477803119787727886071410430577716603810813024789206481468985388665592699721098255928709462430794620346326848352398689091367608337463513671664457506654784048962755530705530902229804376072625545135748603657793358071950245542560657355428323717735747705980648375001217520472723474436815319175646510543678248921056515846359530213292710978585348580862652097044089648615060004960479424679806559295484452752092939381627220814855386548182123007051062481314559907212996434427649994072438068642099539875760104137939438092925929328175945033060317510704040786123524347183089160037677117381229791257654245762832398722335917545764874959821555777841398767258496742268498568372015863623822804157201466214940788622012259778202338995710956564997238175407300063327605080906051093491484556142238003258255251218874322527701357767527135347454306646903538872052654478109200031226927670651876271622460491624446115732671292598720623953543758673003899033997115100771288632571947045387995894553498116794115354953040310974680768246649113351184136900745764498697000106885129281605191875083298638076287381345250418950902168298208867032714601167714852672670742217853414664017999858552278951389016959214780849472535613588517540041872879739430652961507524049640789056553465594811551551667150989340871866097415256965518092808414521839176002834592477005839518377427895686302051414176192066654803877467123743308401264671942043285815281510059975390225460144756453538266672948639871583240860892873982522470098071512014166785594024812206074403862369315713985032374458492023893680644608324127258310000386118240600243254644337152046817367290649180043706474529532236920546330047745629913278939948749611537887921219327669765998960238859387673020414928554632368989881528148178132129638908193919216431889431800799327566213522330091859974885847261934841288046970862608689546581154517738936348298160963907686044527871966405307753771495676580913926972684673445065245281810965464182674051874783908928089460136690243575604733476631822349337364301619716679812102849169345801830876189288037624155153336796698202899681908824944027384667162832100046002686232186838487726964356835098008626079893940279848173228756028510235416168576272108422344652908939732406767223109839729799419403947206485318781650980698877191580524386785865769193060115212971296486855162008084349997685552920741508912030225402511750927551846463250138615668721586958781401871060030615497183018553044340491803300483061015421777116264695645853628461789407043089486102042367803373622726706645613540584599660966225343134753786761645747768418374719051914705604365076142252844844472513103320542826126647094737984949663702594229322343903955383118162747154172460731546559800635302237027189911994155513993769724719854495485129998961597205021858871764090644383403935646033211951864616591464814279062607496192084130159398446259121583526490313703049390468117203541485846119224795596238562359005706445149124583690877559267011127948995667036825099214101783617775316139988765667915195529922749174230578589544516580813244369851191766176168371795659624193867341784054517232695797954231389387831167749673908559950962616771815121433197950190631192390017189283818732455867105431412823959844470970623916169664002458209721455348105614807516542232519397799969469007507743322300236607229804366996600886145778550951065898743790561097005646031009294102820046650851825990235051089391516092283604798927206561745633682328757198112011382377872636846008784857975519538067013203139555946933282171495579462321493874897915586023597443309521786022034883323265469128527685937131319707446779716006982967366673763294875236579059301860768543636963137850881554540407973208887160592506761877768226316445009267062180391104572689837711592001280180277089010572685954581113516594824511743359460086153815329810528212417152999303874255753516526559812122200917847710963249066392191526496379889144841729714440605587190920369394827076386777400460234592719370888618601810586586516662204014629421870921539055485664607006622259029205876452557241458761595633959295301729532013929055740843529084074636096597801977892454972620680237779329120744904823264729303998685514938962929021299957627803854174007034723591505625169401416067719716088765611484197052643290073550714093351398179263201854516797973562208894979682156758166257673622253100198306275880656209380713805281409831140630043522195525568657262107020436159064142956275173607899761319222122887449525165108044886279332234071287783278353476747900585750844604594261449052874048836323615604629019984187340313891062055978450747569176401377954615233426281835330459130754958035364336317163700489111049224307363451635249015247672018597241108950326504842995390468949375911245416692213273914966646484757105742982055232135143143818575906449807507528008902817665298125490377905970958627151726115426028782756674541462498949963207345448932378035479943361486955728355351563727032485230450507254363012693540937019785922035780494036129697282606872531872361912949459422513448492164414294035088610737856141772752838548161549155687739585307739056222973652328251378696643228007002769450141665085605006313792000578542486889623859797337128404572337441036485715119536407997289655513109558130339230205127528273358337093762366577972895363436771215026380510244915900903866258531995844446247711877461167341090817129968878109248558859451541660100906797944137900077079063543628904312919660097822204282976687470471655138480346517597955001975063464802061794645366614228187162592074222211909665727029327070516321203559855977305467357051316696588697974731020541613425327745278591116832266009826188180914924317486855275909486256473512627161448195612924034277652690216585783734408289386248162430658871564268695023536323672536878406785090123960890669868159661565862620903458617604876564429523307046711937233565623699683731361194428205332539328919127966211219091165593136114972081787218868943358823659835591798831010476856559071616360846448877549763673762806142784754324209754383701427286278396048105724835360815572991459226476222170166705407655242398893958977468709340079259796545216586056921366224914522644491186608871884321857971585771580647010533102963422262774170095601563544328886937315482582802644883116879129923011530639544032102727720658286182623028312924598062118632314288958949005250362653153612706479023172769379469545156020602189751464210766469888188070707522202982662287725279771191519833474321780204408918852736302103752057544112870471198675130735702732985011179672063531933850942370174681333223617677684992376186695511418317611320485583299037998665497673185087580747447966617961974378587839960622790160132846299777672149284902279289034686802355338820830876116509750447170228757267046713341905968383512618091913336812903445196132165760172251851132624446267193136875890051937790188465771886234430848790670601259186632496031820805206404019210097547041120903701901946653228290551964709606930777702534509422608785709639135440704083253721916719012479937216259773436207108408974465888497351773672958577345297651873401569877140431917959435339427696228379120713919775138732985879625064650070480260158410477803417208091754612057714352625217053635300185127236060911589637170775923541644072672233813642547784369125385229346023644732434218761174107498149852309225962272780695609197253205633644543134479671976998954082692861290745708000704424749866182062508042402946537413091005282016983629662261689127134917275465566656943263270711068313142545973572919420533919390034610449071605384502746952707920727089507801155583439113046761748002738737828199934884357898270942051907175413874951470858956676587277131260371705114843608482771468966286459782007771884452251525482450765749551838366435200120826223849926032535987120188202533271152080066788388904406168413508240615506721518955812480037449040409931558877821173163509505820845255323282361564473425132079423160257489616120842947533665963402980048696250118901533824554354226645030699301141155172470744317841296471999910415950881897714587900089723131315668011279724477292872895289757576663541722765586864340883314347238503662379526631523474048305245249228267363145002317461197524827234890676139978095952607802540144352824042941077000503930263759664796936385719186064831721148636203499009018661068433638044024579489390985801236038324876232298378738961696747102893815895340304548016448522327680889104800299674995234026879058116140658703838242684488726984018874240598508846902131772369776785951783627122304980678188860679722062735386072994736899947733571391896578910494116574221471960400103806994439680343274715168105321700246320008407911109729094810503398374186581205493758797679406659233621975582494290600984774821728887465948441638326602952890028503222878932595228235120727677245396050105262217489744817089738179635157620754683025705152668491503512736091738142502399188467024610178832979727581360571760278491967775400966781518904071338074548517167833580887957183078798693047686411679161455009581798423373540746702328683925365955160378201510200396974581724496231710946116712321061609636895341507136484187399844265269916411616118787106788676863812430578361922283622815719672438519681747031919330908996468891038498262172198625680138759449559790479362184341927179588879129867368235879454515151514358548532123165688161082893123364495466851991849883535004092309372209278302944803730225236499213546333772680274946356051659604895632584901674485793631681750549285780010939439654270581618070093474131889321010451706132497926421104792638401143465821809040933769080557387855918075091851453918718760891690469976502957261587148712151789033055831253253052423404537919428414821495794890810278327646623399020041362193072132924713673329161084194317467580285044449385038208918677538623827414143243051668645955876160820152837548432365569175533804855051128476933356710625756772157632008265304218169605018180096362149493800885207968853308847265825062556099217534917802821891724099033629424814504058427880890184865504689385149500033033239366395162960342101308068946469979317133668547389867197247663642867670798388769161309240766902291936030198109742959676243584538679211538611983949519740694871030641367180970825991457342531054910530737796082416810619955047745927985802176109062359422077155951466398495216722681986405937722687229694190888578273994770801954670613506145059143237003630633875855604023701854776105368001315356896350977563944141429330839776943344760721148605287654981053416698550647877741073204119702657500083253307688119894143001839512111809777695489288053475222745392543251710091963745033556148970118706915588536743818782262027577349168173452952620729107006074867024563546777162513868083466040956559012297936952098468768991698603015674763222809549939829287551676672712371906586032317668805668449361534282590491737373992957293060468446490281733604690196516946907331946583158894934629657316656892126758800926439909600622477236595078945712444093916486635482204701348335265255741070912748193063715724193972863033249454827222454375579044650003011674484822309508133072782931751533893628442754840349249495919070314773005844653658613183763864067702299620495533029970608633934268476572916343696229160861511808957371466542166596957865004788789695554973204298770755925885210612507576903862963621294522868034606427961639249485067496909634783568467916525706208639554173874837331847340436331587059958425625211447757308451194385630373838316121681123644076033097541025227136852579841382261273556412598112104918117355964929953698038849553847682180011259161471100430738390177028923442293075009586984229742825372759596588210243843554255339702963371283025622476856713299965943189532331878285265976102469025092867078015645445125619827118378948986381240716564737795752142654437774802241608178306483514748530455514483617112770659623785736563587752828298002633993508591639222396821261998864911957207168366417503416696812051300726350339257077565164393924329643037988207506767552944140053283107675963111987858670376086564785240179985434889835127584312027609361227488599510110763314805053061286721957777754355218271190635666440125205736683421398988105505256614776201736398383625963331297285001275767149877143658361277846478791548157970469497324609590867732801677991113191446856289165155896454936450028167041086732249820137446112101351942941993315372299607558860881967923219850976018596265387212833438079649623108430830504433358812736910678748880267470116147581903502105984264373167127220539603712871239696186423846860373336271959399620678706712127085280996395399153718785428824714898464776520762568711959722909266114237404891461398720450159634859112372616398896252773579164225292867428079829165450288863476915430244757491818124774069859253062301369982257894661163721122930002474406761060764268745655012071989620034271855173810930296610086131198881139978415537574165477211110641023732728075626507604531892865477661474354171144751082060097159973265103740701931493256515661228248619840946499743089224895268867954314951066367992575551528524852070686490296299107418925962077323709849431755110359343964808999134152453343185123007423542251453218917729839160228923179621518573240203127638782487233719114447038642228675100140152557826714409013785515026121882724517287727923411113724066504277402888604034556555462717871231143136743173909988378233608035370020317670411794333011545236939060551715642965653663253891429358134278250743865268254435000589560837780243221539198222699864881046752646722559008998995206502098820336589530829892998383950445869798907903071939541852920193876377512274502481534437710811072389935384931763001280102751701283202745059987294796373491431619857058040988185041520975231214582946287582687627687817246846637012082361529285900519687626795181395379437789545034520419219072182464205730572137359368314481773410966647767076587439525952487275889718963228138173721114272040314628476407849076544160585090040682220583170884459342574311645142820090071851524190741197377862177347214735077805004207578999244552986888144010737945233019008738581466500158658187981309487208229074863774896367272557958784039165555307150912693792816138482123824594250397317726170740404187766201184684813204654739771588676622771133750970517713244160023407568047085359808190327572403479976481922971515397608968366019096492628140840150581084617038749146516869435834281710847259916883922040791047442089278147507092339170128267716787808859281251448742614614314324660326971459736978787006362308693870485234324781533809630845602880852152577574885919615469730645592664733560232659085111766830648087113328870314774326860091647226629751216587431367705178735407035185701695056964288876996321966644704609145115892304858634910993274223271239428057056320468711479576969957744970764250957941331496995388384749062341934136298174272764610331833277131649514743691094938392905751682482092338873460972341760046303321037821355265062162878121847947446102396594705033921254387972854288636918647467058243006384468337732969331475032682925440458375197367264706966425029418828176020167427943810751219209765641236218415332598981029227081914222226813798315838310603964925800333372219895953461346001109325992943878503460660125793684137871046378962007071254364268190962844833578315639395441337669229613935765567475565644051872126272817184777182018548304204447788109873410955035761988998348124260002982077295313285751829104884097753810214998764252620648143867501797959346141864453772554439484086214275995873943304053218084576079261769194563737112435985939107126224235014232508633559488869683518760193312152492257450119738401336632201930051370936501780416049609999584633055814139476928988914632630818419310795891769244169307598427998699017486452870002760426535224282485981300857007547781487134375387568118752178820498961633889260768025373725473734128083458487208875250814479269379433169602793426379031123473994787383097196960576963602266976786046107339662180993474176768482303596637159863043054564200190707007504535657115725261854665154922496547433274971899911632725386759798830639198338687820081440934244949057406584094992494910423562993803069177077542744152858912212067226701438707522986364769301825026314949121571665853439558575208354192105313347471560649218817630486588447330121468391876473810966149933737182409464445147203451976913547267471079317396054813201454142103181617935887561278941785942962169788509549403072003123687343906746963733482161834036257465509858409053553980637387962901431269081742892863563579313500445803483415626506922970760932042342278830696765798881795182133182196895102166291732758684121855105686025056054590497918507030977701715420742950450964007389800307387062981435628601466899343254897819834688569568326285705517411683200236932234144537469962976928013060160870513666313337496200879867029362944929406929594310913432006015257977303296578528774725110561315766411478137429203834822892538319559065524137076497106322002597154636303538842176939082266640998085161979937848875403568162911530305842633938461143951831119482074446096572596487139328325029828477153782888625485438716856239223398338287980883655184072249295445817288787025468656907005544385542049000221476163419145101587811866306959719526757425898690194427999764080710705630874478062664037088951394227696290409542717246921246709013097106098938407552609959563238389955475121482205401431986225487285944212562024869499126397352745890754418852106435415484552565668835805109660450694363114262567587060471309062463974067074488355795337348058726438844121992658166730703566353386283432448757453527619334369238543458406599454967201188963171440503894543393944734624363347400167652017899692282801857142773125393174875572775106994149185828424288290137906571363944997775380123506939645649979992350546013521403527809815935483748573157656414813550890078100185951308771021928886201554366993450901198045602858085993834188667454825197869566794359211343641545361071834008443671060314483940063246471172912641069401030506939350775404000311778890457863890232791762395229288622666195242529809002190842108322078239257709333312452749161645392761594746804309762792499113279348877055918301023409478856092053199094906097750205371255543285220552348858380721627188530610351413533204766280995514687131392226723251082261545429642809483986182656377446274364153393246428751365593482724235339815786734717049728950948476295207503656031002531508805128642412528276933993907743053244449498507136276526803746983437939495856094021543096793438272606817380833198959170746252671254806230026687381399987054467830379234834613996606529312731211719867298388373416016737149003508064028959958258414861282633477373253847797414041582889086223775259417600435305563358949654548943552500554281497421162453127327822957046040487401263705020026399025883772999960797757223328876238033102884010778397486420651831868466554639519108137841766820565423421929873847240264799705499173194572761166892654709661342188679368950222104812816681716288567378372649223211533750979517570076195484597312756959838151933896707744144360805513081100286266570423915808184899759584874916527832564952671392318614699182377785968774757118851034632474206506594911087091247833423024142537782897924689429471610164133054371734985443570702599514645275038068960329235052307599684093822820807093466201456124326041437992725144145566873984615930105289184477207307572846493007957573730781590250778675638911153859851645052303748141481055437563493502106252207946991809661083551085696847152203837795492653670685595856435435511142426743121839635563243630436642212018678452514234691563331305905722513929141064054875919733822026904998206643285884644910141376917368609256063626467782279697072311925908396727123326544854627489163444520012378097529819712579822818913929447208139853109269828852301815445079862155995609446941675500763929791877817207562306551706015285975761714438084160428376409361816105275056469811943159430785533608839231930910348672865001345420059562215751311995168027545610312647348140578412370202238362644786573967741757079990716877135428317318103565534846791656614429791693776555659855838795527223224259567588379025557487088595062920888653619995627906805299264944559193059661438317783721839855560511321083988363901140239522807157957849129617991686284216972245691092786762161321589891747368379456182462409994505659525834282790543018861402077095882911933655186677017307488912917071856976084486797101853249393572123946365096030784658675593415719256704901935443791843901575509036257749886100254205061832853907253846478290669826041328054622041278440242830729822148904592197309004218671733855008977901532244779975028599612982978210380249820831604356360377546190636553873554140996485199551926545649547566308046777330611289167843769443543110425052023066061746987957753775683130038607331458149323616798974239280594484752483983198456350851739871781039575163046324051301564949535018733493959113574911648239272588999456733574052093464461162135273830592591979639002394990883266264626631834111583067519160394970370174904930497198145716366033386591898852940798113862757130688836493508022467889741658364351738334224064457174632778094044586741930211393944258799633225988264385754283529021904763484952419699026137899811088113389898107430984125675348936373081677661571040227616743219859129713503655735480469478542577174409888331660667233713352258096536708067068972561990299438925904287679926770102270547804954488852439732358014166899223649513192014453583785057162411715941465907682859204074444363773386811970386413339018303159191104292588711132087577720047346025675881453308354619654749022428154468724546736243330658931865189035956929300796640647535426794807175928663013042224661189081176556739574912630664561549005793885313468361997616464151473348172234395489853300447180591377613440969385304348031414015970962830421952113266954633044616882375705998659333217279184370979163529355668208521414478411657700758376304936626074457395934490866375201222380585245484736915925149526161400184503620886634682137221823588461810077337492484015110785063267483410822092225178520123775557284084444477880004216752325332943423540252700957139351414196576839392632448939044148366885359118933531982422824220735810590093470596483404975945691376404932556295223120323459446910297885859751594396396593395676627095601434928178199092819724616580145923436764024001546154688189870095860794586636743875970177516032119990111463827321462371763433848332679601053029120032106772573535742071218688461701899137465723060475643910885227619926025598706976516401617998876962898858971007630042263475160385829718329765672589626376415133200121392453861965184514297745220800823473131953847554986078649373739090245062626546090277045350060748760473483033419196585282684488044053823447509198552649324181021794444325651189202416451849176021350161958622657340959269546569320738119087458717112623142031033120762150437958189968370141060589299088464208674776853672131549559436711727948456644150291704555234215348935448267476834878392156052997645856868695726467011323930696425823865203196401530268190889741748914461569977849179800336093264055231542632107455834309988498648991618971240959125225095092732492825433087345338938526874012786831263594707062827369222333994967885291843150901595068835946195776076654453868615410787621453386834323182539539907184352431830772391087715645655452937445257001359586403474337063574705264328038436594983869227631596168685528440844587419365085726695216315043717782575360524256518077054375721122116694903145558564386535724617241311382986530114462215762437215559131746614626969911923807730515006248913438088239674429571405742246666197143488481485121575923764634008558523711738047384713876468681123693340681652164097132991817412452162092146568844939531875130719976401137013015384615016806681403944126818895642862616799470158789730955506031689641386478572932397250723304102744209691014272493586320087706630919949699708512065339425234494071216904558835206276383506763724762688142132551638828380910909156724668315250831245130841527794492585250141412143052960790135856910421417670408437536869824407961161027567821482223571108239566185045968260217764263373681714916176982594188684768294308680640723745162051513709643222811924589225992026507447021483276352616000893241077469913168453173647721553724375071680737046649301427234961463375296654835249286094669409029339993528031014092499078328681289428049622160164975909781217966950554251469132126554273385976263352621780457333437166789565866594933785659590369836148652751315342913702458166930170027504861551783090618711301226545727389148032873348723039083176433966059259760953214543540999290872144752693651467876191478417895692317002483685150146925694679197194974771893783756708169177122782304438811998398750266679195105331814126568562275192264102733716774285268671674251092903752541731301071496675388777925436341969842466429829787426070654177944927390212099151242115717670662030309913565449413575764331917484147411044426472986780633182076005809274526524309993220230118236954750155217858129802343840535905617045069455724594976697768265814941764929899887962080026861802047596574338217434755474157835897868123736848879933155597257482948823715921564730320946794776891609618140350736954868029384656584038756342365076074549926515548294438688393264702263810449366515971073817743123703146011533961964619129989389246234558200478665138263120683598259193067241737586485350436891540514042587390784099504426254507838548725746335785098245422363025814315589968241197347454859293467678777925822541292795364669204743258880889561013878038127922812007823995744490225779759820071800667901977206611119002997933349095367111316012954592374058674686219150217053910910964840883156548084699191580259581735393226719472673807806184637782913996599462261665361826780712192339098489393632756252526456128756031682289555723112844516757261552630944806963689783367432180511102403336025183736118474606834119747697792121676272178053642431038905498760329435097460030494802588272104076230092561625506032158902751723770622931219170465698914749562140374766721940786961915933942172654702842677709740881125951034465615490248407887196473273059608698677152122077948915874790029198433177721791505817392337056528134528721287395295954087448366216272617102308524738395989640286215148541436985029377095135413242204713071184139679623577684918421558575503484943321739819758452240412044975366612915564786618136483507450252953111635423707397614012310559839858357704994616412634737870455300194558484073987814856101941179810900468087743282304209128944025175023547569669455525287593302841384846728610306086084151902879543869266366447184782333149898187904694268146870042752345384501815054681087283674825391827628617119230320843415234382620330915710444232722501075528287393439925871715552105082679912248690626451100398562594618492102586918123969051949974920809191807735224369001323381298360563519942811225893298846902792594258963949677224567201358654441721878531414520213713635890590123581551771234418138687046834104423080600362228649172611052805832870843735006057287493479859734195263767312987602605058647496907808562283517825801489886242689507142902778044410469836409973138464005700191357208117636208362969841359591404777452520908655072689947555655620865982314280457979400206247003557391668447670436362416092499146311491871198016664521632617286890167121383893384296940937126222388521892723933803340470306265148474813981132255604366475643048276814793038206383204975951485143291478805313568134261544428771733766912698152787004066091461488505128603988408956287305150597610412243093703745432564849580869543568389637530671860302356947795101235009037108961859378434080689586853984238388102506374306834221922508870081791344927399704181715239504865118454347869071819133032113027000148445835628452258623292120890443472635404801119160118050245806232101401355361546346117549534715015445849962513990847517539662336973201906586236590003838405044629786904670685123117177223665719196236108111575116074327545557160496754328238729545016539733112470358873390558246731409805527802599814921782253829494919799247818732208505404844081262883084309068331828459429923661871393181945538535034102679680115740716243232472619803749916236554133807092213657983177337355619750174941517950144713897599074354792018801831677401143378219700221458745827858968039109199562080087711220828201047505243146624875938020104179184124222147159893578511205728529570549646912882265696338951285318141342386206839240071437649983628736520446041086752746980081740960014777085740266159321120966701376393376606972880742117815334006716154577015024228404324724931106198103916435297313585982545359819374472024725702324503027791163582155109964012490156667882191620512878102932570196925903860404798268644708072839610799004174902680553504263573602496996160057573906731393102493831847696602838427194554685385338764594910124006997067581478312364518347065952876175148227241193689157239203968946240606059690602772682233120914040797616510840106210446286709738184735179157858520280675142908244823260345251757419019871635311460022384365550256633385454289062061653159745633824991933966124225028684046531581811508822502030243056459304243648654754599668293237292320265201967351825791167329858344856609700614350927069050748087351539017935623898260983985453778874212953338644085994793531018504304003953416204596712636708017308726881867097580937421487724916521936248628643222356536265041106647968166754316091752405487216971116711932170186434529192907618956617680832454290376189938480645701626365651743456267992155806385874244581080110082937873235651724367045965660947656419983848850567534271595684076526801661180659070925632165022428341178665056545080426692070418685745297084419354617919117224965833994771200092079579211754859947421682362589818327966778270591031858306760800934136559833408973271840301904873466490754221455414074402027366057163743966779642603707886754096004618081346631482345317185884535980305630831285948960695810729302450574646673126630973159152379911075643393715477779389660308528464672263883447285162007265493276391199028418485650894655744983572272224074057773030950404800807441288001863875522008484429348670673830084039194677321244213196939518568584142267450955690950508525980829001856142464090099483891381652677988498628476139881885897017901534160284555162385827652008687653571942600232393472477215422101043604743593971925267480635009746186327891584055063685321555402111508358949233603689062512581279968818790422500283581134842157732607173703531742209073961964163088353916913991216735703694982773103358358340991787504394105639531471552214128488791986927772078097212635218461434917895560055833838638893491673112537370440730738986832576679234138830272522401712705598112804848129787975079034402089887487729933467045133700527207441232545879064483460103511759553484865924824585206741888360491228735275414276357694091325691998781641369258376029618433088315796559761217706019754854223198412226635699978150139565126965649499345893706520528897485430576301407186586663291238042056199107464991947240501418122736245044332664138549781169065910487364382616149772375547211131759791512814365464207770547449853095075218097624657840242299892598703709631000027958319212963164729301962696669794291355456571680631015221884200977752554326685456495087082131546835185061841536402338109519691779073038721115325960312867563326779004087919545435342015841630202903606131601381148798837460120741313789628184311947037960107788492072641178718685699613605636480791220924654985168642306241675006463626393308703407006757764475487353672214452954711176066091320554180495660094116234760583739753680840963397848799275627469270503292467711859987514069119471384150735415972486658258706294237174881475758550326478371325529017382459432136452009844382837785854613028999602841153505925425331496871954186714121500733201641081730324711482502039154431788376503834410204474075328990680740256782615939564587008357201142309023881835356817215158043829269949864545946416263269939715805668395318561017523309914644798352383090711808999884844887361052144943910472114043334026148623278468770633431270253470886506894330339890917884675803938190028119268497974755747590017757559803561714668574381182139899679654363206123178161930793678995568185167956226577109637160803333799581540481724230277817901829156932184461300338908550919068524316643671839194707812680250543785004355920965361266333532541823662763833496513064560711790810280180235243690031085583157988428609987682672528471881077567359734613054277443521037270011305136089567547832739440217741114360685218596860743950940956997646954536306254803963806970625820478848503897562898539134446782152184058333278320378577880396062183890390553603884888199689607067231586967920299015766313380060689279645577535283234655457716361607258015647929807011462856914072522702979087025735780263932258302636164770140869069874138066230162281194836034743552542254691180195454564280813970284728140440265672551508126225383746203226314216576080655387759009218818261265363009343714325318167386146458531103439749005497864744985120268973039323697259123618870573626059945342345410530406151955166610501820930380910112134604455806879352672116151065605844567477518276127270568615264036108446289526687440980412951722766968075413515525501344231494224135317350031035348223069356962620682145039768231522275872532750291995396032225519945019685214939522806557583381950936221695623769075051331884567919666494514065744380783724879534304391187329588289475797428482827775462959477579849548983240993227308889726051302891955671332820502393320960321032554120191032403693642823445511928086643245432611853785494917528126735938167015072371578920008514636551949419879609576064122917372695437576363021932273069267493851175866995300800920849030660008276447304520644184094891810479911279727044565352537802203081393476456524481104331632604609912053823454739524305903283611506846648030071504200740780702668901106243501308289786754811303659842920760670817043692538658731576996781864771019761395359118940654771945532070206270544637061115836545826474123098647829882468867544324088635537432170478886134302872727385393605477504257220025778715120267695361227082831725387343637697091533060168842378881060009447209193542081619923829838045639151328815572501794268408822883989174257139198332595147063886928069665375022941648850905761076201627409817523036774829716207213141845276825891308913123706173846689522814282042854543480989682303833265254549656388436590134927914162418204154398063159577399560808457718949576042266854924780532123589011334466133055679601561471770870761662327024210367838062445701159526016096461488943205418149503082078576408959933386937237202821098522239688344284809603883536839056236002438705745670888821565749164273756590394390087121955189372922040094382783892613726867950551825893812552557434012235941823772481522279114664277164855245257515464132488117467540260464261243890812689006761994409531768901064542367997503623443383747957603399987181343864906148807257964278207289623464350230974176676620129755220669901000245511284749902209456255444924979446823235266003063937739960273881944008531897403437959571829204072462721248278563610608429204555292160025356646110852043079987961755752591079036076661389108857936523021118644937770018884952841101982426394590457277208305193853471084140136419116732611477174867912802650325088677923004710548045956906772686553384022504686362011108045680070067000288329426146300549122347538759389260726893498785918212437198551646673355739368383373051954624498076255594864286303765675590731658753029949135528960413445711729474506702610647416097202787756081686760155435757700516816231096708289107018939896099819209644690941991409524662058766663741465813947813787904121319226951801972368343746617975955358592678482893007414415464294821734185062993247520023522248534501190927902272551361486473481460165427504945196369114996299063776435119641074741778683518632677683493190837332956480043955465308278812145517388007428553977018481699404239180465275205127370143724716132817355108557909036666455629168523230337490794848485358802012780747257581805103938309579939706437876039613109956051177322530147913650602675233967685929844945216778764609982206645795247307303365753917920999525468414878010398528674616357190002950907435354802645650705779635472963171242356398597429956925983661924057354570713510082743766114082535402436887189180711818870309904658491914309377622397143366896968721943061612913855787114236474388939057018748600414724130692655039686844118741802841793993543191080549502984337417682981109133114067592625709037821852128781381854105326692576712668611126519456037422092477007786026272205140390126959472549510844338249220110298731785063979626966034306871606016813936547362067044009994175760888817859589218275300486027566144465187623724623607000122249430090621353860401420454584775215459659053096634524618460706647981370766669562580467925297653616817250172234442086120568869107585537538898901422139115637395306288791612594333744282664279051971300045058795049325532275856893378503613502025522323082847683312822370445641394254815892713599391899340497045369834720440823964107807996969563697662095553232807920922075464575452532896450854674634249029154514306092029317255321623818564286479670347129917120036516675034103522752637335821277330048174766259645803209092363920723876474967557876717366550106631533120182871737370092747710512826346264916798275244574939704387156305112650659637967090148074491234595520652124369797490691697849723101005329311410175841902932807729121470834539317649684771452527173417230685982494781563213188124227616641705927878022380216508943995962994091365556174173570008307521693600859273206320392716962161497657355181966287293779568282498445281453184402995337748870436408496233224758835287498802932136143646593044721968847162556671904685371633516858627702401827335894470864340032082718499311484873603469870788957784762505672883821533347656263491263330398690863578343035460986391511939911537900516023206090165091960283070227949348454065159418714964766096957476112944767666129161761176534650242218274629584949331045212886801416979263097863139147310283267642171458237613323075511911401819698323968739513486422530506775799452778412204988885873648060059901290105183438053895571320278945775676362757276360495561751678117132753507609856413431438984291542854094880662981311852166577569907443971863843492618446417374720995422660076498082158702327985256839577041932739442363614351196640642126535795862250796080133654500110824081380715829987878066201206729350472347449823828241631215065323538439758032214524730802475666423737137509296594207466625501890665101293631714713196336462755248018935013774744637773440585598931180629829019819143635386236648970417101773831180714319958157721451534291215911894454182652226435339949001704999492784104420419721508181321876490437008102966797021154785441585160372045495500729184289704768618380291695710088571191232060608935635073058124291766326605397051581460135633238380990026556013123804012240557723214588704071206323722254639400150339245585252060839661010599030724097486782284432846625123466443569697655670446333318266627676058721125988844701766720796932808209974481355256964713635847870454969337763879726792579839553225279067659347320058857813384202963743883062672218730291033380243921382231009223047880025891708625545465928055424070127116586114027972469686183768737892626848399809443219744326515522806162540439397461238936806025969065221621349273832692007951330780036499084585926922390309978886081302860250814077342237103692409948246206970414004207812712980325388384749210262033470659462341518155696417067441810928973924351605558905785653087672790566534743801768812466784580796472044964821501225282790332282027394795431276234677354433980118898319920920295608418646367880530857111732716944641701373123471919968260414162795849567387361601420629475727881752360479463767074408455176538178357745184604806144564924398115032899534459749542844122652386955450420628680427402741455459304690018680089322723738945204054483110998200374018079530344277733061621016377469269289970404018134762418933382817204286514656418735811746088456950759881092491266034914442203227835458612753588729689832916985483765683809737874687637178568963194368075387566358809628771361538468092621067553458216478111643929633819767546691767576868242543698224782088274390436625403666165517301159106793751316917292942684133549276921080239264574608067227152443682093143371829624821674999140410604671753495722027079400747179895011304600709333857677719327249299166185965313098143084130792752490783599940928098321152581236664647929385201694622040863592925321621322159880683452516406320648062894067265994754223852473067913472615677028674559162767958042299660017349754736675119852875673727103901617409015885255231096470056050389283886792988532010553972271821244827686612029628641956888627164515020010350504946581123134679912281796626452949329803487316423441988857288300373737440885249976936084267572758614947222514652366027479597637730319233844635132104981081851445970961319661649668040322022380612517629435427843062300197933909060520276144207199892940806006494222692640744071580863281200044794877380906557058083649846196676469907987666478790831214156400479354922903685773717927718948933859282535695476686893441162864262913031608847311788420587116148290644189966144622667689636199083692579699943254109463728295578673934411118742817732403058529383696546819098694344992543950911200651876596639871974988361462009899346550752738636616094296257538506384439764068658584882496521273633665349529918603728843494375855538019457827817037394390220235269827483134335732725050433569859768991123485599596287432274300702497668990239697608812545084798390965030705773582305097448082642355187828173033947591112806292066122464895506369750716952974511063539853021643037717649761589613953966334402899955968277408007953316371553441093439057361185475789907519439457096025722230992808044578419731886731249102334063131736602801549834815309544133034175643438045407045581193726274383206042325623418730740143440539780118810714780145477414342287504134224113228649405127148570480642775728363302966464527971739751368060624891181174731683895323650563140669586059595625727490225622444723300479013780936267275635446171608136084979481593265033405518923440045186053270499583385535007864457965822831680876316754068295354697385301267551500547084873412289327310563303036452673353935454750849785388576238024434688753781018198078804604852002865610892558827170889550400874574367134361721071474468701402288424867562981837162756381867515074260028968105159139375133465796794424829091276238923673252263582688274872840265339135654653984181020610564580285295054857059738979280329110638346672277841599053470718450643126542313151208237371620041790810596556392191164000922893481688340219251515232551553013383655106603957679482847583176331136901742285430793829359075743863611634165203029300276218540141720605886149836599550795330384832174033364088225454104543980009952137149985438412004597317524630780564702095834597590337395252601388307385438096713839489795611202640198831526462677640458288719023569680256860061005500303640704783157237774000745234232334171103905768567078043373840000338488579441550961226562505571407809452568135832339691859808094564035473468536972573600374237942727007719961366987258041379496187207810514061021552015265464864766013439490973810489516734629783078395604572581405575493948720406562449844337852498702771457315249551630243983560611134943390791995732528587978441757176378732631685341394372677230578111617831007527481047443053147256733991787238284660032934932612737887521892109694680838640143252666997360746740904019289827247497544538797740183384853718124608683233299443656685267120705829193056284002290151048988198991187633615768771907872569040058797854531494890659609625260176390973692669272577504127013211651442614064671057650848731298607986662442516203325440533211980045098496898972298365270908571913974226031750552209279985237105769901392619918234213111492420834397104914704362526004631050961288067998180949543030402496053809403201191903354974282518867099170493168963981541470074403071241284284407769565216148517255487375411647728217499673624738307763091897082737982290188667952640613846102403288483678783745544191097783480148475284820775026447964694734642823880086509056623827818224940570450864081758333996933073856505156494835952281932687671939258549075520389849560504124197515495205788760831325421609947185098699136744831146307763086998869887789873984417387082298924068446711495225523008645166169769731615422161509886553512291148785487686276463972224607834418805899685181386654941763733750916642356827722324008337081286012854757612183304967509864373217227731613203757180461587959266000086644271671089843852230551720520184529420645529781723996136278789137435339347043492118152312763239544136464525082981371516489272878020669770140614640578184183356265759606100314173987325545359951911709752101567366544027927678727654317979738605584047191690331631108449814722549233051434897099247698445863650354738894044281250937316517150685191624335367233035416565405945508279774952214264050689113352923532700557932387806073425238844317894817110036145937591253138082972054982948680592098221396047575197833977125040872752816815168242620662348640927654781293608563036830980732114983707677142814781288841348976126158183729630819604150135873365456669792702100185027359052455411382877025609951896013772094948920324782038630782290562491282441410509191750779913235831086232229946532112617190457042185093042794763591851964394164682412144804089764187366109189039633731193545586536709360072384610031378632873651571911257817070501988429581682153111324627017613888615523670149340782753992835446684017922451782226104724734080345621778244676280899142406695964217404484366927786711259157729856612658015780724798484570473087729097897896397073579952992725769506864827273202763803916897855591719531550841482915827022073813857112151229153101253806432827521547209941700455498230092618166362375356112021834079671336681823936257576504661305199679911995144204807225709626350891239072309209027152224383044817510906385181895895060844459764508890726756668439334593436759502946750801778698522103295867375780652006158608057038134362735083620290128983287099425984527872217878581416340038821128615579377764309065242792034804608856934094506980896401809898130477305684545404099479094898298500580255030841822767364500987092968643081817788684033784258372787809717415038526342684681939288537226324841636945794960878125706412883176232402864490257972299218583401559794530210517691581868259241260266564549940690715725281841413819301650220478914184396021922767780584377121261351443954496668998625894049465467394428168895526066795077016463236107893344763411759294698991507475670310878430385105565377258849919901497677140866560679290036104719571242577739556719774160586096527129265892703123424919611769853555711529528203112948824718367989172073992317056574214721967861445591796853599003352989950319713635549272215676114688614942767332624230923658465840583321880731221758865229634609238225787851744278481356740494755629766336495803862712222527880872129049481760838783606813682155406120114575930277572356316562687262285501142538361619499733629994992830753112746925882054402135677685036730187820364758390073174767443876089567464362192746230108453312795541839478451850797046516216840513847804495205138197846774453574349494042934609382988630533091063097485708966221926322177608869823506058096760835584442693342902759703269622055976752867775105001572159384359801834693090446986024692254224337539088187317843161795893200460809669557703496336360965749395879581834707851536860407701749922087946899985354679428471630662142428761113263499785628068912762646800453197547279734177240597266535252518976656229496430374623105784803676279151575303156622136686463132043635759634672459718795305410525227557739646248978995927358591891610023476519371168415310579072201089476502051368289982880870173724558964122781132305877862938165546107182566291887578866372737697011435299415839034421680697603082095822913058934062762655367334568180661519557529111346112929657752199213032828276709744615275398376314026478484473837781547534865015436985350409081675419673312696586670510997804752001301012190143405565220951509903527300846434184601103681971399720297393165190038747058820298640592967463048605037254044979422313782130270900385845928731967589213193559870971721046444929211182638830298560269923276073623022125679533370577449163354399122077502005518731329730377652052484850831217965214520548957490886465092368705696254984843489765336767837987086516321744597865791574963915132308922577450309503078716742384748797307036271457316989526570495825286463358356402373091194820056724030500823966431211527487746844033357527557368183974055400789463190962777855773034715363087468579710312406852666681544801831507183107985855999044136548887796879670785613176952999681995566800087238188869378945545459021757860483442366601117577188278692902086286792380696502253976099370006819802362637842344719541689361290357177374173313553039235730888820438840093800990231298782254824426731680964238870393134707011582920720325345778976409794403221781820890333544854605136783273533348287294565962426672332802128642463053217237413448227360289181203114119461710442751036469320086759026608266416088288039012641715116290180670740073700175135686916138202227587038131246041541651891635466775308979657107322166108875076959209748165886658413692702467832031334572746840982468258938310932705094863631568368808301057404168528041387088630796155700370599213292250868778013984240531818088164021705049734213510168198030057533037130701708141214265855193112371410376835635197396658486262181247737317968293685869919932811123767693732926645067392934786268532408455511898752027510627705673915352014054586861092350270005201932959023941360796368017885170584893276806399823694729017216626543093326653770999540197079819489600702259098568447667606341709171661108515033755780129385332366882120930379859990827260458179865325204185540742500332754724275056299904117373586574799400973922798706215097400948628033407172295488423349999641755967031760830371911998666920379273869481390692733847980569025816617449187826865374801890391272254520536350847188233632565356338783561878335791024387631992620210852886128546661759980874511947221298034375436226134062140412377806000212409872161679805934254095344367432578647126522899238407286090052089515024242433517524019810566445133093355245243492835583208692813703416662911079133357989171050514976883649517618201356893424042500097634339158454556280181954020564264686130264503425217774240930660882027049512373430020813086874035962397709916533212433948506086086356185655876216451198483049893786210379632994056393171251385584824226278396420813323291972217221901374294514162226385234453772600320169875447611118540122404082241093314981816688453124560663442924609049023306582910754388683446879792793944679180954038713377331287917521999910638904780101347542317198577256358293401336830326574431336976395255184006498770012077264523619025546004643726348326502120569849706292671137770657013310728216528970995106493976348922513876950206106102246980849072967190014704916042607627738360755123191269060419956513331261390496424011800272476609442316667245389477455274672011350487237493159333729627359298985640705896057124253023372962152432076674778255400345083510561553101515526252948381379449232309212036220276025047786315680236431725391852972937799839831654343328528583395853679226922834871890402890233257526340738176620098007437903141111869959464680985790008155622307970207700746768759629824775224228615194923760072853913403291866839980541296497526310478223158575627924347017142759075996651007258246654273103213256949273858627198793154230783178299782325755810349679887948841039339850712000294318009012133672520702319284046053359376781088597090849795315768515749570965327356125126594531714327763543505626288425142160080744452460604614634837927579717977955890122185395781352625203063153937281946462265465215376342096278280718528481380630318777789866831167438053657371157587901332433570336008101978008882137060808902897998661333975354370107357694471250594321940617954073641869248313524829274413561383879764716532719626520560975895950144556265595058845948720762510486948951729425161124699254343062030904170443330053695801379030727763862868333238214773215730160076495356933281874515437902128799379481297956118066815428525501490699029898962047991936795196647409861934772640352632678978461556192364928649820412178900516276062410291737836404215605321855230626777701792532998641634924351673794769147775856438358788191429893703755381880558413722692986096519319390184282139652052803684335486086393312638784782904967828377280817708798417835957082300161338579694430741386170038174687081985007746259017541972062392903650076415994025011641172029860267043423825987274268733076554479151765050471797057367732090419865642344907279604771543413002304343952839714690065011512053544683223724992032191902841261618158957251416137884814219477888073315677698209224994080367632449651841044378777977865824582729733262145202463389636197907624707081999401290679154444563110817195981251375233372952344077244997797600481540047273544356451274107677645925847282613470980952391339645518443240159009453030807794448493210043654096831728342865536245976147011900678299259411158499354239704160007790785692693374911119011075271924827596937958309200360856363724653131090593193763459232805763765301952694818275914849363652178026072015471537543065674612985128440273342830652077063735769863285041708762459760824723906131087867454585500236974897666098886227215840049779171671401606045276264486683862465947652300712890317261602121942062022412143422379464809311260410257319210293507036206161307701402439128994198362618991005785746835107747341463307463802762252513451371084151602039300675186557918174091582696340262860847547106457222293300653308392238646236822777727119326135037753425107987310634466446238630864874083398180655708160326337981832289819473693081551043741648278903616347926098850251470847468615033251376301494158665761524895795304367889530949989491613021733718435402417989815449855151510978269523920041181804061389630722694004518775345444017729656376184205216041054783334179367652483554753917660026079265041803426836605998408891445782973801442000256376205824333832865677225078790777305574768786835047498575072585797460145137144274595978914112689108522973391888650413358268109632227834968637740926733812486643556835462408551817234085576736920836257692954028669873973890695751507888726978627713126044303547135233826613247869640383519910679809915312838566609639029058567631907557532340862459412710030461131756285663809878700688929758542513032996986798768582015975739663174630680034104745808786716860457443455983037423948877430891745892898075187412565826455067406227184838016552885294298625960555081099967560254556134489933664043962533489314849008781682866186122280924142477699713890205004188587179506638806278334134728152961373025230575026876446945417610861626701869945745126205465190000494556218721696340287734965332538200862960639873022368561843003003923265561265793745754081652771647861159377556565964378991470282381461780028860199945236691340748999857470641962290436562243197910178064788104644445091103835934680441106153883447188669367716533941807571918257202652983838621017505673260146572352949317157792205852690458553736846560473976647818475743914403363318200223881373989259840634211720128528131625350533523391808483063749714660046942548458800448141653389684535872670466947202425345753064157162825032358381188456545530509576591593906377920792464594943409352675259736791956378593799951523799988835179862568934452087271572169990330775825639536074929461867796031262654843986310472968694727604763018010183197674759653102333356569538551738975882003001612324327256074689876074285422144791165246600296859899825905111962635773610503472396255108906292101349528727455931143015713563250380006054527829703808622430817739356066739590907375832477602017084539647766950268730761232377486450341688488777335614495518657915059434358752464980597573607341507284910645023293420123033538123586295393264993118713999706015989541115416468242363164983870500490421706121968803398019302996551048955807083040646202799023449531600742388386220102175863303025656952714049240662027051889290840552915895900171187598338917206701481319483351481058061707766362095345383537498408392156875422201355305007544381783293192756774321316703875092746499466055627021954027171601671275965018562448949336846110255596327282892395693607491718089625670895207445414129084318267694298733804583024185900703765068554151339285616410791020409071926050671394725632648088876125645987505901356330343207254236528929045046811813742407005154211053223725908388139159203074675539694576793970295327589303745973642743521054185079179298024767731261341310644058120159915332881763702975628438229973968376655495339543972719107198144835998960015126317273868939762011862864913992022631023551136199331049162305169929705272617833536601040538157779788017133770594331722999609817995152349762932337314545098865987799564566974390756186719405070583732057019329959384802473762202671768483153622504355710007354426516289646241182942305733530664241970049628110824142076683975359662259014295402643465683007260557816516630516199513959926274930335217947471222524273541516286980805538265145602025866991105353411530954096927613699158728433613360648799370853254527164856105980249691857825249556918833202379279091041681515781278987672787882230167490282884240703484552498401915071409729975066330389355270879183430476223302888949624277826094066235277860205764847504252902445113021395388097794662478400303920991004883983757323831495868973755473364645425293833487978001785741986666337539623740800922863337038233082491123721170758057230340583547425034069995839610262003119220883107968532782792348316476065705054728133192357377749386866065323751188169441644700311308706426433018389505611833476175214567566475811976998939106990547998019168751845362619521511309247942122277681647628504057869055238527239058763489743437267017107551793281816481375202977878496093832572090080771123128094804810349423532366001039340989615188829497417354418259271295882515043636430098809052252415938776146791222380936380072222723908678783855623870940763695369567947884394818164472221100245522810440323548271216291916548650139869231293981343451719437918673311646169076213616922553393649183902297675869313272841130021079455340739607651505343376428671924134831853723828567451668233975004403274019560083324713923610254776276410234990014445822566481142813026877632528859947474347011501828615055600776176437686112829270900489018026092041241376878647437043781019791197652778412047476412515353458750485880270830396653239843148757967601643588161059832569440863210253072104772861238993534795129965129215595690939506153647340346361937305675940323554374479146628422697069765031757165342369159067380653227807796226996279255651788738962515065237726868281617703700421834721210638774015479932202381147718369017664719968996549749053354037693809200413174363216719444353556612991671365474299976652247608903417435688793048027105636865907011847127963751575488989753113323190340595095024042876996235904351517044890160289699456626626128529254548463924807417783657878441910054597159381110102804861538718941879604309951370265773237684651626705834669503812065445397885209807798788234799100680873879051418130420341075291132071756174084911610515285078008549728018381117591139227328437789300361267404513303132718632618677910001966554912819769759270183624914438959614487390451676701657983197371233193670392237810033272082147857048734592876077787800575859796735018820148293373683228076340624148980093598964662626257998712429241105241533846897614850335781185615230066584065783952201578751010516461492648615422994073232978003551422886885388106999637047185849240770908556168834869894099619851206856288515994359481966066485990005455939398764534535553225453262470168918122044980829902113226312737171084486875245003317079143088696677488140371533678753167619108018083892515732576269760333969121794918773790880598224848817375115447531211873195520307801243224514445126177189669684412463877188395771727043481926780984507479721518535870046891707825977725080364564926339894654831381094893856680944321026225983019537696892423085142777297517000554054114805229742267412655014116890130844698958336534991472464388826748883469257927681513693055099103076819551103829119781125653127931142352219826426017008556070419461771834123729117389353839195828256556230056705234453234701834226761661219890469004559525041451004675779960780420919742174708868647693507242317227656058121683908254645783149367416007846469959306904437248008700305353902686294812534461808936602079298377830778817789643559848690773540065089920980560266744073093975032648305609788830315903262140198943626173341662942354521795098361275676238318695500150410043986981956906485262054950007956544945896666742934462557533616628973011478305953537065214340698139217852680047655496301069749895857943041766325558687638776745586085397251228841380957814302320921418828629580774250288193831484306822483555113432176569582286576927191152389797246928444626787197362086433484557237076480241940445289601202636947686998873156520289150857209138160185726063572375831018704404487805865797889065525055237501279000236785845684777594272798425445425396887899623624910482785620141146973232314805993038389095521756089279457381381192139283334290873406902521955766262856514832332909174647020658928111075442604344889893677347800620866282243355032980443934288252702725377491144690007331140983705753174544893593229046891809119596190641692077048553761892725809386616449465745084902076255192197758406944749755044259652756768534063210895081585661873292069564694723873466606098264393182464893108881593903445359255420921252353880823789469594655214375470477310026048864598107893201348957764642129401304743228575797012363026600175827175109835891938843008567892232563699101303659936874929711871622687439385793065587654715096326477102354149139659547684355891224422502693570889537115918924256208761936761414853313218490855124487709379284410450846800540665791103462818249908988569777130982017512690743887647627613057910645715311785007230264472151524778941163531015882426760835601848537691105435920665770189590874216824377055838698151346013179827059275549023072291482405129072113223917602477766512508753253945588650246054066902799665156327842651859207054312755945746538352761159441507851560183623844931305446228738748692198179709326789972627211814381485245020268602797500476683627819743549627246873646859519083973585525636674929974987815723072416866440257119277761563562672759807054425741482009851993905764980041848643483518764131294763638736180334292848849839356782628541362724872040131671177265545349112455010797899995907898178510245178173520613841151986653719144746268796268400644460452783913354124786733952752891132692389034540056072614816565849669282277826528830666136895551263463895055892000549257558047423626401464355630113641804371009235467954870454414129508458017873204579717086100318758356539512218666946493662433154610157964476524080909141373010023383624055314473037023271515380825874029980690001352336633378652978415338901729034298579156813039401505391304416593118398845126676958982955645492046294348599081557659248759786079793702983359094886986938100674539695301010645029720847251090432823702434216800383749572570149968298206036612802531517033667167030458696072851674716870277827298674234142036133553144098480150309279589457156972702519211925482527673292309048755826034189520069557407926591465346637452100496423402412326664682094557760858131477193742967812212681898334843608464005813902150652118097986866665629591944767421728889022801380231917016279517700701004587833184781122444396773499334360054743513999556511482463851507547708449994502848251796680713288563448945283143003100267919766365395488321005378305711409840652580335668982160069496454129482668439496114950914113682043126597021910051023731396397239765745384198110558120113852472745379681434627960790104646396899517421673773510439551420841869589705947258253798538696514873084013813739518760773113834345462455262843565574359400218723631410944956330670386970207246848164263659665376155907568384407576459161820020006231138362868456596338963568228149436508986190737662056624997858759369242532996755583689760275154282547457407947027402938613112558223127306550096771536847249169832524965568182513954551624777756169195386690658374219906064162836762829265869090960538280663452295059888519735058953584023194449762583784134074986660930706575360398465807924286446255409099161242464720601303756551264500221556780848833372843489766952386469008400555441357075035694882002830618475172819130678683047472843437395908064345857397346254432147328940916675648140154855441862611431629959990997211530874136931451893899256175253723114913831939749515743386622684087447088952231210761524666443347826012775191476792090762954907911883911955184583590337022941136585507697298605992816692636088932670456028304961488716140308881483962896132372344847350362054211921932780883618841879388516029263459014328137513711684706893028418211169448773513384637255946782115249944897533241006299055728135199923348135543615079491572586968782965255626470832898983079537487802734730281131796333517539708454000672891258858142939853468786317636224837513366315824066637585673131203494735023535839500520163630435158437681932328918959793962216353247113150148057371695934251601223476336877017109433144568818356634078974172638717475793733592805645630901805188199266531892161167357059667959801211366010776381979115894621745676234888659006911164323688746455386030147245228383394564479826538688429316274687059449855221840188428632733988870238011057427286816915535740198905377548021538961724289893683110999088309943363165036830697660645304241384323324555789182909495712470075615522832426013278220792549163833741949666152045475535070214475870336043588123938525184207284822187011751472101822622133831215478529566473874660806852124718918132280204643684521938098493826000693195157219485597798928798014174964229930625168824010643774979535008922420200311799815069950982531849876262528180084829436321523974009816742080777160703604130153299982728952928638998243542398754446660528663258202805055845156325688087590767452311537381437828598880073020336863422395904030507328968964091942225808916976899779207956951329411543964753854097066142717443768247015151549276808321049750375018505419870110511945633339371415776777978444146516501834761916274291278153016591258560057700208056983808567595748903339198793702236860962288521144333135164592178367808442810288086203702654013459861943025441890090636705474660155703938563922368874582285224032528727827714975398635481786488707301775302241870309404430957614817709888107951670556932785685504530709668884261587462095070876443894492348263719942284348834369181320654134363486459649414527010103295891222013942164995453917810017693751089930552252072783896711209948262601545450929973957322969722036589733466555872853486384910937220253768083594036258672089921571691927756545333345449575181240643650988961267087172198812992140948093560825515651202639992858876931590084072517725305210177541824000291462356042771006129537956285963186996372464114509655604966391574959762608057657076236832142235392067413482386939160587910710036439369107513496050450662837304993879133730801489739023129875238789762429016309785002096897827124029479278264414600028725956045002134615127662222826092852039679182022532274652056945891387685219740904497388006215250554383746309172312310874713417653980950970744377042327709987230473277241929186434173720833966966252009335390687593008998155574182638731051250027810848742988882558449185670667515830740273968363836684563821994307067657213909778993122998234220445783806007792853162080328983206253408133012564422845509323339644067480293378227802168859055323230535541935085315928433531801874217768459481318495123411240167637011530517325136775190621643375421123404524593446941786486027482854380358902507484001095777241434299657355906699762561738463365268384045791951461783045490825720163801735632503681289545468415293582520933001844695355650505516761673148931860004833148644164504731744933093809441522771768618362147936025874600254415382852677308632336770700774865549759975435505630744713688546649552242815218676115548143504140211234936912068342334147097186477156593094365880879862772131195706822663648355352920023382468822675490391999876742088409779886045512493147811939873670808542449104981710289937692892984612894823466714880916610031195985409998288014680533223622154684790093845827957101901297170911647198422243564352233025654876862990522503923729333323628702862234835715917480665554194696122537444933285320127205113652134217958905502277312439091469701799904233054948542028640637208382805755021076269499688659471127002575569230496422132961540601168710636738041988688937633437474227347324010367825665293434779785714284236641438362314758767274152270176033941206779206263701113790999062263245365435211089555540651013423811627330239600868476924297449144768516712586870822676694998734561776826398155184505354329917255902087362421953023503703658864027263824926708893801184770585350708300425347296498002398543768149203303471877673396397479188890974354287080570123330804710313762759868434468716835498708591342652306859244988752721181057790368386863499780022765083895976828890756169800300791338189906163678192198579439192034226531078549004728563134250819521071697774568913501996707007898712269633471749833139885541302209267172358429302588747854304563613756602539438591885710544306493976667612501423999154363722837222687185495011497524769635618283631073012604207413577357083246868663863513102210330508686386086025221254888082714956915610433326196397462733792581111072410695065073052688829092153617539572580140072619151295076353238505234780976376383786731246789760804411403407091722006061263770393431311555368124842236305014883524185569896213121919305797383418364667260071349372729744407922394698406308292364453091076578870468737550125894075974251248684529405491382417753690205976380271552169576782568651610542863183738695368941713435299056089078220968179943318254119847132437390232429145057307829065215310245735723283473102827842565464143033035095444638234430387069877860954293947907612474623234076732568797020404649357861612720049441134241631504779585716269160045732604228012031782679060407375773936454882551123033863112803261275978008713060610420601120410630586650067931033995255574182212325907486383629594533540907383615167720462186799171132542916377587664210052338562687777437683445360230792134405624737300813777833718122220645537637523427677680695049367301170531249222995508204643474428913125695383368095179746357497161234484790370316418397176289254496833502584792815233882393571819470658518035875150452651430143702598035174463713908926550144255284931112745861647643848997953356449749934975850877115687845997785741443251108488824719048584370946947627659387629229562194708551264958631593673328091447774036061983243037730300299522330699594903203625114469284488466029934038038428180452944022449774391049965843680240024325926187652101883025612345345138464383214549151341080891087613899642017822026254562001656109572120235890963906331416471032473962879091897810434279029980840584236876033846319321111340007707195690908112652682949582635344962509659043659977676266723563604174269002366905467820442732813512795154828685856752413290378689591428050960594825622961793371530481489881192844228209655690674392444690753748749318743534572792274560725014278111354668716496543026978410746221965318011762719508647053388451921957326595770981345794155302043897626256571698362369401448801487674533765440367164382999032093034569991438330450104729120014095780011348554624417468314315375774692666584246685966539907668238567668987711685776432559309416610479289444068139121933466495366959167995895185946132529656378156036099042769655786631491243903859236079675884179986230417666355378903095663127024117609166845191571216209242380461266142962600794222876649717027625163288840258212403242498793554251592737617679530632979491090645839991434028167302729630459217192367602673545321695802463865963352956113454612485196841614825402020062869904632493189623157452223155358503215712995705118675626155826045060685226299171204941291157036709814865184129641868448031490664091142719861041778423519206851374237061654089928377356652629703237616081535439488231099062962207309709240664863566198593918629772339159457894675855444825833132609911950569313348506299856366885499029901687130591172929420287680864362898039235243062190671565339567383365600073900954336297992533407589272935178633275179110456207206339691889998561430398544841554230807200363057659223219567206339631633302987459543318460095871379693999543700671454600985934692054240178969377853547024958625110502954943894985528287516257339950031495425279760270838294645268893060296657267698626254433023178555501583380605211431341982901612664164017788842889688089253293502418270192274454186115537620760836746851568926838393195954457051805463949252258161995230494329843348724589996278731471678431598076646551631484736974136396562582161273209738333273374231218614336052562157534674755591942726330860793397538960703430805248610303423523563782636515339558180265506084055898341633587089220228564659200279947591392227648489731804629943273053958195025424243881531098987901828379942565032768157743266966245181367137456434898382946031699672963363859318924810438940954338277942128262891612593951937312361400510028781768972367042914007138664529738371151812076310040103044516253338416873251728149086944307910601314404623740905667285898856958931057374740419340710520447635765012600659171263281890787594146760422919761697636888744003767940547696538426306770041430651905599259679495230769034294233128579660487838671375514573828427142365049747880890151676149553850689150709403895230641284759638342556746213395771756126721501950781213704541752004308283806034292962252319868996592482778953466660858351543043300384891670559698335496807049216593341031262066766638248429621286867547014974799361460239201805427557503597052182222221996971137810487617522250128400258616681715480083442260277105016108578898997760563128669608233708140529144430272315391172882143341103372769524360294139180031450689432091325383591937864788939170585062279845446035495542613234843595203620816242798466410549774015038083534493289941032720085069032303333242382066231270198266444763518429613036951304713909866310719613556110120638054657127292262677183353669406531016574761586827170671700873410405063023385328907637645539044424645051899674245866231689819410125264411366142713191832496149842438667759104547112124448115205422056960769012661025173865455306728012742165497927096797170237743978836553011363428064046547403514826464196005575886340620437382873367905860865221664385228443630109592522304117753177677032535980122369615674722589694698691049600525213581847597813753222921899993192473453326552958814387309632986488808979432940391259186945640138185515110552560960561563864568825870231256811696566217389272771787347152211998243165566724290876312515995202592054371378204144595900785941832585911167415893351740107629290434690367527858254839581933271258593721376958995861436896787425398807845195892387004401092292910334435187048722304381624249238234697387575615682153392112342950432260381068926468899627866102408158332036760323830164935307848441514779604895173791194509117602890234756695261855611681220120837044170154541641484059279614750055197333132543989248584408490630965179737569139833929787618054919012479112179628626104213807222026137015380239034143512318156190485749790686114607164212691036168980884466756430834343002466363953698154141993273382272275322645509889574921218733293517665937218463738908072055719326811021204905092609649805707095145689773929544585045070292913935934069652392950361967626395137430090939023142746079691522685077628302664997481197552351813354776739068331467960932313301212565488359021498504190771175873789006890504973079774168954603249247712896604581321899989003054222168012162638721333042974797332561994003443817504070020550768564081913042219148173575270427628564462373136951007568463712713078571748233172466069788181191819809210985992971461298795191580147721709914993627825497709126302242972446608665343306481394530219434998776010485519528986780569963490436208629039883714483017910896784222178733091255785730035536264488905484173420184075511142389304048482137470391935688441805811703056123695757267139564090499551884311864549145973328360481014778490933408261039280308488352695168127028148321469674893255480792956499496991758647775798794184173149358599479314230878379333597553818615645809872891687470904166675595114843075955607225729207674950852427993688875719111578873328649949004317621960855900182093712568137277368120985668228274134579443550044382356491292942357706419494444906025330249206030159259309565080927307028672059568030466894096989833160051791247375374241961114773620995792040374301927345420158254580616750103372547032686556211232324610273475227936348883233279077493146712269719100380140719110982557510763568456880358086448425400383311296825451189558288543987623897579396316863647098781208812416844752309100094525328713612201139381844158301989543939188486728077288024869281971900086383005285870043409756919749117754935290375078343478810544800092216400815430435464831110979370062213938966912601356655726149484398380166446623920051219715712473935866079003734625124861049028169628646904303530992015294226522129020150631076695503009941069945181488429272077135111373422999555602428429636981820707683570756301932177389395454594936933690917107948057327095751269124939533291066688337622494869194645798070120522512889743535116914639795804956584918389237628629889101923697035243893562647168122356033099875745888215405572441284770625582520289639371132837416900560178247145910093722885071077834662449953143683025916703595293548248409051988778586361609533767385145738566662647205266713163767242154167462406905962565448586319599399291988781460887740935853686547516115569016227921592100005828491119333915850113748687913675131707768612483063042145170355468986879030183994758042477646384136138952349310768413108043741469800761374766063918483510779931052356926640585119149447441637660562790176076704722412386049636180800980653576258412071223919920294112951956211645614871359253134667624747596266717719543573456952291764526948272014617322242555708478250432406192905196775831812161134202799191833665976033496377344108900530560796268765399469887770918588971029381875417608833586350077705687762493870790182300169800274886877397610640497685308252248701020888112835252330188908798913253952686167020678268140296393391542327347525813045115326055795535570515202991668334190417794691550102588257780264146156283150716692951542282933195568701198529055142176760380753352016999045380844367873526737242129891159493510455045104848152449577270264543657564961512687561149462646711690807863325354252596090251971547962803668726063280200262178693911452596568911379691892389769924490778005317688307973031523951977860771295656228793355054369920133689561301749833601472381941766689339168237620699141040218817360682555110878457919199480659137943809211191184941430440857307584366170774927224875789356526051317035765198329562111949967044738763852293418919617201033601343317074501083745654492925937655269888953398041085664475352682751152499444861503625519217331987954301005708138026847254420617163815544218813639779419759758655345815279396300589544717271317296528973283997451472027336923740300792468912430957817716120456648900333727967762531142876531339623886763146095206971171787717742258125464931575170318346510648342177836370874950933155073882102593840745588518435893185932118023660144934157492024514707054890909033223239470865143939950433192786389967002107093027739027830456231299907894098236354202967418792436887734808188508860878383341953650352465018528446958649275440938686604277659270231997843832597124723021615850304376703944803890940634981793588934637652536301347554862436020238611186133310568301294347191513887192038935974776438355920255601144534820552522511049327393222535536978931363911872277015563994490989115155737097856646140204614449498697551176242795725398595996349508659374501827403625874633884740536767491664554682467404737121007895512999317521529023377793896755906739330926004940449243210812979810438601777170820817480878655915265776630096046123173981052564160060355641182001842903761632639402817785983527533203532146095805165571463695801759746789478847996507589237118269604607135017564107052140707443617023401686633968598739454587112806866225823803562257588149919340212378418756405596567729712208180074718495904789937781889345301173937415649725106988893077411826884277697885693690289348402248483708986609057339776511077449858836699439078487877828337257221801237399714985049198909858537609332626404095331701783042044331338401509933103574170730145608780895363648981697302392607849784517014218793764280919328621920264259751431170987937265803982029245475034575672243689231390184559158973473706515888362255781179694002274712722696547230263697972402143866923689929242821062468554220262471031237085692071423585547546245994317852399273421112719463828712197725596549148744338654255361933945528060049640133536137288261738357521558159119184290366675013017597965032185228306581826049430567910366098583269330059533821545680945280722480360829570708657527505324483800424086525837221435620721094434764620743453554259331260515319167985615326813885024085411420397236936846471669405068000925062827923943451902762518707847859663212334629502241164418868416772696775607539668301916184117465479068024293484878418737366657614064064124854894810674730495693913110308114019215815789672309042304745488353374259951014571570139629331820982223650222709625349944622452299181252106762698613514838535391736985920521408987390353554142790820360862875331478513603302452624881275910865794193174564189119159879523682240138833188043070641442527336797716866634761136727575755523751971422899622120096852618420518461784877918931804533504895936929652239174644380340059029569699376415793174356541236087618067481383800753240720881733843952667094925120976157618647623892380376247264326822333575948238904670634309625519555989935652562458655703899558631158673452596441473291413629892882805643943591724757285946271424789064241946814621146506256278919639470685025102309232327149291229814288596708149657324797528491735813517949284723988161127312719803931066585555320354501855537873708619011448037437137389096210885567984892810659809213623564635431631524737443756021696632954935433849686599868925711033539223505592056472133082889581167877373407976268059923843765223457695613541485483563696861987502659663566179101255525021383262487601345974430736242907304405469002901247147414243057970018823819153050413371728555586392763101464682192165333714998709946612631744875485371386085379629252691825880010362219132104565453322901113268886367495475588840971085784796482213228338388052069886875602804543432035816660140791151142750257663505652528725003361525862898644539716348870710384083641508692467512998072229249643986087328075719588554230387461972404268440346102506996613661783054251405025895936552053355586513140391296449494406622183861552185013330612133490672975995941776342797382110588270610653662143387187682682123282882745626352060029735082705739350964516476166889573529577022864259799591653109642696087162692697370630111186140671712432152588036447605618187968580262853397559549379221123611752699905491915044849687719853395209429293097205893265163497552648054358331241912346771989303785271049805926573411015181661576332390152534817306862647705590939446044182338326263718835407201220157184781438097336824179516752267117019123353141295540385500637851580166693425160959849684528254164750669725794811079284765025498188635511677186739099463235203491183445272561553304519103011859001130744154560314860769716252045820848506678066399244672519129303477965909719736799810586586987522779525592778049537655382694758530192161453895242435217188486483212203402946829759621346975547450438494909247240306229200689264611291845127059659185036940516841453582837699138070517398477501830634837802870751130239643368730480918510809997872275158746767178718158872332045606219457062408925951608813241462845955021437964685113993632632863962075106718155904161938049172892040635757716017401232735480107615975308827733799470426593432920788430280754675202024813591969235378882393992676726090690715653369826701376891557614455047086237348242008777934999468346275237981018523157153484029295459474028568168672469677292163203635176955955751323957987967681447539966599859454459073023621720761389777326202936386225465366045104896900914264122416117424378932324975487741875168847764432014869847831121116515882106454253930359171913440132382933301784075939136414431450621113863504892710045624528987480314344049431786677610749313497225808607738309718572169274007438611430155949372370255636226956615273637302147699564234700520142435732712188287407696086594544122616973665424108287081045961296285791333871171125619545595744419358972136496738239937721393681696970668193866455923098542339823171075888595898583185035694096278411533055836963745233467605832968819345425707538747514720324184584382306940683142116169182595117280249964394313992033249553431827308825158426283239181993680517255983844520553366216275359371477717226200556915350964562306439594228223905802067289845609017431897879100564649613050924502617618448810116325530805946529811170455384052893424152547020102038789744252715841198690992036089473115509602112549379670619817956376077487744670602263143490380160847895386911193858990982305300652941321586803256749036050605597647231152645910864294645525970697561994783825581674272501108795043738215923434548779686953001532616525613282575228867282796310502506203771044174408853786841086185595044370987363535516246789399684305519143098509389624570551877246259057793254869757300239753777351866248308428231624416387827106948396757077272819244998188990204220752959031268607553657859761955915880768826361277353236404953962494699939353016920550937769783099077504611927914311929359190439963539530831501537532694130531787136683498504430370733136401771705353160513011348217811432779124493814934954650632771516860204161967398610252193501485663437580540948827563071444751098169383893403884311777401921608465204299008315525916860268937381982139802492812793677640357492390964053373375527730391103310507732609191390309170323319274289643626676788622750759092664692301969076800120968156371871867543321906494250189661242386217109214629394894743930055208821204288486991905468262367657036782658672548232052584898535680773091352435271840059470128248433934820604302823807891542378300903489746815460823515683480164014964510688132086984863364028480471660412065235585514222502048258706265081047743452453230308718077396357832667185049111546204175376917198238786109053233986714870525014179027832878089652648348563566877303498723553955384604090080689319057268695157497745804737791784374321411438086332743636035489501918663209900099391526175811062547505536895219835416659464360781933522445733228128209620580091162274796278888829006437213402690104012544808809009440448114748388218899923192809629613895075310682717318952103896450963324894471930300449146235325294366631983326551587028721802498087061572075897779436412521216141759218111801617247116683209663989835417847214342147151369463093933314069609602592789490146271253766114998500779345791229716455387808069526631482173468872495857462523925889632546393366000817108848993400139328413716587729167748038082660193093110725945568311847389208599485260411356872782793173443064337136454993352687654804981586081953227702599735214404103958300478825380492962190353720164581731580833281160029740899473395370494449284110464076243236433738798448650821659474104361228625533595537790078530640347619781125739531327369571710736748545398282968102413192738955600870112735898379722712216598006154507382681139178282325768522275276838014538215217119673019656838847167850047818891869586844634965777441412042020765021030384919436672643947891636722088509805838512989187672236550244254724128831810336366963669195925545613090173257286978919333546935782162335361116765676879976355022975881253590842853636852458431089063936516305646469166638965637901442713229847948076263217100649636818353356111628612468541744469438636561291465780208122317339819565924523675505486751213368328119161004016189934947734688731890097398649689842039082139575563508171651927115179494074534857469306440227008448402862619779332349093729758471721553758616681353429853751641026709088129464252004189386680192356222672319792071674454544323589273592908732714546813457377737438616823700950135557228397419508152578681995586811685699841946522891062848452414576310424526967494031223818861684033156216222237971823849302795486856925719366294760078782757468992032224918664685626698711507348429175797932023846677250576532257354008971684739845831691083087521065433191102379851932180320412420955048168752859883323073836651762969854400926756338402287134535238184363934462696433426283107851406487152645099345063294732845004717126801005802480210965894288254578698253369441799571229705145098056441815529144920901973289464775456072417129159241425534274263250352602615620069362810948552376128072005404026699392919255418890701668819270269807802978598986036164717127935686633344722060447079639415765074756448292701436948415934941990930455721761280201590069220920744771106445241720378288685910281828523451418951120698708919399562411939784559857079761023879024035360481974935936051377928129964852986002045096532127453468655023295770779581283864978918760766594647749353634070438228916630600377408036060691528840906524659206655841629706251410458564166298418804070307675816009527286953433749887670560075432661957833462661656012879097335585764127250202091518084501897423981915753392953721072785988784705558998895358797339587055080748391814024310753362495606302505203527599524745775423831836512729771063779308671733600935227901909366908264585442741419422191921602570962344238738549775923692945309878206912001298132464530277713830759332252196098048295463112946560233232979264008664132030453054147296125274999459669120180019735083124054783824695200586840337313673608174541668332126476500345202431668188220419566720325768361724103119843283596110607739585395420358349462864032151502886616578475658314929043659427827036198106820921266219590536104239299122736197990143507702364514577840915510887623056526167490804454188285097764720609982366840644561517299956187600233347783870182979088102106464660392472008777218706664188419701578730171773605195689125443905347625129914910500065437223204067052115031941674267033742057696343265743511948301377917729527971019168534654798450908819757470572753399405800347225142830043078754156791955752071048620779559704765447464730710158395788870520997902848125799446100817171076850676107362387577418660962460590434431916023928505620228860561872091339759507576452316485914175055665138499797563804427682071137283860894911642041949526886657035978612195588806214354493442687098047646872435982890751513396939122448678506971293210207061473078900364628669429561833155067394515266816539608348677055765764728635579648233544091973957242622622657581241127070200641023041295538122583300009513281917985082637171773224470075349193776146119254158487804030398844842329292863718487968275511670849085912732870367425008826983151971320306258064046068861089906147382648515722716618332411104231581865672513033007690675651193835828005052590705287941610793015487734047677400969249652106457057339450474872409222356722702291741244315604529370610175303036555590765034651777263592880298325465670189487724773321830279692712107541383199832390880941234019903623647905411963741768048428212613695926800391141968495057413551241233289814651612564859015101561574136270014829668074496233044832807724998607459162406767508181875233302325757223501260542220168196203198943882360002803043841472360567952192136555636910663956996449720474338588128640511429034451923124177616433357526508956904686155545679035547756066617387986456795796111617758671316212472866665242417814677867966005754633396351968692181367594839035135150452690971321848968777657133390004206468906867799339527876899163152523813108116444080502775549340342351070748367899906670178891349942118279169479136530199491478050580587448404747774217303104301626992732748071805674202328561331454425783892166963557958475621393500797032137298039438751303472733470058968509357919743273632455923883163574709457798410576879339787276461835606252462534223042140434049110077842262927961097183256582703053985044477995153810045492797762955243243899817631627565959920857065931533485765932027883841843233579930585239174060092986333860163140321364761460550402436569102555768012509570710998080809627735133034613632937968362845131043555518572111935139348953726882931461687472363598162403856061035729191958532443792365933461925070229510412264855380032173818988843030519312588137846413119061262865584243284667025337370958997221079162857919305179222797662576722477176783102166446500379092969509760064453116736362882760091272857838652682996978086105903374399553680782881945642929616443534602132894745961445304599550182571125517146469232235152148702997915630173205196145518124584458192191981965281798587136866643176513128330248386840250277200790519758270959297744280471463790020548143942578611025014314448775061110402222556508729537514943547081914979977700515029789264187321945650675000529605673736306440597626733253827274446178108174283743393860015221257940636142065655063179350453164432677327332043661811905322035712620582780880548369848170354234832234217520234211763894146697821661988955122780050747225856569285404146341099594298269127864083100848600657135241267469539896471025887332293522017128891589989596238758688098443306087062112386837518226931625752018362865649335741342398091732037367278950825857740202088949465571000190017886518803940081804060627098485426367185814262950266092388444323088267511056523978759475516781870623141466556419185703086194008391477527559263479170193170611778383540252066931184188801644559011221348565435194876806177191634880089218935924434025962612019705928899726047021621602626941145061654081748783169649634016064103240420206572471053349616082583360253680984520872308581818088704277147803999986740221629866301811898729558009686099209257294911877553505136125570584861513365817509925032994590105658164629115093282956254218722087930505231749579496354948885323985423120550345725295068880638789500367016640209494704262537867439293449086652608290464793662570623198414197946756382228229465845389838142552249792683374746802557521720323550303410797834165326057597900549205989666459486159530407974282156925472579029676297503091958126645895600965217967624296601032760762263134325848829979018861840513879185071373342864149659307779103948930250296158003872673118544584410479660036888208428314935872664151419735907968738098802259935020940501697404654246938281632175554350317488492924438162137940550583891092861936235240995747316276046376980493503147805667105178832481398131421709832191286823111439452087774021063147411199690223637780767125401177815944146460750175998507165303003197124544257625778356873573100825276075150816564443498991099220771016965892585528566647610354865629381194006660213904394413948462679530527478575836576265339071162472207827350424747621435194266253286526310860776220006344432900872234751371311975470651774161209425351463839954351723024359097257182451635053852024259466284964229992068950861581119358374615395465667580393578875212032965693786599922494196659389697136674337576357567483543236346009323684219605769772814840858903960623063701613297949645132938269916128720417400198224265261725475329902258145379086157380979890650551100732228582716212279633758098518678738263186717012960716214710665166255196351665371581746662754018146131565239619233230991029444757818705913223097734709289589727659564928240550859022317053325224114108667065801664185530318907373385004182829936305281325885286602707146554424062259125778537342341346587010402140951941540372499315004528663088805004705890754835290749318705891631042482703302475536049856229623848122320726342759883953729347385190597013084866922677553261996240499676047111248432630076178468870804934694452783641618173616632922800948143906382159443499026116896392876312295195143260627035936479697185988316910942212224353417863543979451932640803452545634414873692568035134469542267562153865000705976351498546796568614946022574949535182294124324563931369117325557166168947651662800308778542084728186974821636582817990281363785761288255974289573867288751932803602774295498215819949068343535858244677951600009721698929497978238248086736077138214322665414002186404480401286779671729156374484455100559512912028491013052730324275307730835575002642246556065458096348224328191521765177979096311994772645156856421653571101752736413561138639872910282900193598109983226238561851456925182550916565786678897700983478768463670299953518021606947595515389102336999954927554591391716247868439599213142079050814253984337080423307112726416577958225775351593057984378029414208378433521449692544920983545980889640291699056639366038233131295947937185647625138753607358458767387674403215336514135459194554618594774717414762914063358985580852935466113259159700373794019103827655673134956746558797476684152851741346160495162176876427117434213824297823650154843273187468333557378107640448201417610458133623824380576916711685552209650832690078797780403471402170124199030102730345050329436488633881460410233868555798753303185302241253060991945175469223034986971874157571189017541255981352970033199436973328801637869015044574104817798225287570987991515006792221859634308899978504626373405975257690356936715368810539403355811464595349814660963995132421796175989467464086385415646054953438108663392197450599652769933031159664074060093739184262433389946161707650599220124518109019149726517358672857429777500689716684630112011567176316179187295791741329671716806973461678022016544061608687619340209902656801605847102541552190725745110557951212216420211661924967254331191225139521162906076921569368244450659981471595958939651383412470810415059485545200588748879042388314043722070389184803200400662118584460842904244174794805935803430401307945950891735850902383180133284107361054748026823832144670590618848224853568406612339781358665705517732458644253430031404237438975915555035487544192238385218118278059894699302440715622608875712399439268969220996631822608717573868432316153767007858161163399189964660069823732407249870086041483753868216476021624062034701237955239578348235166418880759549978710509662209963714337503220627885806538991263422416438734894410389541205219700141827854510552314129498085990301686799587901347092620682766309293119321032299102040752469859174413611656162651936466062989985504626978143003776312143981471558663976549684339828442637717180896320233481251570828051629675173507589803779272050728037681914881452012264936682608004741596638708983944676116938474585783878909183854014093066628704036945405577940003099033257836109573013174382794551624097568983235784235029924698273707616676257885023529968268182090718334727991661870224557619081147587316859189813063227944552164737331000874329719871077500080600964469030641182474494498164313569765192574300860397603843193954926038913853127885265791494287605780176069197164895095078811879358897531576051072446499563321313313213786392091077520964090213701501104552468104135304417658020452352648697461096140597393137897846883368754336197429340812717388022743125315584542940373494232389183568808732202245068367992881115529059307451643369407913106964541674783503578335384101781570502783653381550055946576919304763653727692692621502261346499616555329651548336641173375160446498273478877985307097316266795747446938768988801145223073672956201733278500087196881996068997928135549759519780155813130082282035575878325316755062457277061075768753020415801216620203523907645675329104661944856407060482538624386077152510357181916027198895989886533409522447363107449346781956265837420046370073875071185021210048575025169658013639849065602065771191243506985894966640882334189393382334423180893648891661929037376409160892985618579770500768781526191906596888763643377682472484799114850578078463907922045291899847537844229661315732942064082579310413747580768102317463128955317350622300929851793818694500974517297110801453716635270244231505876448506846226357369484962976206724701575268688282251784287563744712918827688807596933842803248109422697943607075550736585973412383020344641519723627935557394681252721533001043268603372633684872884891981470154635460524232549445064219828403445821761420295861906824674414314701030887961385037974710568379165831302105542827345020768603842659174496012547424129340546313623807140281074786792875467134748840790822193152371579418117545697872344522066462350307509139287411966771480999020854427258508312109541395842987989686459712135722011667269551319684275018144215502173723316014322926609314806320149682388643494675888859874649192282281387865651760799137783692516796679547191049126888509401251269519488098283057483479292679498137926695798196726771961048994994565423140669427620780978827986267069904719322287634547180117353172546699089466998743424839747454768031112410277222513362038602498815360908976717369845390157369858711640651241375064880894286374020936467272443756249115535038209034836531864046859322390844658469782671694375036805247679596599422836907775524772796954252079817292653586910364304748088209818413215016091865090281368136264695531358521392633961594357721469872521617431265053555222315612031745505815999871274940184391994420051348499071733437021512265795084713805609747150875281110902257347114155375274066344294774027774859653498192287299281818287544073198737370708358619699252067833344562767592438305228149986199517342606526144155251459836761951863872124572771028759775790507366384777278901256888513672561909919280368356855385035736611834660927071202682004664492992870291346172183007299637152949959415121722466164346714934323256602617849514233889923531233081249603897042169741121236355386422735132259928006621237799046631831108488069626775998593367890301351475430750497296966655917681579913569799428833998154928509230985723202236364187553692125380467717779369096541965326987905669200745817892552489395766125745998842769065117356518178189745029259714141775504886104704049742368548378431043840202192445425840440116882019579677917960835512784279989519971788011577369144217644413870474457375951107626302450746864757539373394374785313423076978352198093089367667396529806422247636682481181724059664668492206452127879152405829636685101098910888457656185633422095510302413746024654610280556264621355152435356527396541623880577711756054499892189577260179895770339640117132567203106026365007288866807595213674841992810197985382136214597017206669386737233740555361055954336588569212442874855872430596697375607361980407820475424479647715962933962342653898521424441021720313238138269241496311779307761530651172076612316808848405190540011700239336398643428151040693755053818256083550674346756056441462168222905869157767003449806579170405087411548031102414659833587574076652523027527999764205992897309760180048818932704877585709437658343058629042279153434727433227906271777227958092460115506292224116806420705051103045500418663408467030323374162932844110856738143644004254233471062935861165750859798519859121390713401623602224084473841710640095729864518034160929994078114464794759142252147346275439626661005605649463793811824492347967736847892746968971906238695066149415896653314676247782004086871296030207553761024220907703140184056261686806745951271107722696231469279126860950370360956057630344571182735334726523411513142034315517739731370247819779748779345082188469324224225203509991076100586333682286437403462224495037163668952049547197450897649264834819348419691814740523086457166183394781330462313658217634122187050202465103831587780214959727077658349049903231501088723695551164590715528127715245825672510919844319917790360759538811533262839365162818592065373013641361433686848475875606821280985511796710749754935337159667135197937653118903580157483234830561700046588901016011154217483888554631588637086213276585547770564677996450283066427244927085501252285541451278529816568177042326592137029128962255543970412899438846900120935515674181288293719734677958597885233039508946557018691303645220400882828094381734351660721052563967058322628573932329008321535485954406167331166057438085091224427934622824827194798809448375664403621274858960546679984747449420860038901903256668199050318608365230948899832050293538239799301172330981619098357669629836624585654999800676113012311776378700766262331205543242245786219807239868514248619896752479335359591846631099627502763932526361829416609374328942449487059678598200651189925290710573472573719590783491998480536658058174643674493147817122783087969846605730189082457357691738063367949931394936807289583827568407834652468439101907675085545100495536698543969356780961290892010806784597145330124843119776070019245817103252876442284286608305993061655608820594301431191718339602514226469855819287859311356450216405390084658459378714716519722492292783620996591045376095616384293814298482437576444319376197931686142776092565110164352683373289638195948638712393833514628210205788155870500948329466481104276858037749821437927864348765544347480538001200755036916034460528635289575321925219050740648084694734664654204225107616842634202341324319867278378365830958438544178968477971292112989350306948186956987645543754536224695198457748943675030707432104654693376809648451618615334358953345962046374189406583122151431114249951058105868783407371106933355988888053535692035787504833503966764305110615351049624191225168012139327310807090350183132334391595918700159737981457929396031088461244090314286524416796944728161707674160601974924109949520919976951955716377585475889834016917051173123952024718032721552575395103037077844665787256564549375911228228426874208292425550501482843488519358623565143731387540857029030710244512334644978390398057678858053866452729715484983366819040355623498216014015886921770614922129451178909706003918116369058060478845330848853943050822128753503546496605757995673177063391200108244087025321393685284570282419168042951924518920201711370652547064209237248875480766945538631281566287624419802210459845722962274011724529128972938458508644624560480166192979770217055859995217615478673724877196925139835300100222329421627130904939322202222755752043358117501475040210351591994686258443081727802399482268376111352461422108920178451767469636405088040301319506994436167847783137985522482101642315191640402280845712338601123011749070993081237962876174739669205833201773977169517703078517230073847401452373037667486091822641770192083958211280073680693580502475915065234257344972236565742526343185616472378171354443920862013923763942455917447964234687857228828567971299625182038114220670801298094277380590742850744153821962749771991724836499313846326012802959491243005303998152123068470696780579300356440622150392362802885116341038421550134688347418608644139686785591942294736843522604156510192120483756951194708691324404570237102508442237900818432016401700083852766007827373152345478090112565657255009266752736261874992364653463640604615520909610869470442998395579518148006406253989270513462118847600943579806271297234169669179401948727406571024293089694096739198440735512262953481249516930110042263011910409271823881219075929904123058417168412134345621872413027552037687425896997153221866746932584403220222490354238554881825431235108295055930872573412587288565170058086566170048629080061526730255168688822977767055370480320029452872459591208768672865537501500494737323169200473836394965258314569618009410759322756711611915761825675488792372923225740319552851131902250205284624668693026892478056074827592598361270287466713309276343795651157230227763611836669493476994395552958919676906934747983891689927204854812835814068038897643091766190647207281815169047915954578524334012634459646497944491678276195888074698203256143305859549620074524967169770204371085157389591054302915381084468760421874690763917558501634048391350718894336991678407788040471753612851686962049565650540805820337455433072611237416318682734052173655529589745287913022450696692469441782645024521028082129520667532913620888999821127854917981370935861881129620134446082519867474700169686138655666700438529552629197624990521583399467359348565491049003993523832630900907360932838904708189448304912548709239873507886591052361334261497077305818323062391344723311986979650730356408354567507352997501807085570289037684848540921555778740146131887934473731278995201573804208385471152164692234785385640068653300556080823899844441781463944624597610347213756570892372013996595304577480735701336652395637424658110382231481868876415643802021412303290993055692655504674314435872193336566236705740725687807072330460045025989153495754568300320876733379161525886705369455960003533307032791961994122539453974917070175113779000281055010140049715247638290162245090311136787665967515808864120370115747840986868806059920814395114215450240867771808246595556173827113585884118913490987392826859334657894677241882030235002811913245086335936361740247291955183109124780095276509103407505332315182138934489457002094806395069758642145547869753332528805988793432302013081938614626031471254047058393401610109798251560184710757813897287509509571250058642988473783774304734365726517350985973022215750060757137121057274016933468990483028212839079952957705344572974517713897943644659793142304042749905972813621285845487963502322137346976007568039252739061207395913159547720237018660163583979729642948329801877134104782389010071255204074690249316655858581399702845812470653147109201814989979210581656798101884284437510602318587837586186255789713118348221156967632142355535262725199006940867402613035356571092617983985097965235433174491535307249157635981440961351462572284537915367788827827033585849504560241678930308514596945275170991335214547741915051388834759398611716756794488715655059836988147321313092661422807999486247065351658046768142527127045096715032456683775267794095434145735231039333617678539266795940148889201348981037385862367315803532992718666528756516343316722234889288858430775413404964628133767572298571012376300950678517254465929178469210767112445402856937307615243848460367400691840942690481156066937610351494558544168827466400121833511186100664847787131236317486389678508012456429496731267554270523161812905856580400709558211326006314153845994250455680872026568957484189546620956658832917977037159836387963883403557785976655034909541303318897920242898615073952690549510964112885027973690042234563807672304308365309592044986281137141984510378597462526648544832495442210562792153242214560895845771035378715561243454148931273224934949531733362215560616100098252999211918664320310184122074101370536790384288136843080964455353403486432496835935905205368457345784968835293838929534023936348778931454662049106446108419301116202958656605178318658592516008972860283052606084863452952563541165725966873796664729655373878790805085388004399710274064628585142318838373877564903071371696170655902235950165809251275702897648641977779544263800321693788802055075781120408412625909316248928941606827050044682966903150995608974773389594129087109517035750916968064372693470570381279176533561933608406338893956618747960554530255017681342071897685537748368057636359928376986858264183063236234930706166468543746627866525156785150259619810521961364948058188556394918221352312516089581458616486635158509348664705947493568726531963775741340768637355659661933402991736044076087669590919020492176675925329628113035376654628506645028407575132315320551946464871543090065801982541826119009118616852515543159331873833000510166957172680823451425473891860292926941257550459329818142386744430795658469843058513528492272734468457708230993027665762178212363403553764716831071077885949488420086069817348961678081745376991372072976204159611455202576150373367077278352323716100950133307356737269647505324323644695844372488008845961765589266814859853363652022168024964300290452672469031230492305990663410661680263550402762227626118056718080732656197574674233877809000112041013026889039265111343796778837282042401471766702626276426730301224524592497743671974355732195705783113038660733174746290646013727515406440578587300954875762580547292633859164793765788456637325991374026197138050113916862387252469435699360982571037697703889663005252123999721857457840287013848841568713346647137144278034971176988071635837717251274561403535726922225947019814886426810706070352242267215875593994560640322221386916536698921599226645799932154219821276889076494262203511215694113602426891149968417772348121325491932559810910641852559738888980953113129910984936730301277922716673358636940503545164607446204819447286663306771268676727762017803129275835489782535225303043134561349879153052125652120811564994761322374940899034268641916308088458795966812889091680398074287614540448094616647601553939490659589702084763660254054823347413219450028770353759695192392979536324258248859977904776905963931073440176560090646323601697228227652293361542171236668412412189717642514175220205107466199460829672545899008806064152767150876049139309442760323891217438273985894945547254942772376230886455401579723423153858831058223908112707553478007938529177388741036333786253132000872711683693251377340231210112049813857053456500757497993668059324294176787610017535220639167572425161917086888791763191643118750625320175499039307076138431150716149669834170531300996420232257100847038487282310355952422903527874543399083433679948285489527103104001539306627666266046174648243880626393348253050689932832832498805807771778654582292536221271014025085798076391508448611904314127693699917223161412234757126004113829300710446857350514695263919796837717109989135733177423476966360972076773944842182382325254904965170121502180457774808236557911299220619896542373740813855738587025246280121066731877307039031174333672585783210526416930643476192796864222000394612798911245820656694334570971490690044419847224320895751115372495825722046379112756697383688100739600459533688327619788837275982975194822148477311972924052851055021238570643978052222161636923122833409143316515911907557208845733472256239198990149579534081890691971948855512412362386726430284653759459007417796702498341584231889139005219714567383585194068682596656848271562491139783447364945234016081203310311787232055252257726076439718533523753504557001871632452159221223160154303617749333199068655028326377574114624593939191534561119782526493546367864415269170792656343266028812529770973321857053775628663369861493984957597394860893361095664867845697848901708406752194543282931850259376754135596088804961321127369039788408519422727096076323248598583761779718382085206808024669165746374776047235797736141510891715023979258618523114841823104581897596726489815923348847655410337259127087866408493946873805312597923033863399232611592933816937445160792520962194990503701076903109994887102971150422598314327843990363866897606904310569301267805073603368059746626467837697747547601971885621911536924885014641744313196962601731204222313884454779801921525852786296525264962463568033347445313094217842928644351218286531026703061281070731135089471299654391516064068838278161662299331681216614371125611947223577498668346134526053255635454969989367139880695330901100214672387401465960434931454719767943324455089388201588014027195096088917231708504209334446195170680286187042259114153049958647555759911263223383030876046583411352744317335476714642564233783136891098721258611455676350687425261375278010533825175553891059821741743470830009243826394563420737103519111309666716723582693753232882130109105714342765242823480299186914655985775902658266115824974062784154041974834991236147892762197185706835177284374758944847683088542648406444769395956013732261472230450849359294096798004201904725094986348515089566122229266019290435898212283851932100425739951729396656433696135139314800424103630352826029716691419664897313101547283518219123727658771791523465904819039485133475446734963996529248735154147816868070308492730754107837996326975920652004358438390822286158316025081102074784270017099458545587542782513939967052788838385733004260977826302616371633421788988432313379108599572789467850986823901615550764961009914744199480964799180832931682108663531126241671774121315478378653562617015684293130421391544938800365715652774406186667973330300145571498296337872469522771625702161108664122559621452124993956104940537860831465821072132411812767296843795309634242292440428394089905026371842744058722332582469604827272179820289443970543826522343088947802460097461299313313462313127885595681531214726048768626124919042868076497811144474523745825274523472308969781644281535896389183439175795491239441463304064693307092364272396794093712007176627751993859806391089907165013541905322334994241291538820216744349790135554112192842728388856603056766154514313936661465713545579110288877741202325236882692296815545090716432268016820264048921154678797434590149416097038533430870712538541383904951625731067928052774165914598638526968881859247452457190667255636958194739378212302434812254283218126313936546911778273203840176033219399866864072709171814446659237594851436000307766774323225470194050724129563613014160894250382024757056339345608517763812587121627150211893513141309525099344515509814674001774428880459673710970509279449234371422861727029864831419654458314832414031172962309334185731518123051938962347126813606322659660781025092839437537452932223301329627691461499957013715636456801645417881419621145073685630851876749010653518578125275829543221707255842731618594495985280055331595039155045849437509612789987729670148852689680246848330928400359761059637217841570662850694019153449457407864279451704993392391170864309101819808434055820033206470317417143206114899643009423094810934503642067438218174090587803927169733510838574548481539142198495690075988409199166697595631685684185624923110384587193621194231454909353818364524587513446578295274537027095391781115439788521425570448703101673547288064127900920304094125696980707925101743650135290063415234125878715826243090896471061891992189532447610314486660462046094940238926302529831613513937362647348193607086279763604661049060989167003708474587162487239423269219436905211592453895984493662727891865480343232222884617152336373923783431223530465871482697457675422200326207372188397904248453487715511726957381881451275674861430564381840670448651004632489299879008083285019695086497823251339358152766754441911040240395045689097272986254471296548929683960405968931353912382394709001690433648885408942834380313413287415677768527418758994298913722129268693449229723237208447709489864716633701390432998807358656004105294695340759124858942150499883757541200606525479388241655959547114109570663138610535471519017334628951768389254439194712755786477024870450557790109777900873229059897945064439666213469358648252355861120983022719336097147312848818953702609931085905688674535413217225625766108506036363653852494123535135739525455426513911478757653350162104574051617789454472808790809660788246123973939519745614298707217948215554724731361753321372537118508465464737123116146257205545745210967241785095438099800921367030144444387692926514008434758611274931850006924290533916577983274616662322674714981061129800603818830591457693778711097899948226084497364707661543928735269517306827577127203441242835769088648363116193193775104084227386829708700897951000575116576399694701812418683571897254024786851490310275931347196049683188579758348576025324922951190426322036965074562846073713259491825881534455047435160424950982057064597490529044339662059563058524800673834914394067395727125231492424421219500324735006823997628529470196810783718351749517708734030629391961639349176447860014513999070314839508990813146189177895215269402307949549497286489568558306680897726567121034451004519564682104886296077515600480154801291385961859992698311842607015963451776180912998064303052587588459479787466500390572159212481394425190361889045208775535993776592307291724437687976270840356737775261112629095694400612736086301339204365858902831142130995714379116530722605607088918310446858001785115488893482395152180002429115268248483061319191132018163651269035881084501745192650308880074668629591524061353017936844026278881787872073538329087700421758671113996220230956401202296094051024113635131394226600302897308929922500964046909660695309953555781348577898868243880911396632553653474077526448539878438500428761147993592235102398096049229895095878817716842510117767700148618022726174101595202014320746122307539561701247421423615639306336315485037785964854357055347422643119374252984099375437133390985645821334632923723398228060998386340202665043410865054101820761073479330771746674209519172310072900270531974976977306233499597402040340669035566866515803055702479425844901749757098405363872691923708872590126345674899601813898253747592550591852317007524761230233419587273050805570285934704755664718131753493414081180768915774085490663727175028390656199067103357824514464568590749108331862567558157596284333118847207433778619656727875103780731121042602755747061244108782321717325748557206319633871461581986823698060993396545768629256891237792428502321606799686610993113378206024786241588441689759480566321321816888383264988374493300793773929020466894283257781303460286798369457805802392628967705768276442329562597567548689950376927546515742390013141687098349329855725670546700633464646654405068382659473460853300854527292885103101740294740476954762115985760009454264175725279863360825382985236466379419065112844637410332539923184476979416780438414660670516611034971832124875612286260717010870943024673800017513365684963265949339925983936363044146957633430842797116860512464674254212286498020246912836390619795275215398363138584106655514464388683543028489264701651144850580259297684699366280865554258744683734960510218185201358397749392591434254940426622018833949839433689559818136270963611552311416403774570472661321336782004340990740664774561628814841605663728240281155710770146196016537349075605877601151712420166273364205643125498864673164038248443867590321684043895429497410545604999892674613312365914179339861611430492345405182750663729057490836903492687909300907105191608499872646857628998896532061963722835436295883122781830690357232377346050117939480006313461810234452180395021423743378759470844453277200344998714099750810110012946564959732763395186319986547129714519141757535676134628425807022276170504021704847243924145522772452975869020439843023554444144071049497509048575438378257273750574251592651421611256483107077903132509040961280164820793512678204285347175081791845138322034768101905369425245733331652008714310850301422835040145616019489783640133876040796170592973782471350586098683566315013405397267533722348729391699031102800977484291523865337077295261336594792311708514876948474785074174860740530745730712907297446069619902890359214973966046542707109366902604631693820783483710874886829941738283868284343260563780237484981798530009945608541942996711652283223611243554478619542064325867208114370276891999159316125499846541761384190302109634883625451947526115295484266634384427577163994950809811734709916019156174758766311102788108686572738279780986445675239834905219203666219198044282577802472835459342655359076685767773448342617827360709487965223326410863022657789228046261525529402345986038799776456767032206827563517318834568817043695696029309220900896169529282209297291955257368505204096885091657458887710474811701686071046096079105192522063071016965689637258151950666687856239200890024152321218178358477777175162461661794969311840433529246500970666030157989987133252040174591457118987200522823762481168479904312834193780871809316863935479936903536017836761601730054545029445041200806914979176025497941310529859836444398853089748949877330907441799184482477006942377482981885852540929398123114493107789871186448591419109938134892847845665626907166691670807149240508775917508754639928009922511920654580783893056278868110546275726840938601090951893679218422110140567534422262268249645180913378967744159775834612948342829312878996064902683441509182459803631620493717891311166551170226975619416053335016428738492584963055646805051993875342293880883475410803473155284616586961316418996190641380086825239237129499687607550082824364129234785706043337826559423161758528218769564513654044591853283386573719480601765628380131062558891970829752082076295120974101507044093386314530838521548139918448370434256758072447345531763036774809746475134110578707954867999531222936825882409037803969217336837163164486556514412790020866953537978533233164353862643798026587799145107078405776496525203690081439559863717022461388958646496742429933914992601621135823566403999085393971815367846536725564559707741335449077945578034370294859690863912398204713347515957766529671902773097131109913311481759618854500665117562443568296378065506424288174989549928415878172017077270937959283823783475516500885372531381258848818877290787847236931180098369635540934191735140340460675593656711208929608698326866546082072268809999790688564250946145358192729483557979540121605302787856689295002526129184774755825962978977072688296718339927682021058965080309936982093769755309584448381547864953743434898587394093702300568970091946842323461962349338789785517390017674493116688676500780904987556575978624692707085070411417622996325269303041254156369902529647811340717944562757378598841513621505509861219489606677783556865308788194932602368158376994706686226863106834184142936817477236302702458996205387933814196268707819592649754495808651201251719464973583023127027008460608730936070737617411592323575839357555316405404878578868890790054354485197565416512410530766094784473942093499982900934111427438784793206339323131771481741061763635178424963354519567011160737460979868826201520021706176205974834867678039612320129020087935900336529597395588992267200381381070386419904915682952972579572806259683751696659054123480461346036345829772941701012842191809113933773219759409185512485382161548140190727791464119395325028023185859365011029746959858182905422628555573987986455124464906539359755004102916014084742879754348894483311773868021455909080528513785523235503521275161012874999845287655835416563004505829466022145353915898803696568215494931194837098354958676460736581992745606085719866098880255996036626757112707177711091338330598918372732685527858519954350289151232502724107737847976850129912820428402534309567979881503250772857136132988574125876039138402848925655452426666542731595297258220615045495109227901773454002464510926237887792860437473660438186325001403120151033354294487961841064625003903906140123896071992635886953586444660203408651797124416897817065716106029513077342333588399523294944309649587693022785095219919955947784362392290311380379585968245651813606340385520079177364304660044682107024204458511350326574446522295680245717745945772783581109097309793334611368093653690988246684072935361181610027258541586652886455003060196092356911376211412789264033331066400336307731594465483840822003582037396012446732011379122706534825461613000774387481717149758476317402152663168842682067935673571241003302154886590460716627846436002722210930650056864479956333718471249981792612302769884733262713988570947273141328157227386114732511049439588647868610862555403785383501816328788219831534981431425253908266488240134163139810788665973745771977817030177823533428597817441454898145036519543043942054276794268649038954814232008869503606849480069227550622374392429136409688257220490148579622710603623041578025968697362494144846372195887725911025405330989281444750980021132211655392483868344275806828154639203934865065927394021409814170217689947218841517973631640718805408009608694583293149483018728063427678980778710131090023898507153450753245359328353106620131064233155716845510000552370328109352396998918996482490751342587295183148118331126983361242474200519643611626376865557635259006061134610285076870535155891635674443530932810005486045113207810551286609752967778799157429891795287598733907114106662029059521166530767954031434396082527419686619844312993993995112294961221087609224857778262219811552747036818053731639990334209294527694620086132726377906343550543691468529718081297534660592603679576405276877626814858292703424436910814688020276958998581310407924288546467899809389166671469299208221241804365882539168781607932693917235946645517902872897345303338367017146886720789632552344848990911846622236947055760220171731563494296564595664519375615809073744649616237012900470964023402744357079428503618645327784492670066328059841315875400494993181264376536508966034567856602127510051589837020864735667715943145144878074722721700884353888143452804560848533417156517527755322136235693192016641955921958879884413275977923840310246211604644730362906359443816907930965488775675094437434153002729444531078646220982033351884975175271902653731062313442789892747126531927501238837538525831404991803706716560357723977382177362536392821764458723853339388089459601613795770214369007342746727647577107277709122791025428442946297911841165031953249199710176301083496843539771636398034687991926394960635008960799152507648219748923862498733113729576943960400908551466851014608535681586971215448787528445580447579414083707730589124449291010189681137178569354753278403014790651717807202502120751864713220220735275586281926639637688523560632491747895108211711691394194308049335337708522054426876301578710811163379926681178679519383904030750754849589712368163949903958610474208584051646761696545563806191891116166465672949066568650455768980640741318449068167829540201803611445671860220970770027305376693486080286600426970169412554134393698254567598353531506787418391187818005186801975849618505673434555460995611341208350715152043266140221748286369447825378753974942244579721359936113773045712549401086090159019467825605027282954070219251126125059365071549121145286871698447485480217454842320126836664046080285313577206783247879271386339297662488019510591201721895507184096640347344016581889574677724610283870622844912025582194085295633953362042685599037299728103283443957933523203628660944537466878120100204849321024606332562603122394222051592863267988003018257744484255222219104680516967654742342170581647919287890476733560160884748981041320470365778740341628219412415083012808212085239589687621023330381918929451648853741723551389539592899398367610646678830503243462427371823426890860045911350472347509410603890657245814219288887012826935710848264462105021206416482354184158284847741327412041377951094382675051041750187510690343942313463128078419213638112111647876873039543248445622975812344888126080546107170523638807261276557224402400124490560042041516612723158860016996034583228648550924042247481306401346316738026158649391796410289517692378478282436423757031754575181706222105333371428526286243363880941761791684320546789610779000202610885853032559530010045065961513361339450460684368901485040215303122519618759971497385544634198827234896141804308281171280835398352937908989365679035319450831304505083105407570546915813131353402694057980458455217457154874834100602589253000566724229349925949510614292913117945069065280155867619465073380546374051955344132433668573755768143108208687838623075821429725966942617098441489145993632883114818972372224962890005783030297864235328670064032198328034391631840450294689356095522049021064022006949956461146313629704441185087555875834963835853811944290301433114996206994948662965277199841827392366600642939509417030500111480748440327447102611943144772720867134300475554808602428099638569222069020955150021448340171174431401104336042215037469542217651264595954971003878850458018894425794600840703982131702705658785577095418834618033017099772451062318412737614035092269496899346665650546150263249315453097513839679364493582473325076483845612780276724338955849132986828982931310211401023390297152994661483120122569017761104130013120778167264737388476229027967003849362480678086935699176603037970720393496621626584629295894157904258621971500719571227431177175592478274772994312745851184005576839115544373204751502464001197261503919864453065855658808086192769167004539802004943351084633382087524239125522478693197893283274578470847524356001611868790628251603273102868313534002964583388744894099125844410671420036088784046939056156071767644631131423062798477028805065159981564729476687591634492255276305798482790256133395692605306924118651961673406649611947116338987144845848335464849987007077265982829935474501176507598342812443368291591865691436508005633911857745788225687921586626617213874946625987380044158094829281595875558025419242462173703339905914441325380493131516707619886173293529030850055487969600993272813622420857641068268871943879214627898248237349968578518265937868052846881573258401311136103096115917897152425775630516020712365032487117575810697799534626983532261737632243241575296573144335524816280155761412901928180583247481997863977900184211398782480740411294544827422930326936728325503906611556103113387089706620923268760091737647122388844637994683640949033517282231214512322588572411002704980092395558922201930132037026846939389071429061165591266604899011422153981126709181520532350085738204111048249670760206049253523199198698803099147439258016764261312861949483937044408397990384350523105213443509802350655507812370240573517285210816232595116573691424494905224510545222396010359012206150585723505922010146375746904548586875839359777363239956567709849461428854166350739937926515128510847606960554505656884027373525404972150377287088438476474253483883759721006720503751606524003105591476253565601596753578362255433204300419517776048122221042748631253168695956388596704184244789835074657838777486480439482480382652630901135050119191237175980740626355657344883297202079044709950043563403316989531949229652435756403015830141439817888141726737564855793904601246336523492765196086302157213070260001017054762621914308361759291800961724116495480410643647923959477672544217119447733855721529502636091745013303548381831084784602180078274755725669380532581859176234733104594321220083747695552129136982947739934158437258077061180868939197165957277265190227240566369484498584716714331998702555242170389844973371079029414637860666102487119995697379274116619522279829956691280898262144979355359111922741815677079676304124270956611891660863439596695493627425333361612358693604537472799426982461857677159517382681738754834943814682090921310078083399391402443869367186356477969331920456585723123460178283327105163750980974499553494686561505033848064997699761552459342070454297949705596607385459290549707160336376044622979121499276274793301679072991343728562209059531043920711402570410357648279473504006745109762924834381877936774005050793723336111635533530036266544548732051730583459851969977347659792017830801124430466008134274599380290959712046968971498333996066435121682475459721191284766398019502220001251093496944085708634965996196824701911688988464561778893218841767118079143716887390570324377983830038025196266011692860725027578673122330539891196504974475093431365310535292210403876088637995551206843151642778198302868658121186772003300450800153116696250027188888272119974604360894524618153406249087799251678897430922962458115449920689805141624263314121008966272071722068178705817106227512988481268137477390873536014405595711383376393508667443337896146708041220048097286537266644716707941771400446348457882135368339700521450347297600308529895710218538733943924074131481891055698173060022081547907162644654744761355772859767699806427673477656325027298589933482473594037421739160653427064632650364761252745515850068873797040651539947059898034669364358980951910846250939675685639011659926174153322025523712077384848266670823764831612370523403711777451092694998815541353134390744060821873167639626989325768468948165722095494256837051175755219290923236733289491896334975129598690894877849445226016265852931923970480203029688882764082289347426709037502650998676702288740955817953231097436354643130223606448060947601251167194412675303448510111357600116974506799095805188639465206070674333405231115875759477173116109178666590241647343915903166329851517879331051240496458224562082648910602454697638751271563831052742054563967379590998875546387009741674348416861255838468557251151460283499986675626585375929444259582031013922099854227383417026958205996566439677743443100416610924958468163618215566406192794590200091466571494342983607012867250331098028547738368906419482767114055819029537077966034960884641148297076358175051482950971407996977430411728120187419494972607848984554643877177821499825963953711678009182997525031641377036359723059531009778160828393417069632368244499457229741662926204509100882355598424084207342808957406784116050491675389956661086720054206922410181799033171719074905434650357702738416466147314445376321063129599762742375559794625472448784201204958839058441519433342884985782063434431811852397733653220518225763631681195401973189690726542337098171015018038031246191141384017322803029377151302980906449569815263355202492315574864033723842135808734269922170604929172725662121640476796819224782449598458910905364521901695530303075266761009471975650425539774764285303236917797860859899501001436693350792839586627325884522204817015017461760569258574952255662656312665609787848114442298961563379448282092447785355508419865495108997696200261929533591837646735069719815914288140096129051859239949785052944073252404351638358541218980509386862787166503368090986280442464175262061912956703589229356285237588466960241163271216040941021021354004252837840396634921346905419047935072825676746708970970905803737493818432367465883957269900838649995957409326469010492474520850132593262162660324415321991160299851842125836230234924213685235877349764879640638792704338142817634942650230837854858757317872843450591247957810873820779000014198969304785066849829457208769006753512390815878987954641725497531124065870184825351275713988794384967965650813586418231565903725711254257645454836915191625193374591589819247299686795902097100259818452752672135534134250339664615227166812527750956489119521900160624219518862410613377358995722324836401225635159897118180096649899550496714346443071724701050274052806646786801277941287089814319513706243785563354614510393546553768667184097709793354089259911087150971694314616201548523598679855363879359446684524602067059533096385693945287637731100526952654668775494943089882387345749777426602554499212698873390484473393367513093104923403748319254013092410346644271369947779635144823518517456258810600870870437119059829732939663152359603137816149669703490141933185364026358753737763313732646863444467633453598750245313203221724463809862571568980035823713975813069798593960175354644835691076624327779529313834089967087267993341558616381506293676290220004774915213136095282744850037387544090011113263706656962310673311997564074296739823724977212922362819976137351625435651559225794033584245564170490267034634041981612015135828941344369366204617498756789083969349840546175917433165440067437170737120469122123242184823950540190558417137878813725884520782126683582870325713709326828002143704282968198316243526873696784338311005234528099840796290804559812019360636175435145421290152383912120850610632584208196000924219630434395560086330853994485995576336610478909288457883353807579816832587044952209363596891502220563744035497051243474743034879273067225157209237634162535098632937742240912490581235098670256370405556108766421200430528220474004018205643497880395947179661184242746631356812050295798511624382838077076535680987968596887475242870559203275328843952594444083078101872647501600443703146832909104027047168840101667698817706829271768937033316046352698850476784187847691651177215476249486401154086198954810561163787278304656708161880930802094227102078603948337896669707992667423570379110620898074250533986701238036042950429798576854656999862180606361901300255454626415825828218171743916318032101010636041420428801250803743655302361488005537530130918136120764152122977321366673269479093186081593385134815093928692476702128849456102278452055558778806361115882776866632109139275010293752649034685480173668848336352313671488976818279190167721857440258152406331160620610442162074692724204805638641044637036885048969974279912775660586265040281246740699086691545409146854696751092791339424514822738053053262522416801176979525074479823567295322409297086137878397450069424079858651984598086036847471713798392948308743650326233742534075002425983871453388410568113470540328909711412801332424588581831804364497413539273317786987756030916335958149880835058602557552251815917169035254472581053109022546602342141312424253266607668956369554730295315153138611848529195447700799700965557356870271514200101669369110896308083966814451477020635156857764362852578592842595210815377051832387492871827842616842026383506443512387039687074837906662110077955480039489033473963223561171431571446644264285966617825346524888693260638962213520206882303619162971212301444604738270052551175039352453562103374397527999289707330012287592412856956781109998537925271524817119626679754100033643502482683477132672767242162756394201194659687942011925626537909594667764811636269277918123715195477187806804773092781255844357067343640793970470547670571267670818826077784402274680798205470480454342343633063687404840794536030298289572454438060732745441501714583724271431164735219077040096561604659698157915966398153460184603802311420197628927685713020253577485606603325112132219603950585491804713398208951041928575170133087865124828522553278457528861081171051395983328081334956481751550476322186773563401244309919738463713272768500804822557866152852744264893643392845074556588961559018498031741636018702119278059133920979903844549199563012025668594196684602983913902498169808819130941975536642001483296667109417024738362139084688286240475661741576389512636906612863064165283268471451960963343074595252889003715882848488827885242780434417575372059773474856603506954366209714791647398727253639041281506561739064536276842707509792754351795829546584911570266390304850874984805151599610302897205122471896379750963917213301284007248325073682552119704617532027589344115926949777599628630241538069728869990925620532124545776305946573754416231940842131138082833997961776625651312326239682435062298691255828560767860679963011007708284621031409972282326730039714302988839875407804566016326726435785544911881209762563404025202879113004923882881793165901274600471175345544382534824323866053136373222332395329401263591049478922757991759689493201983144034949906346954008446724690778700788082530937938899468938213984741227214798459939782483919019577496731813206137254365656223235166415746048171356676249295684092609977009600769835633752680494538175115868629967088566889117925547832788748552518074790546823835312334763177734857487310919617001994305513876807898573125421711612312932415705050150370525681784761228670039087071989867139444256111880657549675106465837645462649878787581157903894622339310037136278164623278475654542291137883087184494364487147430204656274114967605680329542501173008894058496053163650408514675425058874509086531787639236391456057067005086561685123178763854791634512427811607571673711028948594718920201009579778399104155283440397063604194458985098141741439299206224377363011901421560231216462677234338279173992109412076252433717963763021101863056189555921200419065454128787530749045249415753177970243469148048521090294662397456113779461197605985360527182648184338605858777350597234090910608404859419224224283294930141358201822293722305946849848319629762657692333883873945121802926339285052950480360019062236377933223754816641906893712628524652925712570779930596138157201215178281221511271117689189925745622988080267826851017937477369870552210586913241883908696586253622794423232400846520379975781532253341535658153363595570873249320299541156897358838180315023230270481929541155687838395010264750366631238929070188804976759665576601540380434416874064299566282213861951796825818777857647189042220566641731854002349757377512787143743542738272151606548839701112659098706431132343467008262265438834243807873050446242549488229424186836507422415912227836116467211484200710178194674609573005231745640252658712801916778103489950509551283726755583671678414539591451675927112946115841121906235046093387987430240780318520877283318628077712440390076295368843934949262266873040714634239356590689091746540043403146456419966586593628181448380827472516138878424219154446902189759819759829216017966849487092243851417964782210730497319073900731762835387773934986528326704731262543616171460590184977869719590279807630489422213497301606904827736793331414239989192614403592676477263521493172062736411681296208908272993458250137247740915753249327936752695133210315550532147636135431120510048052863391661326558303677458794414739479825282532001372475191776040238761695760224034393866190409146862334903582739285786922322202706132876859053220288659127038767255285414727281350426326978938092268581849921697927272724776634954919873614570805924789260873303493615663539583444741564130589001552612181450870473282530022660521831772422429603472145396091825222053224696551472682031672872618127293328845882753348460675040007077300964743171458885822357333560357308943251093511051151151830515012227191013226546970107444232109652685904804969658005455654649751402616696936651194805951434434992539432897955488424600037260056394642537917726780440593983711056678826986687104872544319150133072184192448013877008633434931570747300793496796872842343137380839161633447743662122971632802215873593291267888650514571852766550867846448009259126540230199669294799765775871089090129533192539340603490659044894521763166895215907062410427098214146103079526358355181645032143339119530035664191715558804949568827155248769367884139561666136480277069081748938726936122322999719993450772817636135721031724169878013010724543739999378043011352225456357385236134522348839807457723076584386782174727115834634171581439691800201145571042819639551426615081063409166805744465613458433949373584124746973653255967525163745625820159496383263398866554705284485876587548769021701780438521651704206252212161894468675544604955442712729316853047311081632086212030731803360005692000310482882177039893783922643895076684598919103295600520144697800858785313420370572007750950014427278516560049405715874416933300427488082949109273693866806534927439455334696808473789350069260856968672981974178949218898611621540304971647355579173039792172636550169001587594580009400376041543678739867169506921997366604294110115564923556981472253961367027974553967762064238534126514104982726534851560068889153268004642233994396231362933041784269099699528174791721627694920918180755521496688822376535856088787416048395135739367421776712889017051416356934742738642661696874324136628907193382093864697383744952130428461669292892050271050984120131590952782318143247554115375475207663559589561616367231218101939460669276070807726513243591824365932044493677973957155127629002825108844672330367613530844254002543881051831294982931453590803090981074161359467652524995698686693433174787813479661784895964040908121397756814398732794525535245245059234918936291921339112960873407877920091793809195490628652422675855271381644811147606890402605275190878656136600886338639289474554483312444467379806107005730519123409289622149983019456572897081403675888843828366869713331796589171043626856558712875043245371114588341981405005082170262396922196282147968921080007783850709758492326221452062654326934118113790344582740764633711578827378296775735658246101469810356636431744161811800592313936488168384378422716768196979977958332744695212468575639990507763742980143295813483236849211670344590986040106765674996162404727946810862125781030128986854010909088425541814475590360721386011586342129293950325297722631754603466466222992569147201798825928731478619676793049069461491486141093135345052767348903305381212323217762846110156633188581270463826106290761231381034655286107229746900683747333660935865415941030474975298255658153138113305152768104551645553367385825815941186038426204745107593822713300836981175647621088240118938697523223753135289610305717733691366410861045501083126281514807066522427794821722506201602278248542980422764486416325474591304798907428207238387185143025458510595517387788676163525802131191463985683047822374002557598517458261214019297961262992716590392265273552228193516417973013562625337054338085693988833970292878836862614129208562472432174803103447041766580163656526788478098382080529325899282917263746274946209131381957941051823121942924622744719152110798974664171966052646351925590145883135092432012308070503482757775536820021697564535689206491329785398736511014786650001996843225980188850213224227484632687928640674085315918395792350623225255761988389738484120093799619051555104340206906569918228747409107937344980375253762335871617384647302306110006036548127839418326652957635237325553146011150158668830599688989290680180821761706266086926647216075727052686009979646530167662205631069377752337425889069291877320479004601620545610853468906671139577204638153371724834422109152931983065975140238925666026886419733553734465676582965823854646588194088527923926662175918140432798570118601801124980255797032770630605486652369757264255241458736630653351239594370647300867969455195817182450203938898506651101506341306554395634881960654437216927658083361445598689854179704359400811134196896670344171950925986498022138078342302334965355992401029996712141372679894038124285205875451879035260387707438996629916282375464610074500543412926147826723945116454910585699308249514300426888266964647542571692145511812951861656816179623164271444699785811259829094196293823883363852640839010794131968360118515759638069271768998583276540457779168874561398446098049444336402275330128350082107811326057123954048409638144050936450543290684699859879036992508305357020974417752698153711853208578659097676629700471263729782391539615211572420927339868951888388871512537403547570707021860246521836864666307041423933430493741026290569738133435948253917577991374078785905918044449000783053104052546988841913140069153123643847944440737409990061533053971931158443148461006835971477280998809552758075629856228810131991433933275649257384611987948977598724595959589180492487062043187328796835758624144640223732117599726788241348051395789281942145539813869239195239436373325863759148366956945073185556302047877919078138795852369101658767423472616548041294815692813895997229528869917661124648039450747140079931238073103964136335980874063141824689220729043512731288306849392470245815108592541447845348155229832361215543695043658323209569282578058645958985894159423213821618139038587990432725628192747963329364657575815752436433197673537913825668750064343744724042979809033879509691501815211494868525243091561681674921730509098749496088445816661208988062032038141526736759870067789225756072182132931454753538413098853147495121298383604096389899325863322872571316958407578397126903648535343955546457468256761030344851361591500945083269838017375741430993593159614751564198340836631374241776807713536100780138616707358393419194849047277146599848998464044760000751937527961950059604043510861376522734702399434938481233682775153143314814969194004159550086472486815656828664573086185182525288822141285367944669006110335124582984705792833709021060450534929744057123843926180570024913855920475256921814516875861302028538249004524031229650808159144167886411672338467626471264529006426018853866100376810212504422117723100426705799163572333641835993482921922263681793238498825357127839436342543302370275719953269782831275599644284286607777781935222026400934899853012899787542123726089514980916482024255191920679117710218248567715194770995765923337928104543653293605125902887236773470581077333297642071961778630476961628879988958445459167469950722394164053568984162964750000840620079625420918404497454843628051694157893474223598467179544415750004253392528563245044675984256997387773656825143195743257318550099175168257280990771399722128374618269033288981260802110995053214688675862265445825984893890275551193980042475810056291293949318362199086218765118704976108511094238824921390613007374257698324382235279042298646248231549869960481456496325569592904161378534872867241337205912906587834617162773750579591543139168273129328558188394722849979768823716715358646332972840092641785726181661242048669576252079843174753039812000936967348667384462460669439423533940944188081283928167119514847927141227931036427201517646730112700198597996468751126630503081576348160192918763502391805700168726580229133349075423099844581931660136071131409088937266423676872505957081245490860630874928409901115524105394786122265883917462054445611189469891099187068723052398801343089720033695535660144849803917522451364278170575132299254938915420291100433668956366531808476111674743745294386268122686881355193549288900058302217885869155899187903050194474335044300122993770791136697162236464044418295267332139443612422073542494289647211272672276430910822158047389152375648283943101725069261900705453498813538984328847526366118948964699526790332363040888804430708514763506385104009199327579656637688459378478172226566225875488817167023321041283417485803292574384338812057643121260189233517317239652482144078726532620829110125674177500953835149779588886497273792535439783815107191483710025535786772185798743391913144214890621877588640482282356023529493777462854677011303221839573592891276667446500917038959666229527802486871038153825054476953186866188338460238377486884204038399834804993397438234862518012293971491668617852269206113209671846026735938519774869834087519002773275282918581205648523287624807332167655032058125983018273572606268922558492969218214911622396742834717513825871868800051166175373548892513372269173065735077281574911250014862244417711443235319876194920759450587869246006954021566602780055564385017309977040513920371441236182295820061708606220132486854874216035658328674244159908119002140613632168847381099731462791997476080131514847123225469247845119783799719025920293266699650875598694055363007378382863821593858580036603121480674888614259960510683558481569936347243435245017745229247098872881893536218100075742983033886022206054200655249362215839003071570912912747522379590631533900391732196489559694139144471086144652174368748576435598443572744276881166233103127221325198004671586413870651063998318059675333767125083390325287274262467457852434659900686550227915222147154848254171951194683763006649848512355848381241372451776678674056472117476454879616223046914704012514271520803331694808059351446244009756938980549727150959638064881036742017529391125586301725303605944343794273394534203643400571424788036824669258303119664211421564631929083096790149643091304718271800529825888601359603087035452257385204547155173785552555796639768554020395979936005021382309966026876478397342101226058777259378453293606452606011347606094429829359937989336226903862642610898533674741486954258557766795065161711384277257036079722657385283860942516048091479870723194641243361508997424700418834209500494323002492174601656507491613964836971121617436339194653979733617674674354394221433110146609525645561850131824926976490667039062270819687718495097437748611271195449028762873079187646089393193523797099820941784827063323762720752856085165363782048509404888048127855999271364265074873321806523201684556878113914908285546463651212211088979656010231114830536816473436553550263129092245794874072140840089827266434926928534919022186021344559939672767207544297808500422120999182491938847433646073748622122261798647708456597587996448027808121635120538592556272187890953510846803902764256778291288059715426241804454119880289081714746987430936440224877778016132458729539385252085476861684711253891390313270852478239573438190620048927282840950441337675946611356953068941980599736941493466983694008991571435337808732423149243370548275847852031912351018353933354146752943270862035839845763290055512154800079819493146381678846548138775451655548225650380010494903805877606363410828205575242972706632212781951389984018861650764578416923550145900257302302949535545552554120304372334260058250289508853987776133751001192782072066390485706339919740361844446980405567063483529622349281245073410830742034315554167089884440744715242993702883953369944501013711195295352054757624079639673331807541014707759359935645446839435779403938375221191293884485572052563665060889328053119629476549563875072881354926906248475198437364322723977276519550184528811797840996684852462787900421734131704485261928002512218180345356528299070062066806520282100259294614089576782242786809042801052865481196341247832773491690409855024533278333198062106183766878429515819003059302863401549299204712194190580776430347812945044694618552362189295735306851525380069931189926793084982557263878005463095451322984012501609019780182626834561120443067581997032602479588993479949079305094652798748619917562499282554061388778164505739133808313425953592834347272162838497975432805652352483727002858639583369448772885689505930362988419674102661958978989248085741099641878933495395706786157266152593352323642552060640840649940718921472288197153847343755177292738894046592120978754915395458873310990741966300452953008829946782833537215514150264170630546311242361785277508245153777963057885100992263157576005941375857467039057351951445631910569129958079135122284336285569998775603107170824068371129644668506792631332028088173498206570131782996719539980495822183844370408646722869422745180426017937251093002324267163131372848460531357700358451459915232829708819622374656890342957581667092187144179097192176751917202537764363641750794810050575377136794290814628084542716378886526076914206447036890323321590326541551675690214338066098277854391093495658695401286264836037959193641599440957651779314190664372246595250808727634314881117415108255611910902309941023447713186781363363240888658087213142188317880328010663113598941639568086839245410316681219184996315902765158098795066326486646920442944781357268649218220875501137018208970733885008421799492728983223427934788919846466505432801474235595545698910782240879667445037775550632676119446353028244970911676560358527868242856588657279490885403999214336472005075924889087580742838976413828788255056765218266219476952358951439319425016201683175876234043935490354079278818212450675684482822662790349641494707134438518954356800031467355865471453886863108437222999809225357557085024238722701582773969999243263499176595829255571722487408163794760053808165951928093924290593703031429210357526958628949785880414681011895529746823757284118243028779095532689317333721084201762459903807832872221607097805287099317494097879711923977033201067348131930727436111971450421595367873407156386639771402506273523345177336200559612110453792201245579331065922319598398281531662641313222292490596520873941420849756695430583794274210197137108815143175373357463256269011216235738190983504763095589155149047257757670693529371014772005630604155899582775062455341986955099430423192439453688330175397587662899884113313320094621734845131583288414749861363044739319523839789964509629192619810428332430731169118345928948694705015233194159560652862394884616922183004874114885679521704577830517873076064982383029568826248280292415633372559649162226646955462495826651170222072844415241587508644753437956689515766441034958118159286286874479158352700451776063206710070538550118059945126260466678469006885502125684104641632795488443316043271629775601553741191140271293768574575195610132610052877645056275588687122122634085069455999145198097544924915113241752017802831102719531436010705508446066634208188986294877402839744569946766424791554149958326158841578082560529860184111374284086849309259660669982447730197657782770665874186941033668878346521688453550158208357697152236218310574876443281540669054650744003402005128848302976883111475874016928134681912618835462977761897125895914429735628242751102642107778019748379243465742433977723661543151205848280030631058732834277254289884414398904061482187261397280822293724086372884984780305861289607675617648269495143089091450812143007940435287548112874030487500517251842478226060423621199679693008262289711937047452671913866138651273289247815894926454114272873933159029476331009923751236025770229929657732801363126771617848081026191180515031706075562441721855888398699321672408440020876102327701796695787426884914004868358273683110496789840690990023407074714373101007079082578705731786640725319429683935207872480116166398205534924201828707273723953064800121579220823708794244525017942182997500955880794195358478888309371288421371986662621199788136256795291176197122492028565810811102043140135608243880422715000909242178964248002976275820628434067864556641471611638606405940217156246387009384655618738030472079833951190278670265959557341245584786569155547751949808793685280508245023024316937050282262729799375031523089926198807105093823260812401262304022255843477476460593608680091409397585042721851210756424646935084996506663471188829543238600366191601858771209669910259432763076619824798208573639434640916490068041469168158188983188849446134135716011913306693568988208184238390349615133689170557820928823644467461809832522727506999843722983890027923806926565892268322480214664008125746553458650111323546588344681925478327728012133082173554766683988237296028896524343776900433251963165357850414184588931199768591499260702641924320117512185979067063284064562863443887006189731416331613014533102305145665918286658723072539391612545409077864537060230677800613196434977695510701295157341362823937641641525724691202744713916758436453247674867279734905023941561276537518067382756273078175123130492949082090290893362838802073744041588575780689516828743865414800784105695426240365551962642219189660239372108660106182411293979617883572356700870696294487923258097466397137705583734678710157931567994232346909746413737816214171637617570378936555335354407657387418869269806072193390289589546224417149966506196791600591591031575432206506766690930490567003619611755719952191443028742638019876495872901938918609459295343452661568185331932976458009029481432123907353300352988406064917374451007640328174851238766878146055589971141175787292011490198820890746894202544160097523965904828823166133269894057434349255210986391979459760799438685147448423673363588421612699111593837767525625883198661788830376987447882364730960581890110313436735047804441582231889634423389193075637787567139088989193861719384728693341595117701429365300699255499005990975901389939506465383581673957836175412889573542802424572406762166604715578350117262400110528613407990167815130485038886144759332068073823024383962467574956330297152072932753220546520166885596285001670885537463131692770470140639001282204022534090224705205120651721347521568057488135494828321949220334647615006541443796406058825794659196450604246517284639781196659014234238858586703789927896854334362379252421025540920482064204706098413666912992091737807231818726941375158413519368617135308880250178211840424607294750452241330469983340862866408036188110188243216932493570440255302298520379053944310067149204961621077222765878465888454977541027052708650774816746458753663852365560480394740529908996026468932642404954326922445380308258009373357890439640823335538615921071937574915470804003674871680783846634968750831497447300189390702392020225487709190034034099918490506738684778121237357593323137969898575728448258604092611939800151838171580282962884157796640858740100436930117271952470884824270428100132121503154773923718808795972107348242444034349972359427100280730831967169659314718252314413785226171721510093203850826258341083913819069053951509427563128790617314504851789195287565399195880124631174049607335195142864645372248805827542609130094236776146670782385478229807360684063464532584086934047567376398788920382452597780483920095857263668969320927604706054162610278023475998290868082567176393466254254234489790726497802680555047006338022744916943972080015230997730728231657228265023082490247940756808574420429156047301733420587323232731684464393766346687663324633079131678945281191324051086881923588365988474274551207161268817021239334511391199733406616149448508070396434805699667022784498200515490335159503857867880905122157476461717705549875849103819050022439368120170826060382358510091113916886783741044636809822120502285856207910902784305991392495956772072465781417206949427864024276992817795225732107879850681493033801432496244156308755341812368381806174307616933573304877573179242823230757509019132729229790619346831110908680685311203077811041300294954009633523231411280890861205572501508567902275985743971731698511105435502479735918262282254771688629087689626080227786767092182502560645341003609388055977345417540872537137982400725128693512874250862598057800977866635383660446765019893595945622269846504401347463665831836239460362218767784343621776016303929168087688362031201011566283986668863236941574788025334008764689196957142287511296158984085671977646742081179015828968379373893449684284375100088415334700079852579097921682092178034740395524184328527677229561990678293437098684692053737941205436665072340983695879559289144804201474718560466183369408931517504106213326550763229426478425641731011734234416294430400668257859753811445698698661538986935397679384630625345114068560435063255848412098342478061530509652018441837957198453243682368320820063475253838488063460175173409039128516807900471004971167777325135517162488799101460191720262873534841813449233283526541012179444988245231597087972686130673264896737253832423449329442038551775077691021837858196530569255673725706508852440847911878327798272518518716777102838304940142149515628165365088665685132908409926151964591177446911694749907655234773694913851995681794757572667912703625087591900491744639238633284879405746929414174622140440313785478355823410815094721238777173343418932712185702888954901040883921630820711087622275473914936900289494244189933392418185611250677126526370262909323494200328731225633042339906069665250591238208175327801488164617050098080241252692182013464571909647724005221465276289575222180923523675885152318530431137416592012261310322210255748263179589004428804513994891353104269961752225647489713964811498171072598052947721621383306153095074130714179021371518584342312382072761398021225148071024080756920772446881928175687362040045109941156583777823337471453447029101206598570307091319519156786366118125878919557737721060138997101761680011700310105432982557392179580426603596601268182763953854625940460774760009693147063911148417514662863319557931473175620929473741834085241643768864605427207577120533079773457819685402023809471678874005537442755804779145488745525989787144190264935584331728010645889883393615659820743693303106403820236081907645593648347797826142383637358366756222988017679109981586293433572366873145252235852207854227520364350479456292713110413879623377615093663389054260546596237810821972608754298807320800494246463306782509638080563140386796927841897739635235751789770307485774767777513257005330214906859005855443882144081198807810469174255532523609961876527604512630493892759580535917169998928938741105349115985388826989635005941622213159248127513053438621973053276051045879431075282649975468562914152539096363008487480570292494490059615531263255784552590060594722131233539320296186547573070880115216675853624783919907848789705775457271669532650952187871032572954053633701842044212753928361237446925349242918197585047021140190912866426623042427854990072220515604223384126533818958202998763966097891689608340104238219989462822931082843996168961094701485251919382150577207569427414516661214286292114585947889055168697141747668506971727913852269821572788634977707928081694831841185165313154367229100408903313705057218604465610987114583998206277090881787127867512081346852928548248651315958666320383089881933847872193074288844340202442644233027333729713983949042333552898027327434531895963283905693582579366610143062430306583034339326423524947214902537205323571830421103836090186464781515909812708676036427951464756866161939092132425423443404456402069842276336270521791882227542682822340262876844728975019902080984927889868103105616971565242736987943928083499714488666518964678452798986106039893344267259867078758361243367515568885847277196056400055258341604269780399641544075841745874496174863163343995808141496984996812386742736337012409193097119558751242068310146424995874291333774848281178629568564605474661645665948291051058386321836278227429593988321039048433877202529630062057250992708578422721042874519852036492721239864385334966953191403594754254503310451920231607188659342366056208821845105953474556174457945752664651325451104044312769573167721623048531946984385128738414509503655846901039479752503482760431503552966521778225295702080010980741949357312027559762417671347659588620420462168068556860868745317199817512806199237240049359611373636131882058824216427234139823890330137134933335008245693363522379850101478572904067848804957258648763326538437642180674150464420176330937595483431677520026863305816197698428470865518613995006302208589330214368111958027503171358097555207680911355428939996044101518963755615137880149361802814808927963737548630317074654248166924890839576793166988559793916314834056804071505821170768864437624887119230601795660007894578973352888787069265122766737402694964564775118957849439137866608091419303118282548789488593387669298181418429021707039910934665089420765494634234363184027617022313798491925368058126679598000371252344365617239718808659376893809254446245903165173412207960024646443023149943105388113145713719542765610967186658681377763156137780772193416399341399664332608656404455565697106181011705197470573797826775245640730928932425541163492767673505877744289088353412261543047754446661943863830262549081664280400326231671702981307119881851826749192372302463876674891324465582200904355437230198819702943560212749320384548174072299675691767652068020383548418474734366994696911620560142259832287295824221450099847179275578068758353581842682320034346469895778315693491221786318280739549953419432861648570678382345158074771982116047510280778386945123758209455622987588651503343278147353400529712356917850727022050373202495468206882415482873065712275711277369595974264197348770450772796010410035145045717847199294580224833586973892038548570943293305778870524244054634477263981774009404816035562116149512380952132431663629957419980243023175039985952608091376841860952186134742286535641807664955299552417222744082045466945842011223824686451004240438307878674971323803488613408402373870514505031856788025276492805240652750726058772513011297589330989719215366817927019104016202789692326282555969788031421560464424302426807734700353716174913065934150269972183183593190596393176274416585994778875457377989694043164802832888196586650596215024356030720003094453859521024804778837991023964789671031772669542252863506536380160399086948806627277961108858628050629033643576345816128031915077829707917790911642084896198822187567709194785843895620487457585090707741289647917838152431925806178453910882159085518139949500093701780199415506942493999256538081976590982692968578773132399564090780954580009196911544594918782451328138435424067960819629287711279995558540879446857604893097001166450274605808821296334519420804382981585978762936329520080377610839525513244529433747830587845326887404137866890493603845352018399504754997246514793654804176554577791426335579568433429970029682317663067914152282086992173810411769303163967260540303668631046932215856308484720302957277649868344204233043486876484616531597234979698473060495307613218602409832196099419823433130466917187571744777863819975823326617795640806448122762546253387239223814355106395861603431473929146073580221120497575491757725381490272733469665197813238145728253824434368924381301591278166492578320950853180277365438243770331062403069855555188821529605901452998681102482797921203707685951953454847953036163008491029410962503764782516510845025030470318661114044425495377258802918283838216951290641469755596555308321662368537125618746061578410499578855477918198919458405477032150709462592742598181800362164471690835170219828904766235925349292275705017808798367959906614525728229248538882304452457124936223539745211983215861333996948053989639169133968135512959466302046887511299427893704382741422131200662111250309555727417290649521196679877913607816612251114515013709067235235624457078826432375884095834672932877086824979140963969667428975244384802250917159313003998222690106044572145767431570021683318706121959222320047705425213275453086853163245894959289737139757970856374458698381670624249150117155761690454493427418632812753742868846300521203752025596406309418181039501120257410770562718460822027716259914533623008414180377319458436459041865885459857525690988018992088784423944379349607363519244664414741300483557618823024089995309654281876039714910857515108042065322136234367527714634676898091802646679219476811753745574032136872530199722381051090451617707566853292962068390545864068598404468554702989689261741033243999100235033885003367589800094001432600369147887751027155975454040611592755998651207863073923808927692953071369504214256670832819655978059439266000889790442930576472796910552302725413183346774748186569994085563012116597862046609320600520036997918437465049044924921534189837713466973849166221470618779624847757985153816802108524262661756470955665295605092302857578074702639342995802962765254016337105612997641647360276312801309605636903259403149471895739417733175861876821490747765401544893128964224503028478870985242783113447467437596897287975519400400625013862269335129533046047130029583389562715890781933829362016370014102243279292043721893480236030644861050379382164767056053610709032928145844272983179975854503958482088344119722718830780562750654520200042693039971658999644942889972645795019004940209478188960123828542681875286436364202669157030406716645385448159298954316003916456292839147654795732363995474322959743370062790898206041307350548830299431930863490277268789149993452322848031445659900323330104134236371007453634930229826086125690527475393654728817413857817384810458657658111537248330129647522036392350992351299113626272508136098099535292782042398267561434915554526888821871487216030506656563198484758324805994039021816606088512776451594044916502230380950340361353898126855120324035774445588784696658922965232802080350800753947027451768566533760081561990578305357520409866453731065676480749774392941037210925579400141996668506822578423732666295235389818726858397615989495934740006532308328812565632561454883895790099382459414771747246705850050012871518959360351598952946527519973409176718994194134907238153192793019767638112294602096277068551331660815954087251398104514320120733228668782710892928695109118171751539968289344001221897768504919270655024779720204634895336975991107991694808583714585475103754933638269532518616418218044687835416641510343643272413554903190924514553052630797198943115895976873816619894165942735471516619651097652591237853963051198840351337540626955626696768915990285131353314951901275342007730244125614422418234190984765161908066885350833982610392163194729389972910181175126978783090001455020249302780461972314507748051686263040946320364876394835476162473456904621686105809658588447960159313389481923851094908369193339096675546898604944563795160376077505991292318486201363523898085373063992027500614855000959903802314667565559457498474928763365776972800102834565619457595782228463922391732412602119902151742996896618947405853436986210770849013227429214696775337436653464651084414743842085262482000538044821774572800622029174202118934792874821595409713661058002966219513591083056097291986154195404849982316305476281606832220277345849045563989002539632090267429316638158331116562067105954386214940818062363419131243271596392094886317344287684388371502314095267344663123622394796674539090611301627445139295651701274056007559278269958026896882946295003494796864093324172084390071383052921207955957775163003719973713109415643996019569119167705812800366456214254506223624399370888644885469535221429914970706719956288512642333512433092292001456727770289291206089158897897873663771911062396265948667170300961311204510346103155982881730479037325607277834133926903124074255807606101262271164948797762950310915236308142740593568451516295112981811693478104772966663870938771387350502340008073031180198928750077140964150753294568325492426994179770497249359870970501903234709345950564915646776384407927852691112646155331094291993784286467595503733657196076365410753099930558216476257522132199326859146947039086500925029289539200988126250743755882334522516634303627078273711429235587497641102256794973042717351984119793930660295173556364787869645535491940294711688529746156877569034471591878995264122116345745846541688458074736176938403001460152647816193385699829510800429680863328060350756614731209964268817023703108737697063628611905585281396721572594750374544453370635539943422757655642315543705010821681629844309389660642965001319896201645732017515464378401939082278230524233796384652662641503411640394761095196816088533338392471814695297376344887515768115268076900992646956537270958416578956286173662965709131662604675030506537714678389392291668540256558618457649137442516979220297341935957765704864375853319491042598219736546438702723289689385379264702631933011318315419724792902634951208696599699366688434275302278436718383784135293399825674201762459416407098586978916742821792590952449778967565648599475308169374742812483089650238311560327935580595447185033925740631302541113186933463501337233794974166822541210644315762495000967905164097785682656309490071273001115655166593009100842660252578815882599680063472140880396221572746450371416781619369070146191331691073778792821122975522562451400853133841023162086968806705414016401451433620177986336632191122057198047441273660111888276806678895788324310731993282924200074812604348670351199784892883932396789658339139098216768124888705065277659068573542575134504942434451743521584337394567028839359094203622654345759679684120510510545546049754606679860846006075976015849153509513016548916220452124962037448929704639856171125060150133191071867686155566712333613097624684451289156304171543639117403350320373900114758434364898645106161426167637645290013457479851222049821158843723067915058980793309209163545666000723100036499357442476922861170044012961588883923098995839973278119964530475042610215826778402079291652817761034116398704253060798019707320220495490159114699172759540880984333988389948029959354963062324552750215143787221654506166044695266478867489810570170187599033644547435303031924609236737239064325943423047359379249768006863834192417371701058905491314058859624708886521299174853015290819857952243806986759979562877040330451653525555393513778388312790784769890545984113008067973258380628998026086406937095030776517295200492486892851735384204200353907278916313866716232049374923701878883607584555401584989002457938792537261074006060618816299387151101191147122392824787827664887555068480616165387045027110645334180924404541634135956184788238310967502015836814927104619034185674503365748705362146625636398783190541721903153852331093466575710756395890813302667519550611559298685073621359475085508677483469301799740366930240919599950935436600026856104735032876553910529488763206898685901047283119355220566988102192359741913170932325576923950105032205961175798991364247609729151866782894212815456857541133561907485251237186922835513140996346901355787771840326537312080623560150725864328810632391004721985263643293154619481936965644076549018075121706163277603698766909234677431116583557347349519809653415035451026529873750496463982753744801376107794294002197373121534997031895153417489665197768161834891118508107486866582692505756913060969991911921085064975660078930941865849980972292603556664735384782229615410080892825882094079821291502042218768214673698162139302797087718076489140791927085159978097170370702360290337765752679603249495941447702779726421632208851313362102555294856578918681809674941928079770032484174174908276832522096355628208761090219416550480049227065405310859853734467044201524116742817778832488376855272841845721550952006227425926393920336858574974214315752599594552765849295836638750044423736616260791828677776210985362894415905187310997861697428594431849429273951505946355018510719477598107074009582330594127309541541383921597527494070930712363364543498737886713965593903690151519470977589308556900204538486052592172699526246230608812495536903487996995530892492884130849091208701087849687706303724938877125147412632170097410775549486691943683552354842888038227624817502753191760049352008247145796368327913604374417185759152250541014532156892106842861490696489994821113725515465775708996387310500707415397719226731658965086513735099743332792284332332224535686436208374589996342242591849993474606051061717827974289989751294460254956832026097711035577510564359966912922499424579343777855028933894250245356924254661604126991319935757592455805660205824163093513513717782327500977051709544605115946546316378854463604091108539688139259005355782462246230245262427967507544054682885124427742322213129817780888032815634204801215690934646147355614909415750997403010501537673694965214196713827255557683860157704049513674303531324407880560010775781503444684646048722999265396025001964642685657780425193201995324337433003774823230865092432881329351685918400213187578943612505524222985782613050415131668440550940705875026069651928735162000217249926528839457936295657941870712950577016258724818188912751952773759961155869088869720454044212207910075926613190651321073749145161398241939499915234091858470177424263080675290300353488878248623505583964153449701670733251944394826257714778434581782780876989830997775367503370089536285696577146374021760034445547225687620913543746339165101844121461084234048449643754169898444752738900976812340987228155213304312785758344130248267240232260552601424368752245248798040271620098686778306964140198825925993854700102836911019609318959476326227106594961029864207073596778960620880105824437342465041468344196637292206598265031787514051829573942531982504636529485369049815694762142632560339644384369856994843884803584897178227538898245191744107256920622262087051574455373552939972381348240811978672406587310244993039238234472571447317557402955852792539160342339454310128921675013894321897479906089481922626238440839698549661148487014124878468304298212595694023586721373246622403437469744093754611724591029278270825581924981276319182234962886804954672117736617629805246073915622003603001461538857380707529962535118753549499910073698619343731236454541850860942959031403523487714791470515991268393608420989742564554971354175820300585117556813212849739040867470386735936150382210956078385740663070097896493658438653652474109520636318585546380815283266761317297924719205371956334475353787624752139228078552404815777580846621666091848982971722693063529440240608272451892057122623810250947167235451024265397990752101306923805070653285448869735626391846843475789976653445618637123449190038756629978360160133914057778862574840709598733225246582723909714658686605305255638753898757956249776288728493878385887759354082194725376538080159136627705331189929991467291540582738728130074646517408120857557008336275501999000897663431469341176759744615129042443073693745125765367334856645000402634439899685322261810878541530983625011346490339403791076897293577244583914111456359227079198209884181562636093882215886996028858308088506560259775666972747381084171621051387156984397366216358321636041551592263172418469573943705344606579801132673777705141796574824181319007205120993793328359252701612682063026187581049133981005459638621648743015067212063918723330795201734638866707219691636647689367997984595210747675674460060042848112972133331043293011281975641559836103335913931199532143541791084722937071554299243238019314723965666154427474361245761052821191672271859112993581867598277821414283214062183619553489260676501077022007743731883293665714089095881008603209851308370844728124515287266447661542930319931047391423109501625341507588706686662617322626964076725513180970260718350040722051159435022807839195773206485977500685616685835502519450294062914734935452811499014746105255373556109237804923315706606170736092436838924375245667781138777490758434815572329114029295093291382579923756748698926032123222559544568399968482232639485314466443564687895400093293170443215174337229009726763941481536903005192756469462013849927006226590857476910682655428597581499341015107090449449826035542146694703560839002381255989879775469122323751732971244132583782348737105335848467810352494991679094333507802031183759784882798028713676654194161469456079994687059593894790948502906076218090911026888434115690206248768097755283219763116945236058373434563243606902469784291766672021826364633357009808950009287333589142017279870478551551585591251813564411888134789206908045375164367956897636044884823165565626971752833974173003160029917304402859420933827238815055872463223257252221300693423055420080165828387941011499642633252356104466534750867777702153534716097899688434683842629564806987752031276364758065614423102111539302922051622827134553337345382359984814097531679259777324846825313696034880151796357879582623123787359271438029257839551366934929789942391679625526743655494902130572614127616410854917313082541412603662516079481705061268650710494610817119964054908016024149386998934560594828017761654881848866521509956711244059644451823928011124677488100908633876489271628417770251241967819715386653627832579841105369345907031722636381239439324686453612876878876387563657781145642025039014884196717860791031433718081276339359236508506229048535642445146042746939230849194904184156689913043829888091117850753317900759742559828550637242579511128068106185431723344921056021937270961989392367234936055673189980097318718081933172648164283887158577853496462641431397677486934325400319601168694202109563939117387758256685680834487015581720409606794861150351805957371788462279702882345100593064649847416793614327715732386603182254455578151445543251852026366293347221454410468864035516066143025035254925181901390065876939472846999098501550477544571718098110912350875303666499264327768353590806651980344490589443509076600681532462060259669332905656245792038049549094764441911856381857450405650795832022602085012992088772439637600030119186516814927597342656689400250504054627665083546053400136239153709193979802551596449898185444967713763871072184522777262527924154498225268088747519124229799468103154361283552639745416062319093768468521280451700533021515213492972688997256625551747521641119514033360980885359985819998698435855075293637745392175837426853063883592471553493910893462211817859399081701277118244006653683469122169854954933079539124876564057025494071635896920882426133279018737931921791342097631016844646766282710873142787470352377295693165607285220721451360949284202815794355454820190592431313095472133939052038244269258106370119584961604763824974717867409318167024051564047832727218831975418506172729149912845766596857161653875789592702043571943096459208519987777230008994900755092934986186266414879767138066652485318779485641311482824135604925938877490096911622045118937040705515460972333172521200230379400023513606105051813065882660822711664390191000053349898291708980535605508181756039439665130952395337770211698203665717817086725288579848081896565619260290728173482630110294015233433396009044854069334883190326880560028676374300825555543097796989924293772080753318679524438646349949915330417392309908249831485529636529302231983095284719930948285180630647835484942304935688636821237470880483858963759774607825241926570065323745819937422015108895789193522673660509510399888467241753134619511038918721897738193810137493855877246877302156641852217877282703163099002722734410495650626632841932938822418577219716705129278880439313396512087866664018903345064124338178096904474270271339850167237018432954748998106064148671515577330985848775516957276228161996707780263846009436535669654858814405180263544435688730720745557462401229286530892473969855068087142897943230179420297624606329353470287052131918251832940618349215653451485101937004042920603865849539873888493676514724343166651964239984195952026074737155165896475893213929838160350895368693822756208968790941887467025649829183232541482336999820242467349654780384106916836324716884267138636733680942256086078973897508757717333614289922769378235977350257894069226614160477635529343427860272008890298064486834576989845751947640219965742726638015344226874877817589192169949772419803253314283603710989115901601635911149457038794677003932283701961549800090411627861310254140864598819119051559756844463250310826382084407740611326036141233456771658174713971594234105422478305484648346108522499542020241798061163435798696210499273468307017092307045911393793779700102253623370257248581247016802938869915863885554161898622212592230108510582062884566729096096322238079031219951123621668755531068168171458651325654397575335564024909626613586721220223569395371390595689509656384603137290347269094905803440891926818304018545843538647558942749118802841285654266046487469382932409137918995713688878410772400579151383210230560631475885551527075619138236018465469512968760738652651715230977002075731950531351497338753364534488541224911821437723642014715758386238467656453176545755284541079093575642366253876561464023584441255749802399496153824235005395499242367170454530329551918232954582699741458036829596713334050191884787182043192990603758102037316567377042935193354008668623823169897325549702419638554227213448760935964483024110725098771029560509904008836471639043771010119310864026016375353640708191994127156334694155721819283437192563895754834723462150390260196082674326442343520750113292423465591888403593727113702316819608068290484622844921170596700202761995714958756135990500211824655373990767522161996652641728132821676896042988426269490085403565248548450738091927459117508253225981673207698031265956195297633770239896555821852576505471211373416984528862986706731842626044403747022716042718736489482394355197475482248942567243355976045834911950955035987674952101822255191111668817548397010862282261088392233194527199882562632516718559832273561541378237215893959001689022598180592569598670603297379157523585694523272038897556690243927007881742808682767242617960303017924367945983649142308425785415488708182935747448875226738451915045631518195390819612158428106076136515480477310214308183286946253412212243478616880970626406838772950626278413624827804700666106097211230419021414034111401573919666347141307543216677614548537168329595420830728666547015480156063329258882471668199762945748329193201957789077816605363090276072918850026487285292130078991698533348657585213708920231371266720414985899570927206483192484435246623121482919343638797712065591838985306513389922466926628125676255021455174895349361449692446495999459372830133368030248697296566060536934311708582169943299024210581139956304541882288189100425889847872084979792461682960346968974013334404518194431678757811260268544157606644260011895498040349101843053439796455666092457143859166219544370628789393591010237582925697501680810441063037686930483448780752111866435346959658050005656128496162149426013643978572502680804939070366707190265842770862727228325404547302291822045016060101579640377517636315403649537920869146606141624075674439510609929097383058690160120235682433465721224051812357952379872227656459113600793084564921700949703729726085346822747204875233118773175789491120487359292159333816703388302098009899499336017614255845571208304682300303812012311505880264410426803169296380156055531123395631185650301236995211935863872864364211681169110555160608701069314872041108184352908010656966686847099292125157926601660211239938274070907630349533412541731076276985116907117989528459515002551270355788529239859400735305972788981850384604880229274986803146425358191081511223552374049718366534237142638972024077192283411334695421019463122018406465186140852050255092903194757951030713650166931325058673237828340339183525702838749890382417251704607934043696725689232891767013480689375309618909950001480592557082447128486031068501581330343394260882066141738692046056960765786323676380131447125163882507357157247555947486431706926645697299671717537642502880509689618966942689036774938267940230583293040780965286804941397998374708018882987406106444785879149057482555257955035304847910861492748108834087437380663141010696230419482114357207712976955582477065618381528308545564383089346191336980221204218860584074360295835734130498989036713181548450165465051295967541113500231184252118199130803292666554791275462318412456649105197239014935152904779009412114651931769853320578636817756501781793416089040463693200281490512424025715622567525247433132511139335593353545374162765485657987750788475120132914806004360258898618508028405127290542172991837424716882549727620285132328659302547580978767195416750591651960997524976204044484776922899622387716852628299491241897895320954149908636162391961738740946578071721246098368139054499199040955526033514110067343796107319758447605730589890245166252686981486095328610587343951469689851482349431689171354869453820685342762622561359321077847434806084672897749006988171434260445489355451964511966220519477270880260054943861278753204807762402789114237619646593202925509313067904310649523162748438551332102420276526745706617132592640923853534994341286331643681429443617021609704992215010717582595659877471291684864042894800978883977737262747056154501373737743617486333059931346613088580405800589443914566083402099417172436786608996812283189236467898594706233207354599201881769742954362723114637934105545221080877021513307243736973362021295957500395409334093732371070700978675949984573113188286807295569603571082698924254442737030716096390595852034073979523382070338336992677261764997522098757959509812645828137099212717954917278301078688073089965783984006265429955420928860383623454112049932913185609829364763856211922528317856447832558631838884318531536193891109955530887101976153032701587121558478078872201591014324675936445163762160577932584924233256379639062308265267846162028192876428240207069284947725404350858957970632823119366941848579192522583433362523733721235008764140971758191337920127003986920519740414337219295102261755690936215063705365310057286457352491638246103823204177356023659110559090292717553281424817970983803939546264929798123296303242070185097045320111503320184643245559354944253796673199078352240749074341309970912791958141153944234233216540646394336660778108566696946135910096164771029327982040810159946669636992926456688813323988698459075216112027558203002647741513352241728120445751660287741168808313195352444290405241015983121581058845210749546929824062687209472104275736983639566613682246783807770433210918319090865538702638463847861862115680965867319901711342169602017512117208764838543979166944627881499109012226526727852103315116068797785262911734270824718953838824883950943818090291492585996897109596785566626471548227097554010553552447669158596928715105878785080435132224568488594648818863344698305037151269798185614271670519164953104466443237882486824953101802333724774923991686739917845700581276471888861366660080642784398894330701401311831099755594877372089253690763307597653140983991207021123335310029665122536699306075907799690976606279281256633055206693481940552021265177064394175404641876192088811632856498004810704222676519088212854160448104888497580702731534648274788687975788775453448793070859310433179909703525375956384541297387233885949373971791089958304410890584897171674289847947148268955572803239532355813138876335960251275492419492039180677282169760485553811889350809177188111694314992340449187499581872371483242630203187598629566746798053793069155768383300681990689818691526822604586796132866873319197540940181888555258672147938386579509799826139512642560969566646241185028724814667881565384386661981554029364807791717728918322333227548215802945618858640749513579213128508001621627512745746489964892891058945646576599009093935189697579596450094833446044194937959486666273045771466013461644647741294892036116464136918596598572473242030675109993046597638113423887630295918659124448935101222791349069570882406378924203033211354883045181077705689196175720343380157630649575754691448003176100314466181970182579232102876736976352304909685077847463245447529420948592168480593516585684742624818809143085346690849376129771426590306679233345297880465117854378788685414480284080170017376027091312052938502484209179166675756058083578029698451070110279200113247202374977853638052963640184057370538086718848103830006640436882495263837916014019323251183002566454472598181864287394533386876600648772486477549293634885609952997758424335165959520024676285315908116829131296680867116392073480048459416120706341139311894261337164468082645532053425900517657855719481350603580496967410730401608287191752222054387457546304679838966493474475270997668153279816013942284183050603157017630453523146185455304282849779765489108575227239756845682031745378979093573928069520693621122420752833734757188057334828193066139296974349082560735816176005848525294716704072584672005345539789492191243577418980835292387230516710437457470263155084884390194979012313690009190157343344482646817455183835529812066846265947651074647940562040976371438245135190570348899350043692197374227796240519507338622387470000769185359527270504512329189744085749843788579497770491082500321825275423538110729314514465261872107763964851566455195774611070778492008708181207348784567197206659869508904242155996623383415162941947441705535336618742525267741308291293014525874456865011681807291934764439990582067886860676605758986650229848350657212575872018276238217619736853401123214654830768420990937712685000696033221013715092507758292747078864489994624421027937394318829104923771939908786101331138767827397080668218440526393183542183341523062808760504525629604208617367508992521348039525064762296682096842421480150698052088536614137150744460642427142035418686957191496690640501435254415672078228882885720383998183241843894829363739427237063656575428368790812646659653042812094105826430732861015948029099017263864045995554923511326051077680274459134428096841799384913360334360343005455553665109873677375640453299214726683148339558484380381670639167966347047632720891727600225855462763471413935301797050799067850884579850072001463266363778715579673332623379276862126184098955793989258355126848088172907168215820911080935447885975890645498795825181837216660880445240939856635979966059351617527837784097853139177946874295226177869879604837918674587638625976181912965615125901866033090716694831186151533842155597965149911409635567008172822993748531183722350985655637733370496869676788938173639747844273501388469367572047813190352745199271084244742571506599161400239247056218761266238163599921919269197583437320681187587580842772925775151453424876709097450457095125971146928716483869114018847632971583067198033659386636201781508813592627344013274835395993274186097146217252880704660766261809480813312099814898741194587174839944900639928993719486621452531783866228876179229851619328521972348157836204943347458069318036320448504140279468107349117317603503181320816256001840011838362065407277009022233232211573294473995647596979898494183040517313347433866913262157468969573056840168704525164058930118194768905399170299429912030914161466871844798443339254098150276496668142301354213970045367717241503959692830534999869131863827208713968131988666216693519568858598392736172271329209997713287642016096191360519849084517108756049892821073307913733836303295185839826033718422354089001362211430776298460626238533786166842438092740758465630467594200680698660378746632249932086332522947634554192360210061793008570583770415814943943034750679569670709921223940812396610872430291795997340155379028636104727156007902216899690603214795041629352571068020242274210651299935411938496867566933836960426969326533781713499377973447445606959613601628635195056901030488748351440984298890032061131090954955521995576511003156701299391389041064732156978283308747106292639600171888133183825966561868083820056319785575296120877411628841888175652518250144088822203464390947615404976061786983589633628912479475467916896867353749518388301957814267092636020634463922640212420038521023497810355279187080859062584067167508547159949454235116768909691881737274617134569804448205215254004900353437519849767787882023499754761987563021731728973425023973738065735581551909456059119494194911939530360960646519608125917792028214238529435341900637654115834603883952684064537493787648936342383701073155709438367320160313537712708959953956479077812951940649645607242254339777036587335844871201026006921867209754809647723230805693733284192947977440243899207792777052509987153381246172747694375253906612707895992739670808640382418341666936943619601261418890592268549091126567817849974584165786549969986169582389360665005893477288907923720522908895466296696651507901503178841116449747308576075575854803695697305996462729484359389124450147799698451376581296143131419411446193255062365672162757724097712915882234611373474068416550623276218086731135622195011993340605518725942032088214352707481430513251058530894261766911313925187850718588346301410999179828426650445486754155575824624042179264344192181478970748248642884261217103714180264101082383975249042968691693174689861081942959293043302859500808592669974836149199757377058999398375415351501542364100000405666940700813629646267866309433029994126670669462315633045251524294413433948100700076575453540147986201172865896655609127942998776444058396038200328688565644507551635748690396723824742513629457793453865641504370290459914695121992250875229106326923384658006359784227523430947637671921030791838032185581450778302281967252611937744928860761694615492386818561203128563640237077037993715648387648490492047310476341091458348008443165483671810464872977556435186099040545376627866006675523321066197727757218600469450352448046093843829779724809015774737195414777882424446640832351019818470302079875585023463309918015930234423908482421951746992449304875534890698903759734619220330006110477256469527089160006400866270638921596653224900342244730129439053223798519139236589386054102119893721909454330241327441396674744696842843808197591692907214165235736581793475706320771736200154141385956798997313311754188281287995257855087298423168270486212057347238528803035071067529142009316557992758321900898053896802012980754587798058450349129414994480339099616436195056257839075892660728353828457499318750434076435538973127343674366016371638499888879324965702178861940726284234079640484910123053222810996520194554091423210742922323025330568103802887242928845334155349051240471207695446768989466636244420694124102921006693118050615121496339789946725639850487126082946947857637596533420729640998897163427704260492946525189978369577572729324181909400765517035987557647500956945019998426517064350610759978855700762991601911123320492227954205498054618408280979201032599852661911684887679959019382625081846456024003983754712052524036954024325370790719770664889665908920167566959364296404567676552447450475945092799895532968493356467437084320075572958061802754311591060916745392264795323369548893248129944455081484587575254162829308431720241667324016143042956124717351732046273309702790137583633855696039631063944030766639699921470472387713085277801285211867249669914971478523489612568478961797989048168491471894122142260006692206971261964925501654009284415799006245174253802005987120546591454360348827710430801205029268923111175178383646339781511261021554853927319762044640572417296351672969943765692907166183421797135211599025542369984818062597226025459401479865858074208027251274166393676579867539463978363857426668280217388746586631141627330781385015798466138044847922552612790160710369666908111155766784753281249638349962268697008450731902145885120186612233423768921640632298018327529166948366797755962046918670745425107517048387120653128716424189826695625992035768217535167175799408805987191377848317773380485625116829606418444719803997338527914517431894984043531712944516290664328410516444388615899344384315404952220860635131478491232952173931711487628472266782314276855919346610607882078822460463486640957600208973373636981441037138048884531941857715358439088340837666285256178000781630397731091045762708089883116646475449229254797777783462244338690771301661890546417894805751712401664547711776603313918697161572364322838713183126053162959167150922410750317982957427984700697296583380802025489508377740694810359138587157211430380453401294958361874233059791919029790649954688887081030527201526701999586502196536319759187426504873655249271668152546929996317220302688757826533120035149510266617277404389481120106194122674715261147977850895197737906213522544754337299366183834508013126903902676591361874837698413269239156183015602107989155301425362540129502049787373420663115784419181400956744354948913258516939570164166545076591682886659375609334064733691903737139273246567302153638569003997434167281025442066957670892617316446601563740958321589086751201843665253558501579044918943340236635317178912601314466036195406783752213896823941050092634704910375796604810094459667853871631748472739636717995362604792543464716787707796754710662252141232624073823913282427076276162250903881487312567680987456674769332806914442714650177010410797491451246113429143932982179573437614907993206589865364341864158665882329042882052814190484762283675359508629041004692376807725718994973582140248509806858393717491805069784146169529074108478030363965604321117746678157144808394367396022098901375989002516558235561817087004724062898939464863807830100210184030473637133955616830994927361679670875925871467384500695637272395285078223187629096171563830602204879347779055848461296652819215477384975790757425545260356672035903096658987727268861465757933401079319708424628813633079621078161314402013377176931696204217620016858703593489454558416273548492550299911646441594954887346493922520095280993011507002457795735403761624001400829072679015602031119886492405098533664668470096621915996188036309573853522378691026199028581710487710578621711045550288670296331136474819454906670821416249760348713483999497336739762160545041316042295078315570554108810631242811695379000398632877209819113072489174436530239506700284788697548049112455913951209465869385770254181453759762796978256519890579063967989301001130537480265357274466271731645132321622431355119624779022345586839663925773305822818938648865207753924394206816341352527198424777479819498891410210149924090699185798595065767993863329188873485606909424810743400885552959583189175169950442742888866065738058285357530852569305676381841863442363502938952489524680333928777814602260087149625240524512389455983880513854410422258240995908868700976642852385371592125270256666937943489048393191015722570829752707923587072251838265208173524107683116297240219868568006070962755002359897462139494167725989978344726323631677449294640147629707001235396296761679206118606486243553042892491653989583373582776171553327863239888795826933028103187046519945645074500318617720443008036269939754403114017361710781467991370603937949507073194398924270110022077679489004724232387138672823713546497557949524229078782368948834226996840539038306087950780307167822925651046155498599773965201748091657207704973242258630356228774953454541927241371902857610612625306158213257425397826484687843181076618859864715500649502574690611937833837053969669624158849294500299377315373128207208829274208539370351976682727653133050977419618151354458095983182423015169504296767401886366854946813977160794239815743390427134993992150371156871106324701659188319856034681407339688869789206447946439572034655505472769223909928237056105534932831882394675418174016691667418479955000083320739503557440586059844353786334883539773896312470192948804376566466816414456514182142547097048404187727591693546254199337484878836276139568225647732276677289447542050759065413416415005767594090246837909192944526135194209722011921411676563821000828261850568980423253284566714971830700562147469573639148854884825111346389357884922544017775475702745880108609285788130212776066460368840885325321792116222769764268097905413588043471269395784027526315181245392782528379340407780080102424745444155536751334188692137919682341620389810088542438387974065111604119016718743856307507696956464542678300885263716854337514096380878753509690936538693251320293174478766138115750626502880044105175468600114108661832582525235752246876680588815169433965202351891772662623260794664228959069836150613249948476420592564904452763050198995343687185841548867795178412385141811453501764792180993898651679382111747860356644121666787021517092182972022382979590714472047918338583778514600429406727837983440691013074929877969139146335518859143507108692190620836149337007305446356175626673478043256971379711514865930872738696045944847090247603056353899775656150568592105688134624021572211070522049375142595279325909676339399251686071471442429555605250111463964442301787476777007490650964332294327001484756694087776984834027258359709358340895118711373724573626663018760113112120420155490441625023974643792661845204705406268322139694925480143925807753173800751444187374325937840715951581144127405576312966015698135924152456359367230818324999486771708993864843367771120499562684941112635721672379823580308347155129031639827279490530039365386610391830369377305086629661558590630502945385954514755972128185855605420254975680487153050364750520657956857556661686246679066251863186639761565324240074248192713036436090240507764388265841038254565991587110722045203174821260984313016541436152571061628038212637176204663191452474292592143448202166663358983184115592523264827736427977226636899635415392187644790857239145573103867755082128765539497870887715916378653498577425818481251142526329858705282670067343471099052114837598070124868436441700422988741302072081159312931163525866404461241211529005606395154350298668518594394893734902796108040958834079667921908345866095435273101137509410416278853468239922097784695116828132724692079341282532000985482290832622772305865279387640032851034884231897076302638003581456595649788982720574317053753651739468526004086069356281735494882770112447853006792615817809723933821796232568578557927884084146910181210057774096860518233341907768762757565098504881415181372885865002482745134557729443578404670523320497114861033390975830891242525291341370756611598412779821325219611053044384186964179872722214050644420950670384478957169965537720079751151650036296064658603043794318624159376354127196171545329270462030866585745968283519424704886383275037337107672360675574613313957198922824240312837138275705481120959310312371106813951464518023274964026844391622622252236697803274750761277142745008859466508697457299811338545727155479811478193435297800159359944021074826302212261266204358040612567813366677315818962761307097835198416440528016793232448928363748986094175219676090514885096312044664585414331651639814517232484325431578866950315684012182971330022232229545443277657417440164056709364846008835594373089361119507427109051222677279111454311472321069229487336255891652157467510772176265559292213374092582660342828736302024967535182763012153157547541982639699393726597464389994609224132071970693995436293278060103485955999302839557356310315731095941795336367610211939257031674535268120536810003733327553138180536133578553784695152825778122116707788814489115072978704018074544146575678117312515835981299986298288237348465302135682968816447555415872543132299391595624897539680099326473694216396549097346680800630744475197266468618865226610834267209558673863451490141720725033802171560529848612398657504959544160505340287342121506750798620937563847637185617147652543778271312241689319579959719835701232668744078330473638953604540085221861395735664545162898226124775379610325120327070101360488656035360974688096886057474888019649238899673811831772757320407666526070047917423528287097300569694623402291750713915995517530624118692582666966504714680647945547733250039045883556736914769198362129523034725147526257422192865299648036003059662552929633637756444926379993967356071893242714232181493000490969192606412896793029096135749075210462853325913930805865775058396594314903758133727559140704881113497933454237780956250541319286152532164022210116955967198073764739243149032728100833168417617056137873677708556650544512430085147454248151905444367639146470240514595092812442932803738981247038202313302862055548934120284836684466046846865723210100959936000658288845250659351169992637484203783846478145305047518197938167121347664987966616037674820988072618152635802596524186133249672208641026915530867252019312428461845856708022385669476325075407863773057928400240680634223119468545162548073668582323272964049689135903089568011613508541606808412456173306570877586147823895238352640775542071452899505324390054831307802815757295270886968560094764784529713426344776418925669185615495428878437694578366940801435091595361896571985755356220365452252130341544642927951145906537273601322248959869109687944417975471340309114212441706197952458810998240004279309042914712303765138138588619338229449365214871850851259504708927759486273714446338405021212474120446714047376890828155141177728424713735787344700140507176344045296182172316170594177436864378611920455854261027756500610699673635070224460484191094579168824576193701833403116517530472632227729757676129160551871539957921413788425729632290204640570658245866880333504639452057964603988530644969645003863173428560087814715583040624108128965356833404802653016130456631910555999584755571356783485924581130610404650933608269922784285986578284076614460880878436590824379268346010557527462285270124928154817056146185924459053353224458324127334452372681623731591853985880124997013911866222113210970880114703524455314581281781664986362796705135714390680660482072475940862535499358778800560888941669530175101194756028451409598438669449130685657025014676334165220235860047764018536523776421213432136841456793344472562337801056087383624037609436778823716843616395178556348871834957305397685660021087719098860228937748146218926911191998676780304402760975570072004316206027288748054051965738417641156240198640946228170901633985263405285541036693586164270963548208292119518674853108022274608482332917477722745174032179449530579184723975394538508638432241767096793696484484398245253056888337286045548061499961304686303495388403449025537542604365015925311953289437713689156739583846858840635493350256560967578214291899450271406890399493907991296412451309708843076125325840030401805132935323241773080435764561332652852179706383623843315467716042114101595134516466192848366794762356871030230729716097334201416992912607725322536800771569565370193325465296182231315509309808323246318964064538094170963703783737477517337234275589992502394318206725700806155494891041695748124236592843450499270145805824907927161217755319658144553274613324089787779455083618706624575327823839078805672684603356123198133394845868367362168603441061278961623570507198413885206135318482602081849627535387889654573784026103825553434799464764335267123765322721212389924525416151422185458701836012653698986488552418002141082218009851338857215427571430652183286875826297557947264793752240223474203088097430138363874280770648558193473924250869032614780005823947958106565524206604203687106780419343342594316888950223383254563201214227185651856581774430944457668803562257945562364764332245351831327142166923982315155390270628411444062319683165543496605486045448790450381274582601055631348327401000622871787723988588509477688123825585807249066940987440254497612101108728756949317594078010892560216975730503056406332944910325729013414601404462319125872089056782547717486032503412774208106582704021899870150074366456971333050333637401663763114311893997687730303918436229958657305072309567019429218795686763583866080508768857346331151374237343257869870526379018101465888801392952217280806828758147142768804209385972346911210897725440735464388851737297415701415553507284058015811038370367541551890766265718214459792329983817045035343437975239946395641453870327995088655481240894073727051348257908772982761305960951577262742627541085419520239450902405330721790085481493594594687600047355856413797593842533657092067545459196756061079276879590588047357576318356353666101202652514641629315003257273125661235805629914427102840748585107823703253300287682214486613660567964056013389702141052464383167702802404051313701811005733186023285434408654353206824855146037678981611213040142947019176592050502971648810154941694761543763308887924744674045117009594537914591719529934734574769906223493223888220938438799095227729295544407182541014164973159412201123448459142027672095742227600261076207447956251751810538711051831310769708244238625021185641614594731494238692056142206590940110890178840559441086578146575806957984792465324300462672011015762971917892367575387815680793784759937690371884651579026647239407576084392296403654993204700537527059431393250280875992812033556046479118267153695084410242246967176500928073920644502434894004619855996756829244806943974037858121752065404894997830732965735335256504458348250816917419867595454629213816633040944804793237684067875271301162946225709361857430300165205551563616616671170778739177227836943958591413089478995534552588227133154447565762695865572441996062729344288920635825238016132905347061490361384949657794022674731501097276910017543394657432365352758775116963677724643345255732400769408100889492531119091645972693415391470950329451749467672805588766310972317996064973893783862770956697813929714921591061881530754820589751352154385976810232750514403193948346595894819994528538825473197248578156143646594178421117918237997707923850871841411829484713782662255463999945396433699479330207264100594036971846099291578388673188985545359638713788286363313487021699232718321808477678336442675150913285453039569174789946988349466706391813929824193090997185714314967184039646425672304695433432414709850321176091006110632888006436930756268747031605571550898129524404656149572147232698992921539070401026409923231442712172825728601255832274853674504659305694816337707948637082341392969874132268639512168252506949124778153365955490161376707818900804040247495793404817264410826346875404129358702964904585363693224069056714332073338483597234177667021243609391006826375077145309769909355262838854731115799523390039617734395949653813518171492795421612540165860123299818249408518064315591139810337249703516280805170370307181813024396170885589381528663023289624747552307581217350401218261336362328900884268391249454473535534098292983341085992780130936110538113674049910726452996606533295474741731481410094702763005857119662161742160962992963338951659120245275555882398606636786366927540271263806447050416248648668543643385729406197263416396074920530448463509803111030422009087096831413638277741000840752997072830770254526073665372350845373554064533535522210830729481646039744381335998222401260287709255785323210657894677643751408847281678987839937541456161131849789157720679997756136334004736109090852676940204029300317021424627191846312872455651117613602326625860190883649881413958173210832575486877527507501235868002136361091558510382832025411056585573002180382566943270854556228387693295390913719115427535349282465023491067372419574800051876845136405655216657036617915653686076832719295345277016155925525251735864314570111477840760603557559906116279232202144172341128408534697369981016109807083457656679703650665432718244335147351545793890354272069973593854280958932212256253708838820444033202013547435991608505134202517558162517037408084363065316866684955334163979966783260188497340125190916815243704033733329521920913809742383761142653131515773996325065318687174236397107894323245272569013042046973673264628185067250840623280410673307577773559887737825271908257764134555597831677911658872131641309622845899210708101176355498497714212072827660520157812941766029594010717165810781201694610557401489020131084058113536811386772778080401512652133319795689887668201023854880537856694335182427847668264144281647696864298394703262227894938852748553433345981406660803604468531899339808523300441102294351535658127500554782759151632572110937622386336843541981387181338826819851908729590593287349048147802362253639928737884692157491024740946930106500318556121524544158335103119776209369282540263533568247725126847403419199553113910323982569698200251859157565659923909707041517493176018330191668122345791127693984869540105124762412942633034491892452335652230024864492071169562063767724755173502774653702494678739171715645784324914445480099029882630956144433834438585509216183366174089841491246436864595371907606056501301053059876183596180360572032585635615870704361418470489285598402241451735982123100372771775110626533758662578167189600051446334394256289729136997274989463336421244640423546024713632198582657748482170994238445191355055138307036588905363414573756769844861769713030945491197090559014942298162566507490128765944413578944287063825340111773354453338384715110192535183804358608757365448532926623603487345720611365595930734259195026557124134443164517973126355150314383843800568555456345526847296622436677361996397490410378575538437030010518870237147903338770428589845130688621126202935095142512341116856228153749756508155866416589309663389448045626586094728071630459871632820000344493580386744069028396289011408993829429484100374758980083122939420012972635988946783963504792410095557812498956667200795305603750489700006880695298460568166493192755480639689651178387284239920737073840349359522685985119939119542106789989692341872410646683185482855954743682138493205629580474277628527090429576044917070124997037118313969423729134885903624581084374194986389541924989559364996996953138036635577626877277388981596039752207148399097825183412015297335237563543780404233716325509590137309774335906642822376208286759438653108050523330381809624871661559371152109684956508066279652231455237122670755569404710901482714349637606222865147970884051597140592031942320574826031085579249218230613761844947681318781797866935268206490448946716098946448906462892498860786836804581286935004172025179852973903699910493862565291021497557350922970481440454920192210379925424434321489497013908715717630965523375375054362784234414577534238936737122083766215242356761138266078959655557783759484411342797587037978701693795664724340679440007856451548504203936901244229564453422271494011194798786698994616527031339012484972970415779695920911871674581778723454250271928341665386041270962994417320827895630404979361776677980327295852594933224989711910694923619994509917209670798214882012484567339211962893743290655156277926841991900117574850128229690085645276400972524501719741319350562141489938493555378956827677420432601205920150719569843503178513164936884343300131092897908156489656823499575116050344841164349163214018382414620744236457313711716464728670411066769897512099783066909106956006651875566720847191593609741407255914656027497517317314651868899642519166308165887916596676348710114391906048784169356955980345980406912520141628950611574021516323096196653080056895890793305157113816593587048134985364751509178914811610833096956106912287093505375166922149886669919476282608861052252528338299663907557123835645153966535997013099636555734980148665199070289523395406069423454713596798881213767394311374290945044778664683874834736768562586966129455495589192546721266067116946683962303201049289097413612473350211416405361639743825210838716474125092357900845580317698991115371572143701674106960011815389371168032091774172418218589631073413076632501736991889555499495970874333833567448091952092613196832171540972308868270862767074041599552178673550775294072000636824680655671019492842300025358960383266317827093360892650477387757960259591837159119156402296322466007485136995471507606079136404671258405658004532665505845887953584278056188085908423376973757421346320619396778003445119065796469951220445501300367582177331644173254055169134889329775151964109097885796105000054426808675542209865791673130944814411597918447567340563388775221623596629629124592966086781047381285839372036323954822818516979818327879708230359142470678630531185117749474530269219701253566160898550774413526533759446619002407950482264582848993040439368531534229739359812941727877019682700600693448225645849006783772461232941974235938101512995812579271914738706557435122586230576962353075274764193377230648609470067499874532327316874646284969126926967353978417625296154471540842286946598302930569819734585674339012631168116589004145466590128520677597582112620475595094290677333939334771941720628251877746431036108667063437828901479394858735686750760049443734380572302766202152263954846737938809244729542856386480586471776688403895138177655865681351365349208273543754983609770370233225441975832038531354276611256856527686101042516048235045006978087191747580776137957459173168985010199661162611049359476279246010110906889004100858975416817272391091202021211265721430240589800983294413857623334225651921183856332805310814143735861214922890913317116316170937109854412502084985225521104461057778752018488724122420786882221413318988140972652718769297231965808789893443374292152986927199930273860237739439388333561312098095103806744004401764268592494145311343865245723194159043698098067962689319387297017870204509171966203728850156381634731986542603414144881844427901224749200696073778983176956588982738300900711367761624632604516571606743831112780440197745070114547757650673321304669214376398764036977835687609264333909656444967958990847501208605025979541853336603550975844671550921292660948904120886785487128663539886815657686720833520898382176221119540072993067654027389062562548751299394630532901786386258502908105151543734185684701197674935057701169783881011969817637800551454721901352346775274289627987203531398841681201738330378310898954628540993581371414835926747855445192955874518047122246766067732312834197856827138052368894362235393252490945866263369516659587551209431744575332283067539610068535755167097716609371751364145141345550291904161397356569667563999810761824184099398901074720926349854127302678462651294271205060222430638895569404212026011594411667456627871857883249208661537118649835208338828960726268910270372404123079190758997471314781711778213564070953725942090701540981508599488908191068348438139637883327362106766449970107378322404790776529823780778187510070546780950190640797478155564174219051169590649831430649440255418250559605553682319019295841501558148120739498623201797628420677970484783680312516852470980950687372362447902027093558081600775461246376896759532816962400868683783210579290643043320270478322599062331430120149649514195284106884292523255610085745051476868954020950123350687229150918080838614260601258804485845804230339720702138843038458310966736915676724461871212239593919618990853472192071319643332638232599162865971157900933867787832524538864254134162342144989107359388249074710578273509473397163924246444052727145521120888303213011729545506713796869828553592486467446857863041028445589777078486662305775618333298947349608812248028669246657629345025365724947063258060407069019811685927863840039186286666421097290358512119833792777773102934664370084310195194787190065125763454204231779942628021211104112763358743019806362947998943004896945734751910396503407614819559993506525159158387643536639024937317258145954030335290389768379722849514978967554135532401274625344672381221568624723076031331301995040763517556221686256230887139774937804839276211301858440786642065748629361287676138250641485926808911064613360148823522248208858145213423193320574628121396930574577854016372746360045107627315173019672418403303088309302420862946957697707622987186131345344898975388023958508057554545477268443322720532130855377766213318676912130324529561300634150867105975213909763248107631594124044611552352591557681140232455703551528820458701438379196115628249711235024356007279781972096994052616970236335723711180313856523948522747495257220717403898164973641483707582741345992459281338610436353580257658846217726942703695980910674286154965967627892606929110632827994575245384279682345545105404659342494298985306287547328860413463637857612757421617589691881694106579779161300265396970873965007427672434848651259903414979968283381243071868918957143338013663099704955862835474078018927561910867297256051107133004251458058565127204923110795202565331234835620585665202253218470707903664617543212714601580679569450505171255068976266689895270907337922791469033990975560961329743733382533373413505347799215882578992655998829702667872501110785076475914391587310854012752708151076691796725208059648192520397613782342503867714861443453779308775171984566142629451258596828110417200943935285008770692771818446183322855610962360777104327717963553389164047658880739905935872382138371890852160284216176088184764363976038967422842763508099580882419906606111224257368800635754862995418036632200381827163792838596986000225378702248004379135207512433932675497397814543777709306033500439820532855144338297028592044726705719224607541827232563881947891776656465096769152826685995858006212369037482827312603462438654351757162034331831325116873345706916342326877194940496026792672558698568470103342022201921497117941493551387225057527065439423717129967591425565050522865385164334430698625759886533724025369833003747058538421865470115417261453849919051784624734633680669734882024715867602122971544565638090996140327782279390318048329356626366254351345389015200113468125437265541870911902213305088462892603984739429383210623822846868746901950360920855149177234458575484043985360935263311191951911496804461694077522491890910627771620890980856095098180658382596611957788107957804099016637573096766278552926997828920683682863508941742031352243806127209337438120972381774104091584465748974447727764840541812032513448163467886124170119609142566732184196327577967366873322984501097943031832713593600858201987109932926327843476103462106955269766411347135375500752329629283399304307115777521929141552347432037617240359522511634523435179481016932779163569580691837572200233270048568833499378521565583450486623216056823966487359195571082568844082362494642599283591480537088550763326078260480766703628138426774762042129135777841978385421586817461652253751372001770571781585398295167477045192902744949795462127234366775183332682749897477126943587229473487403609953973414252177485095363818934560679213035981302654367153039819751583411334012787398016321425151389548489825054159370739964643233973089238838650816768868613578337768166955636370806532204134747977263717332625707442859244423181863792816662852738122384140024545190564142797590234300704996162290831215759170234979864973490296567655947439831267728383143828806571817370863126808669168117414944565219560751796288523180640685463403512311549256410933110687901552490864878906768673694593662604360024501288829449762438082780676607125113496594972682366802141324816275744914479159020213566674759183669923109904082793317256234576087036429021928302562487434069525266691761427512413014764133559447325186464858094505327528494574435704997504242386702692257223630621502066194579903406131936347633502779967004526846528245044975280900232939887875840004084681946844469419352625182184078522644795775817672340674533282533925634761770255380141320853638977091460145616631238810573862988605000917126792768492153768557006641710126433062209866972787102262449863855186927649527397735006230235126370475313434476158628033148086082674802563102191912258531028850725602378090849791973301748269170594596952419751595941220647633733669131345482668742144973763854645346828918187644542647015810377078495510266470284498373294407023843299829216463222207617901891050252595534027133483198588987468485001556419265215253774772391414626515274260130761115235500543315347702452887683752803993174855185970404787787550123689680205581000915754547594984802165950200531029436996903288621003430976202785210642755409280539456861877265036536715337046587258497436539084390420414704005819366691474307358930016663939039842866590082064982648620431383859993564098475707463784930549035016820970345340075783186682692218992133957529398394170178822768417734738932619534514051408208873074467877925161093791822041608449054552067239021831518991816428095745777264127742651083566164063179693097658912609941520724834507343264867034959302062888143776454661729680755408271536176747792996198528748516536219235760238222182492544971234668995148671310770198519930508618014819826624216870766800118025701374903479245709417629175499843770986374098526629295449773227306127540982460851489218113865423650381863437859147005752159777013756823364721458842570363784056223080546549904187236627767115739014819548882122043725167549448965225167760026848486055967963257708908578849397777594729854776935728072082039295067368452425526430953277682562854258249905726088591697278166306886540950082633241003065105886817409478026984285601970101447925258205147542294937976161926404176432052277193734960600307493235555227231285180584179293932745223336400651805823987098912081057319330846029888838344576773376074885967179663629642567363739887723464737912907798112172534815331802870968194706440464980618164589473623992207202863172578281185392476752067658844380144888229466409026108176750641061895502233863723729414391699925527886801249375252860287262160640365770039203204471210185326795241103582988778338086215780914549368108522640631873243978043488062230375735001095168940253893929975726708399430601324808186944393642289705834890856384517230005916062759799004128168865822386184940820898284611883851673192459191580413329109124207003613211706949814185116423396505290730747036448460081183930580847062144581430073007542769546713464616853767056646229066260444438197320178717629825217370500900412356457908475038165883723074859556824748090945034580733527965310204673389491413587457697634014975753200718632003931104485626975158403795129591311686597310598806057489600520887340080697543764947225097381584370268520938541380431470828768849481243117660289366814298115813424262632329200293730886815092526486294398474406324302243554323239421290424816630029149741905725573828233100563536396382462452485924938443222669294714794780885580735285622987205782908491495310691781906255994386998153437773647718035986750785124116948775904966041794603267318138448108156624004695018996313158726944412911392853843559714754048242687331829325513027337123533474783045046654116295012690485549374511399206795963008296311591396131681515122999317939570969282799183669802297431198946820109951028963110598765454987888233968968372500666424710467494683686851225740994197059666865285720221906039729884161401308064710921936432812053107670794136594687785811379761115192410743311735178420995589487109089610523097801130653980154415792242848508094327221343304284792527494237143550361847972878305131247345929828302713234404341269656748145984516825939966151561365714192261352946086850113724919090601591457400439130848816825246092190431298994071008945508755833374532773519682713355770791896811120803397252117257923907839898389403054706779187364200716552589041217303751387248794315323843898800487032756581992420084266139177740730528919809937776209389320307833681060016263987521309735262449851090210699844768273309153874715001183027534317810894466521824687715171773693419980307256479446549292567736583417021430918421074180577258002745107990860850525518335490554237663748425543212098580217618815157644124209791472084484840793040863125691646055522585105401925658752645288164478357761789204134611099795743788701700366092656519520711301781905390503876037092111325636397509801062277927340142415447673863456437475296711452579858555787353357382197911815053064469525267372417536485599101312691970929256414317695011410837621017695423350408529806776806755766083698628585771570354924716121251534257390857480223205247835889240929144015725207869763850655832485508595414746597297530593177049886931551151749544387956147818983441693332421995554841249593490837822996981464492241744466733871094587656564102226627256835719264645352704220115908794975105984584330294370803518929434330834380508454287527565549368624389656738613048387309204846547448594283353002144990849956046927869130246426555243891553089468372726248368646468572827416634512161196352058961151550757204015094762771392950458150434814261064320744530203626097693991170177342152873825707109951651907968739107968285208661090703211601918807257097246813612975075671496351894271009434005518685994616750648703231677686223400557633005859617658017077531774136526875438303916925698977429774545203376056219884829184280816568670578557644497912170897001915526619484918038731575071944752636764991574830117811604229678867966015963479621342485057755644782041407185221511576202678587468772629077040347176650314477227033549316513218034527640992574701052528610994561640511424950964531156213907177751536911561675236053637615159736733949506885194893752071632760749985967078770098392899410861661879391806043949711392303405843418061498532761887446633411562361758238619093214039334849261126350229520201398478403819951223556129260591878291166372082370149269494019086011711507716434784093409312621270080709977873244296286115316801298549997786290495881659551840018789038289093330145941384121578022543867527751920217946099130951918823616973993422370771351753640033154461378833151495127040022415248671072975900748324789590601846216778434870330779560410103344483808776160215301455397685335942280298330699981952284981957169251972879818712612809245471431916209782307523339655549242876250285456807474205502992600600781352830169789830873626748334217501991986918964729355258414672825080507858532254753916606403645241840419564125129389734846101547692343244428067021376229226319360725224326409162137285162451860426500955445283531580855495248554677403521124214434795908180820634829557222480413074060547267294768760006858662816604136920953700039668896582796546651381495502457327311106998515815860367981716430484005254247347688855939520910922075230438619689335176155862270197460840166263381234278879346791493151164937959677831989525221984201346245143080738178384111895572940113682996978472853757383552963684453187754665809677302873530941574167067192242113901967833712936313267367139318695538754289164234074203515385096494048061565969002854202785917333123158664489882863247801049275359224143368989621022417428635978911486733836414806116699680485548807473339948465220434407445516831824586411153505022045364026458669690414538147385855206370149461302951271677452076072908643686248396973848082563248642498433888995518424681910850849115109683109380062033841537917997813486445059593160797697551353363266531247862465113510786719762113742432595856984047619212001833461011401672751463241597461218426579016999845913258338662581999038614492547857191665571671389619970281720377125779936099411620399671801216619977726319806926100606158003500241508588677180217763148492526544735873509798126858914544859256580896945365602376478179364732529293562998111159176273074440492266661752847248417673619132917036825555444296519994646530775059391551887234783010004616769099670364551565883086315678297933709712541582421172749425720194966329927770865126786051880806894960238469726055169845567996825439832877772763130012755803269615292105317620799911747769185230495143268931443467617805039179688563208443128087670397349249464983933762514978653300710309553730322289440534195331880054296500120084513842222586678848976293952929884292963356461735387613863404756729907546654286412540875484562267542047370337274424363288938822321563867721637221431937099554524411509819138678585050203889264877123299075191002589831909681994912017841734999451943690378273462623373430875579304596221473914885019374866459947845964074244668417826801489479191676446438253186488536342558394436965392802796024226704155859618123675068059738111941110369636632864999542700118690824067331058492519645780463995015695207352432981364226703328604523866361330145397608428416423197851706910236505309714889001161624114427566143554052339203050252301118711208666505349295926014093781309067862043894829508681287032161116218554132780465519888046541062202251771386408452008759016973995602113649347740036592779251145549079569386706717691059031018088604593726570869802750248185044075985319746233538655087014760731775476122022503019402440756191311163603758952112327740967743301193518449252677685104053864096535981105098239117233621569767424682140288696579160780064766602445201734801517232149000371516748019279058955007198929815022122759442535080580441775816923751036818599374925000337209865588518740825735250300031331281477541632048636089913970386710903635289669807609544965123201403054992502691142633394170826498053090030381954833986420580183688672994438823978276087126239826369241229215170156325317915184409198003309773261891941671631786972649035810662269560584734690151838577339561099745407810155395484651187674981427359118128388412299538354637681493348926639881057297613850424028442689061742560733636955868999600940452389243642236936814171051531058840254263751679594162649068216633312215293227440729601028717930407952109991760518743818883451107568372645605140662026014125252471616411433261494801228131547592982165008445870345074217454585445934771316778899017997915753560953067520526136211064000991188449425655822218207842725195105369680574057373521070042302807043506015912795055151251463265754383939558032644023153816503526665221404116059111032244872521664532949530147742856257854971319673933960607642776513747291361036391871744231081900863588371491978970887225998882268655951609105379108421643861390843361278243453529514390606576814491657728853011312704647868404569980461424114092545633964005153883382826171344797607127233321472796169537484143212966933395458044163521386333754502849955537581046794918197504206675353388921161986779844567336685068876583638869726168401308366548396883935196589973261986484849447189663383028666893908798228689303391021197200806352636613816200996915498509495222699176124131221295331517332934315638327696417012270076611409860994030304620851198233388668916749355014532108683184747380160602784928915743094065513539634855379441299580356871913087714180320269308888858504872287106750344107832754566543669856413871739545101830353327842984207535656292255144432359873588630278180878459322553881285952992955645792660307852087669482438822914638559692256489854520828656641655916231781968941438540778952901826562038782755652139488953516676932456997976096955043302710441948022686614163741060708565927851536672029707104610395353310571979643772841092346877338284905493102111057846644603806588689909507953902123132328235714589073353055417803604993438095369358170831692661029929089042601517363749439019069361577056387683763426317251472683201492931326791966554652433062671141993301412811984453741141274130606709085511281910588340738839921660405655286434357757445296153663252003285860423452661724101717677887100526619906683075889262241565486942133326158401819514215850082317428449634796316626385826570224245933259828121117390887837220761283790872948722144985714235750675086450388355665871075894231191308180185235169003404728315094729413103908395487101099621560870727505095259000043333058917467887065531601864204646000245717537878258848438494444687966185252024736564445244407512876012465970113605726260439010045034702117270420234544446200765476534406625567703254179905340671431904278311271272294165013389543151229709117880513539186537103787479241031283796701216984663966174641307568761115495368796596723212550835964553407391812248409334189262217115950052361474957428051770016153828010823057320281895777963956893065953880556773103997455295512476515209002259060990722970470963169909676958435651376836281977222952604223061431667150627455654394954302374334231138329519712679945741151944955333703491005752947564044338439275061369737688477516396289027767392530307077814235562538822279099883608945532956938577504370672818035637623516306377512565339469091172956185656156624262301331843656514047079310062717913985802592945622858385509560770607678403824592780741505693395530831674034537992935069321855381750989115858342277560708429575634711307543313668956487960279499276548393276516840245137707194530250411231058000944234938842755462185454436485210756831160605599927123210612521594921582165897474997868604579881659462046899463694440805506227697091166731736396936921430560613092195255615000842865568147376251519866833905043089820812389271826162867950421234470533000930810169230686145059032725803381254797380395544454547780213146805576728178380536736464677219861969556223172964523884265575385754015239315904058739250569165874053876009319141895073536108192102205516994538227065227412877737670370702496243913344941076339443712374972335114426109516783934865408939643417565719928218360027423707573015233940394856085706858356823777333362649949403785385778721960481290974212862417407511945820926141965353609131699222906077144645221342842181080726561478662103608228028897361039050801264775545992862625628020869180666161950172196299180956269233261333414125588267191687473685654358507402637022870968538180155977544412662047389109111457259603129278379813942327237763231172034834531910406330723846141838948398668727014622334437718076823643249283812864214369715152579135490456980272639082007635270736844432903624586487825266336971842722181421503978601603704088820283743977599792825784875701785394087829171386698716252723283420220257108535905825183865215788709174028042956490227475709451889921717595694795753676508581480816377264998126362545941056846048615661425364608060393322765516713687540927200757149542194844406148626681249441155579266507148972436662329729698335091391359346955490677320386201807712230943868542599597536762036224439544169403728047336745572590830471156620631703112774017984107514258307173934351921384447990189587144744208828232602593842067840667519787664990398326514411669165575901999048886567991502889037326373772934539941069779703305805314168296312653338741812005090912252064794539322744853455429510399310145908094802059277005263275117737773196598110372255057730563873809280919625142018921786659657216550469147058902586989432783099002859982493657583532532666519050220764719229103836819275151570050746696581197940942215227060569747414509274824490559023692721123185194616576357690898344167737723802461043495929883904665271546289809612861169350142626836752259405346210540861484389149379205549621614093855158314507857441380467744814995405391433401627201866843455447748937935664101000036861215605552446448013759133925203422503677432523493488840926937158632164766756258584006976190371652551394978882533464325326286583042733280471866272008067750698494622423447110766233934685134680013077495728171609117184484345836910206873363024003254782351009304249948473873354381122038303528814658198670527698679156352505135071277284751592685245504223580767967671109865198253689690172992776811672675780600050476800069578921808434302697364834771856720205117198180688226071000034622090946292301614143881715267444845078971283324574876393107614597811943676494532391115568297806721977539970337729371733594920594851470325539780827191814701627401448309514927882146351066312645569793128924024568848550587025869696745643130670261263362942700332856785585698859386863982102560007521314571205196676658409486404346229327564785875865966634666954857705236654166260340498812043043041206825178312588355084329252631182762721549994277405221410955637256192477856832868844303122743604262320841092665278894926288441013895561562864378623232638967550116732863652630011451562967577008535475831910359858793268522850069839790124627543091839111458230869450070829317341391338034022015958199699177484099126662920804758598199575616698107994268321740366021842665403307492625661995321778569585286956620245370432515374362920891196606556328969164539120498872138177095172712526922167770898365577879934303622664150825633125189808982056306393375973569111191558846827560911963441184198896622187668984222136823367906390223426047961840249561576311009910707417604486074897034253451097357781511159746934101251517093400394742298050526433138394356921561891015933961916387137313323743574652700616878261870832186418841213389512403192537903789710955274645299439400773413708403235154097555537303886327115979772921766721062574524528727970301915747557348897372713814949223298976094633542841180730560083677302706902267607433981614676643681643217139266548337942680268364342915466367044637609128975416682070833759350989955150466988104717193983191187253080560680369475283254830196102460153646897377558950145455112155716532696844862077617696156875238209260446908984352330386055462558151512411993380072160526532503368152361769993370415706521871137901843358816715674942724343897051712772315217008020670881650223429156544258132508516863262546204861735412386898644880484378942953703335418345874982690901477349398552302893961357048111804456640878662267065221759449321083361986472614606876583832102049298732723966183230658689238781969124399616089761227973237435009393799997586864073562658679386366055423538801657397938337636361518528286996986028903614997067438216289122256506495653728055467647858431735819631639255279669244177448821278976276388383913007974338640028178147082970052789346493750384723484377513591744961704130547803934837953893773291128960606907290573670155497342627073680147919980343904693912272572360915951695735413206444331817983687019278513994069400434652229524828105609507929285889081986917537597396113500469447243479198940723509827550700312054918850397568643370585756400388000565046147335368395043142962770530501752691566509478192998396985391354475189840719655052874945104961851881376680617357153970662627505768441049798758186967792436699444975270627407569435492066645776467686516074251351656380638602794352498653087906189632631476885706142817095337499695067945711406883131821456810911836101729066715893463313624687027141647760964706582369252863783227086779522254193229596160616517272376976728520042207735922123578512976581710235419796505498102207949415939271945525678686688224058339474578159495563214250213306064317946840794857674404061942592475665967601928335074008130833487235426305604788454357765852820825904553889849212490824248016317462131223057984511751667130829538548801263906903892468767419996589495473190179078349268899154575188560964575436172310029829636412757191007887692235882495902127069034034307359778624110012450236952356298894281145355985749776134754802817843069964250472001285152414035279283853440802637370518382381145517509852995363557359573746179211069660224822802914731548739642225786770604129899181357236067778256336565085484107376487920296102113732145800190106562181276399651178729042545576803887929671232417616522563238594067847238363182403668693872101420523015329430702372390295423310843732374194896403999630709012445768330224618107458186372214778887681677354182086344653210634926114825402756424617570065046811671184088554452725547538907768552198497279110588475581267299019479981841493705519189042196358854903748156897404141879324978823784534828046583596428013652344114626045218090513530645718520628402461385537973844080047186460356607608009825996836413512798115629095496844512544230461033001380965388381166576607816459464344020506844311501143575372461358475429924144750425930461859798823450098576330475597035533330673494359428079339028502490569929228032076944795570557897876667728096280776259700267036342013067395211494788806584373075819735802092395064043007580288107080841959398794990380584085685905447892054566421048066435860986742360933683701877761355218974956884071664656531080165245354371885516488674940312344387516491524361925756111805259828830237580666233791765893564692249241529346832321082368395744985607558902392456308046020493387099044869858202111981015862041858616454906647446276561078519941878600462354493896969946640206687449454256040093576009300089524017062133933027712613166741462415675518747660664899915893723850608055497845071123994546342955616351674233858328287476288973224745085078179591884234443782996624464051395405781400810181500673615564874450413278897588354091867820341546804448463087315781290054254399509820135226519021622699151575813182264933597344586669595657928030862266570028332451797204981438173602613426917012189401775994084463213917846515995184102043586006048089666643959155514005817803312142167959860270661509913290923546327316667765315751963169800705895998117131605231630727184738918704233935575337377745151902155202289306177674935091228750854876568437604583881854553368979716052968104117084773860881985455085197285203081668955944444502214954117751347966870952631262494921011764289683236242486798342536644688292248592186233231644122931371265911738908999207878191080249426045744658865036547845165796771271482675290357207662296154585429464038943701999211987369898959770181611586292449297052003185557745807488478258104702572751330304584300581941334693520390177471721399998757880248588682557892837895385522820884078813760560727609037816143425899139577356267224990907427104306929475778492484375747615090679593366335627393416894878281979550891199813689317681867097370647881444154863666013849652783010529446000721902997095543668810790425223150639445796225531821040315712034382280814833049138897896101443443671621373651213275308751042989147367992363483342469996022229025047295227986983613119183358253905366562453690155555148309430612333567640271318951505542880373669683889532467363139472564873259432189876696781603525301333517758288703558022170654997501531245757992849170792846632033331450457428840735458594313726067980105303413816795837608704277431692151049688099333532082810148863936148421165747141467773684008016312970810861860412012029996252972776141611699905385327262098756313516197059878415367841338724387967331248747619375598503587142493835814600803735469342701292392172614451168972370663289481875847858400836000838820840321408858192079693914004541756894347499582842833156265878988535758089057453294570802437843775934713848876500716644256330437348789972792941349597663369051054060677625573233528084492388445975126123646551376089497183758685770543511855353511340203065835876746718447899312758162803053906605911748230314914164622902435359751193908540332728239304408971496296087536579813636211959063294570900856674417138928095377947241309930440625383877181737553525698018758788870622385477753284297484144009669526733053493278199180711869815351640233068857540420969377081958192793791278672521956738066592512704716540541921028840136783143244067173279559996589091535758647709295829121153758711295717790940782111767744704306803357495554237450966476154341776340402684442480695421670021282511826695131508187809968630206398743869771904467816972309561750157676993808589960160755444272901903633033142222616773984899544332851477563507457596630704581907071001299276865490013655696675868650864452900156084678637279282985140599262015487469400371063420511661169675764315303174963588451025519798107030492855182640528627324829494233619480955193866425804118246951065802569173034876753783905919662733831138529900015312658359331327357295381842392186585886714727333328188975999636575255286940853036420440848238602503570867039386126446329314239836371959085802296724313139970510857869723333097152826804416330637576347133126881084641941220498627258462873711184752262328291387599699773718108980230885558838327783695326678929378883070681074229699108949498212438488848567856054634998541279345337461320149746936259467545352749472041815502586355078612828340958359142936141251329719154109608166540575030509782880990410562156164070555989758647859196612808492503388025261857358241742051946824056595466371688232754496383892244397327857043052186133884128861803171690287680066015411799972918588303979160787505530905569086624712419556584950430172401680206653090828950771834994123565154639341473023076578755850042753679315786850208701308915721587689869442829206805523891130620340939399693372683025995731516494960293995904009020588354380727222734913688614424512783934141724364606009232079413570292771528548386890841433125257896965739010381304289061588184286916244751913113940463530631752680622799692505798375665934829746358980751313606100483966307302366641985929269147869240094417230178185025633659487614204139276746675994084490380218080831748731760695763999798415338287445789182162589127296545405494860142191860719746896450979039442842898758854326241506549651519531622161990772135604868039526031417114386851803732724540038528266380181172080653305748837292299456850779826896447224886779052466997365738887581540360136702382634337072758913206389081364068581261800799382282582809564548573617348430136364196069724199585013123470651492052824875089178219849364013178029973764583909292250808937101709862059225441740178356880954863809941611344428029669275912389536166944717061076338964221887506290042991770060221109358967215301248209537338422748775354513352034210620723678160431822420078053143255959026021577154957490423928403906595038580769416536315952711123894592422150850159850056030480231306515033393725389205999278096396553216289122016702670100789435519382313157198487126852904878497824791679803995362406415606933739202976481853210543471718167397009019509530638411302823033083271416620304089161628906806627035270895520469198290932661319705075848655658805945670588735614295562509718705690064056025417677289305670025640212130208846892153440185381374331136323634359122901022545876978188399355580970581812089397008485192957600857793049952953297721954956377544077791581908271055511958107834955557860606377225835170581519191832528010989008130596193680090633932823988866241691286773994768734526369864600705673741574993496890526011493009517734776824025631935072609793038585136026957988377355683230398112427767337380537502168276145248734586100043498799386865043962648775620210608371404191865446433694411253796138235970138148628035611742937161564473602332924452177168968740086964181917837712434671987837015887192568820079986929091924878427104039600287173797290198340740769906477323171481762352092471685571590104639217224455010884126041132846378104845405777112161712307622672323932577645327440413241815825851565691119887303528305650153102748025796344082801749319480925578610322353066267625789934797354475302365445602350855690234681654090425321595130796182629136241325836884676969801529766687515813382072760181249393521280629964965830931801711000437492333582531624485214742924250649564268513479280781169282012395819161212305786855979110308106449451391692407222357497513827699822599987216770657140843703675449333753034414376970038156153137928923050707891114072481195432565829252888411368971312053950859178170852826755082589741130615918248649773297561345439447522587970219368702599113504679398486450561887559050324419374609894093973555139047077388549840901100354217792655291476493183265183472013573737914801149338329258741259401480651354444495934027285715418433353965600832585896831377503932164674880779342067485430934669383879729766447749981228483028460397611365565706924340147842049783458736960914518129033906689448462682127132402151163308919284313283985275916940485738777895564163335486812215695022958611736825548245659516839404566827150291692691830638767884812787449637886873631203226415014636680832319231688106076256797502864746687875344006766414121935635985708875913005499713250743916791725737395930732707325170563837777124240751623322291688836738368888506934010377200530586111631583876155279021225874057342370042223361787741228679728019226658796006948300378883753529591277781257981543531048084196704573667545173178237515751186386039861162327312070641161854370933414064837234262750720530470252367630357564842461045041468903309990503836570423673068431062302346893058442680945247690008509462023574660482782255337981226519859439093287596904822641014735716587636410123543232222668684234135573046102764224383851216957439268711047791880403645811625898342313156535133476993852254691075556181205036882603797915752050130348397941185493726316480582516682661878719997478085905751530289989699269547344163339514003558478153045094658773498280299819374496398645379754708177423634359665331326206224922613478854642168725829884095857465031420896325763756415103701065618464079654873890648602167853900507940023887096141624498485357275127995382941418172866043768487752381512181042349305666846141515710837518420781035005976539218384301566541702697944811561098141925900887964617984711135308032920782999969012189834018537501563261071141098700305765690085668247860832533477349306633334707196427062158857502604270271590287223773581065807834241041877819868912124076128921284400587929953364508851243909208983431914600355460954991251109699008318146453704655149414231643643244847215104736623771557954840359991539748058458120729506807921370849381248204242353539867851053927118922769690501543754899589262227310441761573755764408179978894220671679969561257351761447339805191600338372557435945872135496553775432056030155008482207018375634222530889221160491172344112542669278921080058044241283338526546990188820673825135175229189149289457023888510623355585427008541932610342068193032795426519684387114694311491695702056389630202441375637803466674249528901762702699039717062561233331034276840821747321509882543509747706176912467644477103262203244641363396948053871703588778278365167181111192868573485086776299917008357660538102401554327154936557304086492757836518582476332350838841247234707652441544619373327653640067722711196278314328726019288287452522961531007679390475999809323270538840555441993568488883134940684772502277600385684888235796202733716679821372685034163740546820588549382879907897712254102468666230603447515255338441888230838478093875187595588414264139715044026475441465411629560663312457919138316953664930344920185078085558913196764005935207326616907681447034308476360571007891312117048904327121433679877055596194702277842988954929832446207608215739241403785351292076164599968181429294503646592960517479790819129952388984968535756040444060375653734207834265749554903591275011081914702064624897640082631897937124565703541374468591126056100895152422506340137175375788990626896387512885580153013902742023290703126733610343232929808094723600441263659628031806757726936294995520807127026807061992320692988088620528012332027506980722546333587797090940515998352356964576474837244291733158704545294535349467687785934389679368812350827327508157933099576955132260912911405032227021014934435632649427602717810052830909889999757699976097339826958355108762218730522216884259135353840988391051953436521157352092015854240278559939821877124993756098098430738253009847767789172330106921052597412026613459069337782239152863003566192122936426962006173966194829482354362585108989345485630447916755088499264988672827531725687164445572230585298594898946157166859262465505401593903214522002119420929808786781434978129514168187462551137113795692426419643369621981534854634838366377625662679114447214198542381174082513595079762684607470850592981009344590193592279734439823459523065254330870869859182316064903214498605547150425794551350690216269914902110058347667246187002415302008350513952277314335160894876475688851569556492791365541676689625182491672341152445564231677430577253440982080796196807047383226348219438835123760031334220729067295751197114800257674141215245498651570879897735840200602440431597444162152021424021429444876068396591037736971238502159332531518267033780966971145015349800678776342264033035886382431700573941803259129497500076853708040209848727839702289772834586011675674259972189506790265599742909234495931592062387288911340418085076718527389655433375640920272492787310862968247924101048148594515014063075549703041421586744388177093824149478410978330900353119742990916530711172035975738294808789846195658749225494383144763152803061634211723247461389782376682685782749682403569033233962830686079103383478162816175106982748082656089896051695767105054959053992994246989776477826091161618154686662671970751744215381593542635566711647751401514368965260895511796867183741992464111636186908213534654590327680592025556039632052544495528222396071189573120361484275644467135001505672977106287963057180691826952484225945190674462482561401945756425256325178270899140955442279559416060972373253848477201354659328644516508443511845356297322142047344804075499356099119991875362461161333732182431481212458595326439761734902392875287687909180286875152743645241769295629746478775282858295525092254523480360784928090020435735115735751727033731728588922666321376757434571311022937258997049512903501408221537157256705548423581424849579415953771335601176828888685976832671537816553153897083107420091087600611848229193301363835744926784366473901374034836929506445863852733135748602164177243172836315498353573881918366200222703969841169008113878630641070785795005691202205015744076217976879760323818010397409600826814919549249766541796666076369136678405834626432140901668371645397820097011698094873959071688580619058633484578714258176560913291099350390285885299940486557480766781008596986215389710048964493967604034135460579228595753708235055788873969127379474363618444188948695586656584230332656375123494193389540387132373199906846488282846258950899159776473516045942908502203052182898660293784699792876329349978325545316113968430848486340904453802040652755985483359871153114376745226975497732345745028892259623531391975917787234931136680483658324538261558154758413029489160845051998494243743116555017220334710511985345963882724048373502018926032672577595049244905031895017082978718660888169349196349647987834881326432595857564514600113337220748484405370783117879829627394562255342221142362822066209207511561219123137495351108855490520945918356771217897740544304095301501561068394128028666571644509601175972064260435356540483977050350483196813952650207921124372301484962635403939094911806384056883667751893121066637925627712068918778083929445688322951594136021064942462309011469154383206903226905529640083016406046912976185711135820421635403604955201035633597878171320952643705667622071193324871036091569035438358905109727629542706373665563869270762126063797009642495485470033397476111168372393128919010237527928912153752186602534613713556428388327286088769704146999033251001647196573848085700172247430384463464592503286265611169982814095496980594177863962473464994281256432139586571042443643282615662796370881555296951273675499243350471605775294099270614328729580123564796653264267157550680303417942185640036260636307741353908278014470959709759029921728307073711758231914842618576752472141784311961776699996605702159209371151530958983397888200511368593685455864400788339738257157928153791946319222213630631314255625736339628289104141375053571169718073414712202436849821940332961774662945337219577752736435035704995535208432391964175349324155238414168053197052182943041310496504874467624542646151818235593174683273119647747048704633905681544949497853462976865925335372981601642854246244898603344354056049429633622444752084349282429107552572456339372705707654003303900043112446839244704599165657211566247723529488425483262002799006576533608448533840031229437825771655674327579293676156039599405980118232091909826923356898627884309388700070869728517080520029471756837318856093007086293255446173409827780648997065359961537572761967644415226922992356609268448425065310650249302590092807495053519997804847606426771103990265275492679356490284449261493037556527210702108281431438576792220208060627730922478138926678517175715346462509451513197846039753698246512079639764112893626949631276241770295304156437017923291795985610299668999758609670431468261544147493711722986294410473556769127824179550669113739492497488201092301040031516733658694994799043002847067365349031190992882059517766401922660591040619637694491400315035351691622861171594648081392904509631376194732920064743827354925600474411701973727627491093066922164618428199522851451643545378614523704450365880262012448401348571515663543330228296330310285197627017435128399110752743892602431639655384432582178574884534922892201199508278048375262631058146854302568339349683397392894837841162698035103090537921324204677626839261114240114324810425182744110235719766326137580610534612707392068629433652321586389556266421570702236513264820397164871006309366289203101587933430470764245418967678691457598205844441651909240838352586924209958779581143864190048443948915164452897793504088619813102825856386284871671010220507759473752937242700257832971032840502386656793590795158671315196260323546654201554525404885191341115889446244339667693100690503949398075845366284326255535457715922598558712535715582248870010496556868464865203093288861925471703494036269307503630397864010241300181264474848969794638583841905588477373091595281388537142113623634785626522283211707913688975380232360554124912474663658725862650317239255545220126044233683144644718743597136299341555620425450477068351552390702131045859756694894888451175768850736912348858571143698671191104410198719821062663355876478746723501912796320339182828132675196713095146633423227610383413677827533377750883761763028943646225387564164012573465768567099902251795820765539277217980171367617236107298839478195058552652442111159004323751808121729154138649342035440000040904092693694659849715038034532628339033273983919745125624272202493606397353074476843562726695723953048898900228026145691095707812377848815259591668178026111823630292693480102734542354141256623734480942158530992367946390198796147610259814453095692386414207088435202617811353943278364975782639420040388960980509998634047956337527468309470033280426636064584186572907100095671584281230058627767097137269802397896793237602082978710107751976348544342548846792116428879750564645782634105834019254911196085060742354766320836147529164549272348746207553613376298770597335267659802880920097624839145788664106903095335651239494257033214006178409612277394602915779033781937001835541160587793316587931208770185020563329508192629616159975874990848169267097969788423074461527829204752712322855873640019662051724656193839072850806325859564819379303726721492808815941531606493311065730224224283837183194602053962887810909331173773308192739842712733299200649247336857496673085640410811080168825183749112902275242574311990088755140331210315002529815934069246662149425316828205562262437901143311732409161811477887779947360249913987664220428518522287780523671993533978194262268899068965488234898796739431188337771866024163261172226308208393116268426659379981729736248893072755194906657944846748836180128141003503212493153254983792565062324677600838672793534678297267541253500610267398086975109550045167454534659082672632216694835305013020493164275307178143899872598685364378239468854613544786660191504033297683342072973087257016553973876402232407994976332972029493133828800033076996634152071483090495385305691106541739476245555705000392923109836903712297876617436281276645882334319035451531958291309032626677499467240218459521705920396604853816188853174702513791970064994200974945775069285640851998512460640373896140067784219919773288805577179928099441129337419570935688454945339841983749448672154283244484211334843408259094811795266978011165893280106858423583049005868992914558355650463239714049451217846032219133041917578514151702853516658879093092201386784289322155387128340456230057609853252549431760288795785974163483488303253181887868464291939276811567059419534182436823295857760174260966988704180854686997046453405591704753985616396561982065579850067940490740684443169778806965327972875265482874201030197340995252805966407962175141760997570094287649212646953598381988355420010761015379555699477924598090596960416427369451003838621269168282706590145542491142542242530058491418521669652344257688448797287970552897401199248549501583867667804581196012437336929326407280614490690922444883090337440788537913336891529903576416398630147299003047081977554127096609540938949746501721167220153917919396737844593765564910693424292601666141522795004233135447060912786682631016035043788213358832797506505870501349624409052675948265093421771720368441877460112232804301912561250952135075524229353440739138411134735604872937406180750188900079928954026542455891049832901376326525319191011921070367724884478525562370333098847040432075543784875587053596762090850054827538514287188729792215962117530642132022604044991068670806453572900061434271725427958335580291749568307034211268674905541590547455978406901187099426386987598347459674703769567725559792961779604074170004843213976481956945842957914012836955492552466154982863989404233587508450631237104635059882816381525181506842154302326958221792445220266201034327857738947847038092402293145432087193277174343617183462827372518652962603242844244813804756541491746151533086953956355877254543592976031444765961985186479496319556033876002091206725718093549588392660822041846292684015626035987952573894851715013372028183316993233699193217793872015169342733085604774262766931205239709092074527565650428396644500768965892377838336385899654702927146996245013280102097709598949521333618517419548350126680202637426734653417038701554963378970613264350491764825823542026433260563148465373346873092496792837390101490009179230996455220821931918687658163170064859608485012063367324066500819982959976059749706417220975491474931079219431592726793863416546350394205569782327463331357682202686571446009613336030054129198967217845324537082582846955626045275031790953331372676045270021518521550629653009796979085861415561555874963269478058749562761674232712625497716397923614653416803161187214558026434811250117197146479006631245610994769095039669133966141018087479979126538801516839014630378920029848691755291908273092231253628411144440422817410200537015125763107458081417206028849935514391518735081365286478861671975139134849247429217719855209343115036417852879907272502023978032838877385771892778001467129154966609535408459181765913347328780415239143199686492334028036696523330035027678500179833060318012926381634932809315880912090701730797948669960091534904280712003421424256250219690347811707497008864756806406315613076115758708311546864919665188187643725473881460132338140231657035926728528661809644035696922978038440227001756445962180937166027942400407094438186592456474714319666392611640401573630892311242483052895478511663826408175854786846386596831371824444799547942986331328928359192564588539175384540700411307096826069159540041739565055099005180838908215975215795425861136168597855721374899195184600823433705367503027647579715976594372795789416600734141825819166782153255345080435799526534896185959515880470215213753367331389854017385943289922654429316191248901790419456750196660947605403867118285961837195706223511684024680496402140554433691082887440778358979954382125844903540737620638105482872980909383045686983106220114791183635899114106660904961320302220540802334167416880116147433778109700180455705436703091911492631182739516645968399696961568037026542200542133903350586356991084885984589432870249021844888896112422381176136429997757706216558347351107362917179575391047076902827569572448017674164224892140391137788248147614243963101011821286638249043072846542629354282868053717383418882899065959249232191293975363327642313164778138931614518529551466638921314658331136056272716929306621425392581528149634938401969213166334260632546391284796382538907827213103448766568849377480445875737444812576493599520904128199151905030845006097847785707375251638843270519880069675050086888499317302063241350900490101754114382623660372917786171413473007554838128676692738759895311608213742712013191883265004747640814510306189713102588209666022031451371458391222514037788318906745693679318449713062237763930432148986402398240047324342271507420003971219506556649923700734523846968394357991652618608311438692190637029000502864635632125403978578791373749715957886361321214840165285089853566588784349424303206910040367706050106292261230885378190418732424112204152854604244515193421781072151024676841373482806076608278139226350268796184922833825456784359902601338735729699236623908562573772207559092042537378362607602534375186659142536667417904027360047609603479358509439437164826978928440825424488591946250768671872057047169489123832108912154522967648797831914905092084842904328018285726440012474982599751203734882839857033955458085747316598875071229632331921363128072465296217526091849426288279865120467811386649296545412247726204296518322932334063831300975611256109431699119187927613541321587491890469640065782432575981042543255253217645915888416592502906239106260772762250357984831078476726549652486974573242554078711698682172286608297983435041298819254452157517594483444734035540921960314985165108997022123699766980333256629399844926956093912694031327867400646620379120504371913484482764317108000259106566459667252937381164722021537233480117093447714588415750348782356225971096777503147962029627940489692233869517724075846233384739302595289715853037451494088058381544050794947368077138048783116777904943515269173925968551552138068023757053576133088477504115436510543631093994025352742993781358249502076415352235048181929749289280263554558632789298679644796866575229703339795652141839805572662077257293993528294902545305915921316687135732657616385053886240321469390511481958797052396964647886302121729366510559701714462013148594929485662914308866469600873055812587188446632385049723377930946111691589723642359069104669144346830720851957936673065072990484084012196641391151281411151887274370535838716516867331717766123401035637583097822420948107460854509646752828487370284469072290610889772727008014065083182705733609540561034444158428476477930777995678665970336877164649706629174973542036368467481497835775883656072164415156978178767677131682036068967085965190727738453138003246706341148205078438385875918871442797028902951045680637956505689981174203171345916557510447355660664614398773576509113296916825224862038153125520775510191767498053555928551739152277292459216798305903017817148409401226744759868419992522106368521452957413901982194796227448515174847134346999010177630566803169057391746984965872337273532496689030968168593933625313544027020211961380171438116250221822085577084121694763542168088232184524333720846973477718942384618892425596884981493773742559137537100725918010337052572516436269118785171764491540980227137916880283699213849044412296181562585025441478415693066135127300133107556790262952997447413453615878489786745633258514982921013376265612312014576330976140156687538747333915774547103031472550941024141490357465377614587881173951032483416981353343132067358008798100306112828031419179857465010198291871802231379867566577264947894698337815775059512828169775509015348968117503072441542225407736009875885225719585554061968819463069941502297108868170042396415484442048094943476474667001890480069284539639782026680768247436444915487924969859236849732297822593853730861196567173233344806108815044363138361287228464361575174477268452380070112291113669295029237832412044559223158755904919041661340752762151901579572858416441070209782604262003752873120344710627200311729732169665796742514559230450803797220538366691832545090280211714438717544795360886628104638992199078105211093945099498863793363740633341386722796422688076791175238011518580275444222336315959858212079846688598819098191636817424354012877367168147166176710800113659998435714464443654519293164706452319621124066726763298694675767576972040418054102317881127177684249309827843838418207944411342046381586427742627434991468633242027641978493885329840914282177169540123832363436234714902017705802396943428366907600046130266900748038399772338814475184419150807964823893753167412939824209882581488963996754098226943328663258459793498430747073314247219686839413367724954874403273196778415635011512412068434117606239989307322280410306087614874286378006176410301419535593760783098289103566370288349557125923643915977690927445842088540798512276883906716867614825871946927423423884635708908733756252740386796978433681082111538176827057090089734971331609694939975954316247929920225332971882884477908069754527239042837436173570828593594303897343510820935613094653455371847279928843465911256040678861641193569997513127465294467857169915310823869894691494807162880482202464927069752955789112097251565959971119818989704202457197887619021832428072427346130667143626130572775296747654721345414027115476638354975480914946262255438052011052671721797665280822142684562137215734572890238260882515338855213899816172376808682532370561774925858810507277129629375015594859884886422804105967466743114708477371805974969655517840438847673155954741002046307977283233428579759892264449004573133581488163481017558967343250361774169070519020190760107237121497484688047442125799640343536712353735209537268102864827504828730851643931886332386909057642770934925350042917152243103812385854769986764605847570629343836405514257775944180796538895487877651815414377277729014836625775999338413548995806495688904167231022285370401217533870647097086546954466704606895624169851250208535433731640472296282507008286510237944076245159366606177157411076036234042050556479889917281053970125725904371579739733332408210698406599968958586057150209665521524593686441960643022938414103418960819855594776788867280642165085711316826726570389810352837621924392970699552466804924997444874638701584374626937291005943935760302290347675562866904338246846321581824247860321774585051837265494906829039029961829729057093784466362333571340072373194772947960898150887243941303416379613907344414659635079532709404653854468766144991708551333316862587820323594221316432807191435696662895734613714470845134363623234566099927033725401441380123756641518600873657649026735732228197675569545950169862709244099069372741485862449341184493493095237576687300399556826284394252857498922580280410368451195615342463702751472695202588404319833614264239894346830065001686744203243790380094994324421698334368413933874331197365551561444495496406275089983705455552881154198779445002032093043592274590703567799202060909450125337871265210493116094596884462479608163172170208788914869912538262717848922668976685473340643146714424243057305676348301939247362932048638105454108126837811638789696220123484231374610119921531862225844682010434805356477604620582349783492437136064650775120003191960029466758818188417516850235402136858503873413015724501939219235631113385131016380938337730015839353575608900538125111336961607995567737989587698107855647171343851624426401080854385295861399914830626502943067632548196144268472745177571742425200726813268617784432295170517915326210014844664481764274377321055333031541216432889843254405601292190677792627993096351113361089287710511547867522032566847769616584898551688653385927166153106253142149357272795914886292015494416783844076882178761987340892780013405262062537631263068891179187685082794482075854640120942888242487608387729395057083826380793198887295443986751303421544270841411777223281183371578813049779956862736847658583735077116531005568486604854587945024611387058856501572749542730905890047074219858210363298319128238935952789350278035187646187734680005965916069356616011175479256527521396261296306760362715051953828781163979717174249741621057831260158552235865889468425891600607333382650965405004727670386913937697293945951916410394108279303253583583916755282546408168345340353501755966893964672480372024513096029182820503461594214160540313873049784015920506228387751531231782096586241636229188591863085886703714630507421444491457591761763338273726253645870979021424531740270601422057279221975105370437313523956674283770884017660832844891284424713308614507016610254032497854508679417482868519938536755734121619953234877245307734574645355927459487287302233121361915455789679841615883856775234551905361474013742236916076859444553352646420564591924659968542638632000999213860000868550892354679725727675812272257092803568567175635900287762352116010716353146126412326828126681030904031959332412651606601642899331603850172705748642847524397159943192930594119351299220130554667359240625011277423313313896022301882967733562636549622474452436350860160575924524327188197323892740268993701472145799343441579712513200551160852947422621399727506018988423586944595712969747798510117932606205771618938645812545184024987115546415685880291948776950755958257646680270583640506512092107150125210058477798165919661329293567745190799129608198537002923741367451184551330171731359692591613453189184433816256346565648395207284850782223540235060213529835605898642406686755543888187350794441592107527745540184143440393553117711229087082688344313651171654641127507304834131751772700692242577693992676403165292107449114594889615204636151031372444109526686258782863195045542015332282729292612767518594713498150441526832746070808736177718615573336568618564664059750207243363310020281109586483270928111418171341372752032445731925234462173194025424662010203581728615131936547714063277769272072370804178235391319414203591290801864981898119859590397576409266768831581296865227081244590913199711667484979363036018200544759258382163671144912071929372878675169104033708013617942158850747995399016814034469554122307741017775222233855997702695139713185451145609038751658418308290527298661910099165837597016216859772713405014737053669642327156111442249728449198056470501182422447851389594600446805696603678828626451161562482019606783140903473145823091359373396566012169340044947272408743860238902745782898606612752192859874137459988070971302860799486806783739057408298487505010979969336178112097405330267125030547653211980299508866225116375945205356170622797694096920309212497465051775646845338214055282941513172992421110653204548141315674629457222372977425084177805330268267432008360511334561012769654758060321611402025807955229737488819343564748029496979776090855387134918247822550331275832914579513530699522593207277880466018339449806120334364640247776560819901856127958385019767280448915368505856019835616248480064912592346417764642797721905994995794819910585424248187916005885017817774595040399769082203632108812355468909036238083937996704874098678122376776572345212895602272977901602980244294364156734131781703263252568572415774601075907237432437675123723505138686649553040278090436544284807966235212805107602008967335621685122234117382446673993163116607447653475961557908265519421411958020384843487700804712885154900926128712449085211709961369039733510833366709074707977075415118171508272274408041229133297632561309225083453899935758303953505756133293607257014211003509081815934294829640633255061666377421495775280810658812001292322650022438192600999804901544593961309034668101530223289927022844917941396832784201609565094691549942751011968705125263183871179280213766436444417471382444127701060047573729238610275396802004121175037037849080042404905271781026948755027608104187555994771859116011470157048439252527664737095066660112108437274340124614800805244361881395726484868010990240710401728369115993097846704268449753219888842569779396490116859604896387451593875578270723748403607488822084340352230852391959108916530132347234000159434435266076293237854574421248066283485205409672343772012192428116516545198479808208003079629980413670897313158274333042852007873023643186965715041985002637822792975928412269935272934865169048030309568360776694014064558138501370032831458085056842684639769367096581490716476596801030231774643528352699775282395974937103805727218878014728681213086018704325199782472086659890523996204315491540262315103321317954248398045879952184017009792648868167360841114104453475176175021522295253198703262408193945604002577786873039874811709560820428815215402909705387241599855421272963684494552397605777583803730194706711215987899565688254450390231945431661570473383111641188079600225356836983117591056180814282555786581635618923722293602125426088616586435167255668964921773724007201181123590871465365454773023651667708457118897181589151865335129141477077196949436688910540319033779092352361616187370961642519747765100282463995419848329564310456937125728405143993592091811195662771422672638339641804673946086153930646105915903436890846666195047730504299470741213764975714905898270108341380683149784800327256059380880198093695560317330248718704011928437381211381391268865076590599340308124070819026979733761501762852823560991816464877952642813248428714886610828811025239938484255121253884850780774473685514877352273572685417290806517258840869806809776390368575126886232837742177030683053568109779488455252361550772905396593427494715844666273691155490919261189872241545453347023234421786768534137490641296391773751855331547814581067175777464803505942079163660120372477627499384867830044282465287619444121780091366418818307264262571048806837876396975300853863139886126961078860769944874533631350913104603580310816118936288485427714089769837772032160511160513913801084113264406942988370843859425742782714672151026565483253559567057173661629036453175369319312771733506873293653072292113824748269366795855687331901984412315070364571199913523392744629298968576974933698128882011002636663879223942642347539774465997632728588975012515355239882545356731030789445275622071485042279230470134635115047620306372571077794449141218437679639007847950364181851909571817445124816823445301805940903074738066333448059118012765399765762674414449240471362220591114922557957573032295621259111892689073237083084100541577230373560495569867262851244008887063765438635537774192089558363038643716266797083156434382435701085413935082944246032171267431762723114574564689535469001410484929299275543722173704037116447501835673490680818068486790294965942431132022226704360013137473078826213231826848010683187789853243549125238270165550317887572984995469128680957982823972263005476127709573512447403525859178953958039176743971868732942455231970225887141748015140901126474905474036149708768527261699618598188680719990250545812481357855347057499244166950206260194970403629176180765107948812375568256396321131348897407270325122342228032615671390252932369907781295745249552702386143196271601526302854875605058810459014515377822397349724810134622435324156180605776153030538901614765308254868456998207731296753693349373677524702430291198536014149994345550076892135950562805913327779475513110691276779368881965978376501373112452941153023259234938506081439301260147186889410584782862931238697116238235889927362387213470423776511367373517820062879953871027939704416518917300992820080194114630356799777930353862706113169745848135405212838733280835153616646282048235201205049479637341480347648209799530758667299158399099227686896995080450116393079295377231961850723656881213831577722572152985224483556921306041999869795996380088421439336518871511070063440375548915405730169536746167574559963856709707719543323199971251746406313528666879473565283866029946090490699723026797612541452222056987950652610180918540221941641064277805538753923826137352236969597923320029467499681927472031643672458334676414202308270660689761788463074628793864220158961080122138920300011162774110209383578900181371243695142896826476429715231856622252099134129163026767282356900670922482744429007161032793882955059145194090491354566531384956053819741758361381264991660609852933103289135578410434757602671117207192785396882104315384802974440856969947464173498306917489500608826000294305456948047578133284616451242487944624499387215201775541303666849070569903485824612050320746411941072926703578290950231550124700766337306573840231539880170969539468591886481449097517614024813671068522469556154246396210910446272924725072102224089600520364143362828703097223578321230948867430755801351761784633596242973019771621812578322869499377563863634440133427155684585663218297428717636111748655031248557479756143367174149282963815087124493583423881637645338449946856529401344195490483083197198758503654829962189293656725075236914786432962036056214511717075235463443440422437684429190709589837814392588051143949870899547254901881396413405103606185812102804981065280281489018143644299231648926197678221350162671106005124746300299723356786649407364625825236972292512555815330211060471417653105358806511467307519938446333880162074187522966899088674356231748239450475087255937783188526046723324844940078534229451876863024632283273011563714120991448602102476570734642727922674711526010056571051919891743670653523198614977613970861156848131942372374582347047111955740720091072736709021515371724283756609373369172697399916298147584683708072615300490940203431124783625136927402395684164159967901816311142375788558884500088057318016835757138302311272780533834217193690789730588274950219099678615293510865130633431314806233232924469680531144240281270918087007753918603813502974452908138218206496340279562151132859070257322808121434255571979881913146951965853073611197788028487458985992942425938518555089098378332306018453557842438567766244149404075071033616542680374625059801577557218035542190072412235487901342448556853868535575473736123406509453730830709492192707344603997010129034077465663923404211915668596738117378173971437572123815825478207242043275440887735475113815683663749298573162158359643781145106047068353726523608290491834186506891776227922379125228130260865048527947765450278569660614997494756761210893819078435032296851666303915875820393649449654705885535694916753549143090514690244232312560861796975789923426835675945030222625742482723281759729122887528874431744328661479280597286839614186428879890959150718412418407347291920579942122504302274749987054293341747582554795865422570646655926891512444490289715731452086313830326416157247758400464990835500173228191717517424573482718812779796395419107307721392584739381553377022766109496521256261086841014481439706090589555209168942031277713375065690418240327231867229773363970940832437652813456313086708793013309809596428068703364500891055106545245221837345839998261144837668175661416118471520888267937742682876806914219784491082066898168115612018825771788732799202223488791853582815163884199640181988050808682855868777637424527749364103062760933828824948108263402684276124516330502977373985344797796639665475976960187123601849447750599538943829656241628691997766546230930767871946537828383445001256304178748481844564751437490493363753440131437232046065080298287942176171515150863405349054756724117434782828922055296869960878262974260084016813776299742082642337991659707110816274134832605353432428888955403267359539981729492200657934413229740050054595355190537953364336084291168204916073766559107149273799684166867150123776538247573856588575213310109018957274179320021475384538235785654760299573363890221871096667178702700981945762696972098739444767227912150681115416141647680994098107468490690931067661231023498852916391178318047585695928117088804095693331756954338369181918927520005791451650267569630369561549102779711731074540326304478511867735687729676158764784343739510377578284402611691765838035232670534711046225451245623317558418814997430607967137277610000900468915853572774553670286514910264609239193653061000667645198425977642364917336194512011574049006662161479353653000723641505851089283733263873335453996946080980722170053990859213495188078552120719921797817809160867732550980622812640888398410449654099860370110228658694539407341637275542830385006454486252953402306427417629397993320805576168566935463991839139441094190856128085761078585769483625596302245054107537706435667041578122888691786959119314429534467688313840856055201996914995428638567380061472509681412294806133302334751419007059521709220066872734488161643524354421724427597754554696256138939162849672372457775864320929014210961914425225849382026946973971612817982880197497005601908195621187783638912721163202818839357659777555822937231700725264986612498145060259034651171768962248436942217974455490404916171835232498215914265383400098796607107416927310006657077708552753995196366348192800672334465594917031107659692440926023731151190772526757459543008618675540487171752745680265592641799512297724084386750311166661521215881056213205498353859165488924833398585901328973821100567449142603349632236580422383671372751196701165034033095768984274911802175976307408647848712914816308331162763943222268232673387303144953900034381967101813757950465119463239261164192575391072055496471111323106682358597403937278574939680418811393804908325776783630105771639618434187909234504633556006095800892024818833458481776875222130307704955018356810275014377144073630105454574167143390044272877423543519685162720807548970926733333159305416922974451764526555023668236658001663216393410082539791585780684164283707317448932327108808180290308207404039884898237849576067227506414743446561241077438739817032145674409441224949182751258560188263934097098676500492018568862576306030939428104555528672135625429798526063703913382178857944016848605388067786918557174837317520835465226695729109323332038246965865662145081878340509047729951995018622868097917338993361342431898124155908779316739089600345151063629229036853934890617446268310842390004426436878296324751372943081590961893709998407442429354742988114095335520573535804331363175051367058245806276471713674890019025360859875826821206166908398888927399768766119790975662480402672854484452130407722807945730630045945656212490246219681825386882745611551864584989047192310292613998861720679015207232856740409339630650124134230468642593081894851858721018698031401975193982732251199394006535537357511685678335430447890915484686193893283609568468229667348016866415497240369431245388034916111269085837087700419000163411147061998606240870926441908757032011665052249503066212314028912649881952673423920771755221295310171812931649037214188197967338160404925638159108825922750746752853678452559995632967122221361599190342257574807998695803223954938152995875290171147873524936322676349271651540916602921347993002366652198431966628167117028646052332009055101299434974691612270400534795749008686199679421621096884769974971854712406481334052750531593263020809728723866053384359718814407992171525137257485015675930569692656640285332951051044372362100622078117321260928473253183485554739346040782936604649184334993056081416206663499179934212595046991649930700090919745511092126161603452829263740800410995467367992519402753828645806392195493197307173165758408105975756008662119159887512764134882109304090757621500266124545723157661630711637810091345956992712131710211006010063344925287073128438331560821517484322016161364517947254946194187649229378565591754951383542565234428389194260829772634047243074113162370482206536467917879825723688331974493306852543543036495588849004939206091873719240381223179202425103454557880098254675295845531082285221221378422071647514153229344024337425805654879899910582662496192136704546899973583987752512112312234299551848612015445549124159861953404546699401150179490090333973407253570106147246101361914010141357319448472969307416678755844990987568755622695682061321532571189078962361141660666993682100725550597977259977757033272053016598052983120622805825312035005007164620928847958112082256028762078277654868763107346814466755210386227011978113659446448701986085040889473976351256235086522008978581411946603536196438735617893774190035261526935266224525661306007367501903673556793263551381646209357781869077239861346462208244733928923378349726431288583373065565796308004920172047028748223557985415170632778392999182773174547939535297821005895634945632098636615601363138990207695640243395355151197700085712150468299666049041559268340054106090717947438541376194899592190283267455389810134646470687860832287844195557645870777863494635232549217919025865127303692151720056742805321231659170764018916882306962311211319054025033334507576952097443271310173126879448642436284970977478211263981033016047485986593803624020376572155370206351335817747140779305387261595376291658277536381161263482374935929836556362396463226432739111303471557631885897596450408102017096758193371409604085311645033312422486411644127915945490125878207642302308966629037834982825981464786832534877632275020336209362557527253232711831813755068889840488406571725701648210440112634495497029098162412980439474250103939687534372588328666845833407824887903792209447960379720088298588459212867930888500608849483410117608384874410683434622015834201139795948576383038277668648858720385789447988797946354646263313241501889499428475498848610633040725801818882117633575431301950517182821061184904268232818301420455603699348214226774080487932834800416113470976446194015659341140811652544173441181718871305291025327478469147473350381460580502366069113712553209026085020344663784968599845183089460162229269383525538984816177356379724681797125421422315025201974592168867293047729987495559249532799602925481164893323369012392698918127894305663281071191806680242896133288268125607687214767028865601866506994263636655586043938103131534274532018424110766183313756853584954045620219647309395267428216351906363340086311323913873220168936440935148680715856664017282458283058402618568515705244109001447394606043611910624302056454722312441765641601264311775633712871445526310082257936352249375827008376179684164416208885456431011811463877757854686827860524738073890863122913515049892050066580112950577103214152482437699703182318973510542903440394754376259416517706816418399962932488978133862528583937647901175944562472548897325139773514798624898136472252597953000020025665810746563225503671860662053336462061721181438333069446563000986818803477527429845855690930553155166859975387514394884825575829529670135640701089279385419996608602571252405568372306988438008246907369426222575029271247056779905293856830933279445158412921352498226089221502191208985357265869536391654569994768196026243280385875031441654379695526528852298172921060620931013084917110202568519794443661324080517026694045922003652116386204626013411983674948102993382424240685516133631116918143299579295224960438080086033508536440007889356563151160485249310977298922776334785110720982892022049324609727813565017359304734967798478924108131626390643648087928292695362679980757869462560532469999985096050148759902395254712346326230799561899729133405861867581098270460772167604633506090385792355105346283175541680059270651774805264374708178170099600079330926497009648858514472329937243295852893271343751704489549977526950244006161254116382884408380512088201589979293152513470095627292914373006330327671128437290081038515931676360611565389459050873067179734808276437322577285679809356308331841306478406228904048584891073164184007356370124339178466106250823711951868985677466079692430315625159135374795466311928057292096928261090719317684764013209489007025324265694801032215019197820646677575339494943727369597600611151001695314229499185686895849730176947930467333110639869473297237217904374304898862585418892495356796950542186123985954569217012878886479398738191079653735586263411274199819263573758042141575531246213242669652671162849833124797962109771601760715664183528778691007689655222755347016284702765943082602382139634118129845408455828898527481773473848173663449921115741570228260383407376974194047461523104257275501996955632007375186466340002351010783677728689476561085724896699787219794835054542258987175354168230476621866284427937664147460767984026553924538037467302075552166099765587305991798040644230456070125616824671674852887602973964487259792232651204096385888342941839915803372796953524520862903165448146310161100217486242959839465320955467072221371328173098240267653717647850808059087729848192042930875132160248791017986019180774071348043002267697115615560898571956037414431586098594132296841289155644930931159593087898416205778590751323978431838381253994212356680657843671932879977313472996535282562883540581405378224441970954268991991853751211872851144520024566064370844419391031048268107871067298863530056189454606730222238874286146745802463675908581326923127447611820334758527807200613097421428981526643752330210109674149739081359701291419827488148478323129963250412974177562780681780435170522552106399674494725952330665366090525220822254156639630872259753872567633797723102483712149836161414912597384214462457122944556931331897363026198160830356208482842402776236149213492602606764995259409195983100501987285239832570773441527127879451257814045294076273199920876557706660954722100249818071894897874487171315130539303841025602038084765945634505207630977621877596976511622816147998820593326404818599068468264172965360025287473546183973154862600375957489436632433469907664908964853927438416604887781331076252230616033186452517596821887963641909200864779110684943985584956060040419713534561409707876091514892677384743931980201446750321896813386041126405288360595781925209089740215572837907084695113605903079494231024658516566431845059620672041963384711078361561807751134193922739640505044859832370338776352122756704532786264349304284113311306265171561862701971537490303063229471803528315304461945232686316726307601901661655978620688602162250597575581056692968403898287118005450008090379192338448019746533959974876589003703334633508966502233280906321338456197692998630047018765595930504989217326679140223310929015245395029382325176845642679300885995262372677252826308499161132176886467000721713930649632906917606010891397542735337392839679400611580999503566818803307557628173156093162716017668372903044216050655829365735378659037644157814976462422193043629392539041459603671812652403654912699770329507097090631219481959697953471337139189133877161554488429988068712576914096921058209201781516247930830179598174317700389747233726794796348273572546131057361005360450837180049267508966952877931486412299744114356202514464638198888750597061339459830315986015511025237150688573090607680162730638371107192013309794302778009946314278543777073499919695924233284417386682190234094654814602756423356710084181019825155643557931921307322102429400955445768509131954574652607078966890124639211610138182828460117198684716240486772482810221338524059908082726756738061239244504495335290446411885706028149737303301290298935935981133965509196014294691090046112461235986664022324004457160371315536065041883099012696161695183914769336352143855312940412694494186134452477594737261976843589669024062512416911929195861206197779977872591029787648011426334683783170961284750586319206200379449410346338269621737079071554966033178279014717819239509140954519439748865844899314741365060207284147938513953271092168768707540439527808659508902506081285858771665904195534414865407995454251099171175701415198882851965973806768769338994287898653428006433749369249879663803689902625062272973506873586760664947828952910347712742137560193622973295856194335445558334944721540935333927374289313549540866445192240306347167442309910841932220859824304074766224955643289047926759868746167249604796433995245962625588909602518233080355034717235944977289067364975007193113993356595161773696243798580447434939008292893732054022787002842645612220200548728627316103401103024209144053356136746454917208610923697556299736228030228461474080859833774868132325046847430835869251224550355689100640088556073402067057105467921071879483962472040863155546332889514293267876296588986248480750842117099757082245433700074752419903055827582697575666493767316328366454815624098773193321457167730749885301278079256563474037900690703388644722821294329804197707831034666908304360640704180798306577610980140505651490292164708788757089944348937890206291751476356528472592896144024237961522339964523518984140980116148063985226684617706147162517268125647905006144762984223883934256157014167046533886991621369212984312266668534665187410658965281532735464966072391516952450528967255834940612749335112976538825111933866815333307592027651322871979987192655674238371986458344736983750677213805522919521578303087247524765402475224091102404214729443340543619634757280330486516370258876970531740052893730831285081059911774605390439003387043620924170577268300946759523746269011976181263998088834588783146422662221092725307163520714923048758339170142854804236717734979271586196586163663558986743304586666959816916335273451479349535765146957006969001165042838798131513314361672699325519157514535357999002094760979719482055216259279442582120782657809532162446844450974666123609092598376788360882972198248325084964813549993997387288586158281467893927053707509968239016753171336482237946154280391928323252426691659876164334526277382212086470210760841874170596600111028652988629312058241045122489905035720377204305823729800664378404263437940602629219516937755783431922450948710589807774355123983109284646845498404353056166503238883679052986184020906187031385790206088730082015111764886351149038517554943099725914350214451752792437199877632595845998244013224953029504693891010503130539382717655079723635978148832606435577937624618184923425340505056976798840669435944148664399767717413127273061703509928116748407092547112341377640188368367990651643656766710041494774107820000215922216695310078155552240415932219530149200720877011481120725426081155177422185564941463653585199248915259468011743872582768536066127078466053100018415933186339154269883734858139449873541415745110302462766726279221966258623626197882730090489509035153080777716100567315100479245364987051494902405661061365494983282394919000033557624176649948573333942818609497314476133434318703408127675355788479929139602714394239847028865452740240640294566493859894941226248848748131416398844985811142606998303537795375574365763557651142349271499286655001824743776287230219751709088776087631193441884190322731682223434116309212468266360195840681232974688698260408927966449718373013353928334197011120582078604131232235680115897966454610273699408637233062676256884763392416794553416717768837307780655386342764517947038448859426694999606220846868307946494826756063396773078453444568551433011016912295144431363427952188868340136808098052859107885132956398485806377735941840037075061798605250775622243697405364870452921355086579872728832290062519471723912232684167119514634706829065832467771267217015609252462864411508608333869947588227160602760853483570322796941460954710118701444862733122774641632256891249017459180577042575371785675323016209334438324014542837899648578759767791895592464225883938950749745480157551961758213897793868976139907278982805448363638336489804752627855483392874221116325133603386475412947136913025268896426172777463975966829849408869738946155770501392657404197173713165791808547764127406186158994016347396497737574783517669242587907883568449551673748344425981541958090865656722152669477808997072612008294128978936980101101617214416033888091005391218358932111033944942770270546747697089784086066706967302383768057581010016686966419107518639752232487553233119250857287350325397414417487244439340955290002022814848021880934126989506664648328066257409069792122703669847667918935371268534327729390378149641832338824595658869733565894899732835686424042476975987135099435622583398286079526154756616104122156996373630148401813330456061475912418861044581841439219461330203532178045222548043660550858325965276228097389849613637703520832329466217529839145641610317007297486613202353685188733588915259564433995897573438634321063490981830814560927185478140144220155615481495151338057855466843965635627013359719001182533670434089830122187795874764289574881170455212230892196081912366878607417681343180157729411825526754290785349785960012477716393539743577338997255928549500787946057728201111281148256542353366601851251747869675390340388523068426558243698623753709398736462302788438666678119712545990908439452859557152451506642843341588248114976746934112911352094395167815923816403782744579458322388056739788931641705321762880530577487310340931550452721205419000822334381973284977213437647736277474796809219571460236081814067497920052920342370197488026406360644160615457273043160149256955450045896416112247295258913103661089306169811471696170175932048932990182062835687444958951435351345436793267160822958170045886900857423567201711477679104976043273182481924160684672452030361816511362240782056755625698304393928054878224475246969277563059451300127897149827941675448941487507849402319916584227805064986379699961489796999226924748675376506562998629242506544973833841174307829429874420114373862718573052375391143557775654112631230666164235045222504857163738339149119928687366849096519975099058146376047283668010581598474662150885212667060627933927742488038066409233775241557807843158829488762594440554415138656617531427356118866439835012053701693387466833863954715244435377643694937660945421327363483981609341695654639303452064650180036283705129674221464060168261021672943044099361961331420661038362446324933254173329586724926593454765070736155553514081264137197896230059815918117584053388940550858677448054106259996342401930608119245606751014374502133083017535913311409291777889214766632780232201019061940543980588948720597125151640019467225568184225170123819155566588069441600974252208582017933024837802813311149662126611710665786506182165382351849242811809945971493229972956535248783467582000700126172336599934831660508645703990037205085756981495780514598660258162574423253903931848703575440838281317348175708898393057618949263377297765642762969611346592609423382511962081913929798327015326329177464229291430503176158937490640362058242517450976186088872810591332555321957709600629840218247681762361315814235096186839341620002478691351487530060900945010369496432564945370253351348479688316489001381968194661144767788336821243586836454827217552333712802749206724689489472564172618130442746187009742663834258000432854501343008377713026925708973761300087630547078818514333388490166493016734009635439682656965528319324332214798192238550180651886766444885491443380631055742655923898288518901606289575292203579716508219083409465802345453685091111743504479605810123030299416087815182782137789122447678699896795241551829414462631941258053062804420568509392505479140087286962958909805761957271775156777468508363584366740447677641257500097681745753094790197930464279663611233848461190731948648971773485414988651751852344613782700590980895892894552741867520192572771914650339486390724561039785761055924680423718282315010659412226139619192130064215463392777954666718275056654459124187434941243760272559753877975625567958178401577549310957346226913316936170086190526466866836922383248664716211940711886727232736688843965085674075331026518190241863562983646468430144465376936080594025827975804165927380579575447349277152034705152434549307540042930581046284441169138972332827226846952761030767779946655715067251358872948119611038801010349977975648384217030300611991715501847390573415603836965584367746282018901216355899178434390369187158939358132450724113582136068412246860662824308610429455770585996720856508958611318144643463268210254546388153598275481887911984103445875424989428566253684771779931309561528439751601087686139732862957743674609747962502702484247931947755859040917324907192955099840178610753119026241675847133199823179685329329423082732181120017644710996293882536499515573386853741705013453552906995234137444803836692979919307503664817923936518026361306985724745169458213326526837340915284731515949031994486654909378762743855069264110308701660879290281203445449648704953766296820218366566209999146991324030343278079258254632212800788722144583927455121334167023011099536618630237813914317320247788013748203027019103600943338965749701798699720519576958110187649104429543001645140714014611028491646315048902417829228736944742799091475902523978251293537827589573097314758959851102489069997850157196835875583373764300433216684017263116749551597364146731912174699807685819669704782456602547992921233007557478093433697002493692192862422718727571067699846171468795412844742480668940043939835292665467487618925338103764278759359299977238788421022939746226138907470277811047363240509197931429330701472643319312303166722855881028751390074115498715352035779058855762172255331665368690850743588816056791446274648294907581827698043962235775530072701262043182260883851988724327380576857447918239148786050961803217508579501031239291386727434186522213948415812524439293083083522901070174666043687997102443908772058674887487214232305439550469009693737994966193994576244517396699452439336796260296033528239222302629158909650217594283711708550308334583385214039033972937704449306230622424794247647120097733553718648099712451622580001475235438992171477353460237122417228467836569928554701897961344258331083610950755413738062999205468488853076929828235922628191124797073048089119386528146717697196200458318293133458620084736465138644513436070030270638409720985089858078663280912831588522906588089620363477514594201739479493087731634303608831025000153852044103127294075016873907104296836357363020190042936644439436570139668122289426594059735917639277582878740129118340427188736090948285000768697247493422666016038300788800764650962146705754143832523460328967167836472609413755794895692009147194679624004295551656347400119046058187237279871149191046382525753972462204888712245787089861084155095702457317790276442146469461099571401509134086141746836716753381086467781982702648821145290951333750871443912673838844302440726546730986657540334364388435614910341539208233937218988354755264976324597812495924094331701996479488311895742038561302581452529959331662242169360028359157235229177849851650316912927611021909362207007917263151888691537206495602975286923735178953521632758831063506487987578752596271376894392728523932658369921056271890736968729885739295427949100578054861874166111735450730585582597447714873722640439985147243884000880962259331785713938764481999578906449458658757439201426427042474109654554142299481129183318206611905012842073956673450529952473653756042413164658718427542728270039662493820746983120234265377260960560158509473642362857869289839974305603312041200656462343720426517113617157460970552973328162944448262938664936105650663552636252276215684842353949001150216893862891976351498661274562683228254738816045479146599352901757698326518151991853436693425772993781704191255196187701140411630787624230293392754636245710748437126534312381183273143767095184839407392324243788531880325893272318739031241411605211358505925935270159186257426347588707319974538543499015735026964153485141010296574890644599314843678662298154250904092148280777911665006550650798096035754785326027425840351269061667172369290876995980590673350014587982233042581283178690568528380389882994028110796955841492222204051117399854317564581265034671905425327172106616128429791832427261287226451513200081479781672674196036900214200594317120508229597357371355384444966421094919895682043930567389429459861073306668707299810476692509129982759674229442553359453061492358046526853638288465419996251909892947308196097390852348319785436268250199105089718646020774024603407526013349373333737398390239786516128011891529884118349154008692797017647866124426167871106396214430234032725398320771864615634602429532090528932140430359472869743587079615631961855576610385135091040535926559132384422978191979904519375397822344991070075313423331724028662951686625874435424685524894809723037539251668402188340500495594239714413712108135002299365047400427796023044086015559564787955293139684273691774534474580570333215365655284855409790523870760362826436437462437587558971584290052960441775808489165245044158495592306796799309254314371112540849137510012990001192472999946686725769165949568794573877757035285224877545632854216232460066949880052916569345642410269931457968884397254932282925768362195731038383608209159988487284061350814477068750844824407051677072187037339889866635111872337570173954062567702535811633159279783112960956523619831359296658476994094949492560495345307177612159567062023990963301009701245890499779566587016857528431623715748993447625778983821533321084693835801623061965085364421353403007057792906445295716374112689355495123123047909646738092339907698092710925054715359422424240609201011551942156039337630794154371173309939697378762388390856490159048755964907628855389033103655815701494498184755994735283902443425417499076781803950685012273568366627571517177691207867830934490216132690255073336595770423171424052811180569517380547575985898161060912813836967606364220492121102781396137190670629237881549162628029825821644078587002308967944593738861807425884816112977705729448370341332967867589205226280818558944645376872763567775738087560332711485831565867227679426680782850060575369951229594434837484768618545967179833798136489007380606300637196165109359645317035555935543523921706672521889178147458771958418825869272540385126962274168621280627614092013499528143891970754652220810767608190175630027570051708146692275610641040057148398067159458621630610094115500009851760777730635913426816827606950987568988059075454912421487232303359221779971620307592521738106294162910747601833372971182139302832521659379946156675701053364244836026943021800500099674100459590072752522780025783846215670002231786228251830074062645734631618531950450973502961150762461395766304936722471598786700892438853431824719096268391695625500533329267136187492338370315762879820052043728310729876031059054386607314770400892711149745515888719586185685794438283679179376781824239102694223969474818006823420082364988870876410327635337705790868042952567986797170783399919077340884510351620865796705949783058651501555002229400847614740818730263423659033122261829579811085600838099033942200823834931787276929981073482425165722715108134167462053148697486220096113015454516734843982574947924793045395548644817562598332086799898135083982567395854927846955269333740198182974446153286586082638404795445318021767740536498671420270089695216028730547854936170989990674691879041410731695868678856504113926622834467715128425708075875964729734907642226095038077533183439918510646123958279885819001075920895560691358346765531940492614388752900103651126353290942436466492770315656244787246786006336541924019929455181302564355360250956511934599360574859462164012265720828165352931966346996328770178766116728064203899807404016733875286479386390231174268551074890641842479007577318890353282724651512696181660708810002175307198124763771262305670673192540811449458938409802120372935696041130655489821875713907711951376591182779145376625517659004285210524087443441083090068420494336207956548872441997325168339506145491621912743462586820182059003346342937107549665287433338437459698282459002973901014179702218050619056321346914648429721954554674037742947026638782879920764018552001485208124873330695343251481177725506615424498536723624864133335322004763190487732570896504913262042739639576858137211299735626880784679628455514566517962101076149887912235941794714159333203907323993680633336914982986901301602923271198631434172906872586207072634603362939176739587509192795063635684098131620239308797363165196473555327101960067172461563283335952414406552066087057494334443818141010454760457161153851708994177195786286004414304802487227501624482310909417381704237838184531462366540606253861101061684360457639015425193756184682148924642896311357505732584226111129914594513077751583399332535229767135629212181369271527490114035133195512446317764899342913089081884205164332422036755001507801493254109797620700553597322039968431409021033803162320708215183091621368861597521067247747295430442965523453340500767026741539722600885833102605856809553973131542778577339342232111940529619397694326761650221153222132359708953719136272156824323098986968803411493423481434752499891216946892939534998146535352331501070754978712359806701270371778850812349764758980055719636600586136392064461183010878876520857218775468609454604445876986320567280845658751467744370583934640888131324675232909715441699471992608942643825626903513604011959675618046056612938185408411102572833261858572770005167314181573405975617113032377596170386551526202900247169330187952200455200436938786934541816269451051083772455104521449708263608330779035294761896445829656758992243498550241425143123831510904144117964989569862453824924695740631159668279863765764542238032435532533955713645346780853773408360367400029081958949944750175628254169362469324379029606272647221476728108096134016228718737978609481269603084121993478088220417477492842488479114156057531942374631421125564899580376197531054816734715073729946590036655435921213279415157653767146137008163461286832641061146363275361768359631739986616016835430979128067502421825120201359275269230369022987668522886472892308064384038920218046804070964546555343824125696194833151636645002807879968282679215197315999200928197440144693111996337673064693472162887686393182013822046245691132551850222946819708240042698159370917535115165170355984350504233909654498730989792826191671064533625051346503352804355980111828754172320991986290563545330222769164782595714334740163281342771605829917386324479895178503146858417645386646690123443344044201385577725255264098216661939332439788859241295894331221914203019613633397162887963434134986291036084429350920021504309789752143088674893111881068825121296064031083373959879010148489385726090505928350133734098835385309679798820775206079608823930247051318697682561016592035635432653305207052627228628342526521170707197770667822072141245619718665249234039009352230040481494508674405165021577452712751427791016754877521098400749444074275916933547360876396901465868998066391459827311193133022213723644059252137450866130998677159441543946091778042076395927788299537688653015680068491864721843416391399694430713085256189570527800319464870982977939605211130010789493001081626446384991739396179074842832819982067771305005214781734163759523454096321734687019625475684088331721334399799185721306828076806682109481752854344635745599458907520048877196716245115211584609673812013658400315988298719496178424749111388831074326076831262338005762929981308364315556016236449507816908685728440723921372813879457244270026374524551349960911981225108344465246975446259008989577001829944272944774904787616508793974790921563577889328360797562271393651520477484414800731261178202902401117823054608950722773921834194237687229208693480391466155296532266459052300852676726685149097995796743002872805034608924730660067102967619851849567840356925307598988006742969329680064168124084267303174950680684252122570657311148384652617232371032011392091037195812096959186290740921061971540182034744425740549717910826836399442775923239823634217471234963410052898447845150165532943616250630967744780772797457750686769643098632781974650925039871331391501215953314493929835964896848962339561712852001553609983968776527323993708244446226757649652672354350943755811968909255676193635112106119323048556317124702813113137131992712617504742263951890506331276564561600532130087384048182354275576826860576629800271278008340285162240119611546919581313974738213904056165509700327490006855954957743473921322747198777685209600895339035899568381536260968603421852772361814740823474755157072959087396302913618223044445888477177431903852474810652839468352350003660183514196154991528783151791053990300228634062343472351408953125771385258173403658739899837758288496775513347752784643436465630635429695236642757028823797982563636680737606244584293722083922491712752700233405544308836659955403017797052539594874086632930865577396173589414027611206898237921427062104206225498143603645623640078732421555333922546378165374913557026151291069063965826542910998354847744568320505089159014503618935229573188484809399661495461761586898374116199716372948515817888657049112641675727208274442009733780096935966987954752700833172257305938580671919121411205776704890836218750333477201716741906826921867297765960597545444805991778165594745909940057487942461880266045582317546355149118899919666651161003662421882605145164232506994157629598415863248244014583751582889712890294773352825273310528346896344597333308660797489900662003208782520046585820261900517668038217027836736938707244853962276395266167935642774707224421094072048237682614181430395516964971035576550278635252930086779331368588656662478921289324833949676146247891569917665556078710904472744356625772615074123405284396286562706317813920100072336949235772212711006029115378276445530443478880088199040152331086525261502404707154778404812842751522266491188227449173655824949179758113440331573469829437395828955991965712158444811793152024393758343355208129931399853203132761342008748861631245188283557379485854678223974861093055404769705021766333392812285282628625551760276306464847239817358829461354078280814038899685961293785784466137541619870297438038184763602872157613973309805021737566371012852658753385028488349377237101119617737157028541626691440470496229420332338608411199647408776534622316976752862975960150381973508513366950076781742142199248396708407886284670523537887057684722249233682047746551313051468928069229171660556144884258753558769783435190583038402841795404619348416241258022829963162801408445755461706458487608153527422744607435470709105029175227855764458844955435664609039120631320972635615814050957568986169413311186007434508347926745035129302620049002819635458448719232171888709533504265613269988728427426421063098578959919219933495335197924880842067358734270498196249343809895889470622669961533510639731928774967482451701874688181302868595306375074023682667821789572446292548689755070949566324666675667758766226721349389903066275981986130298571472921307829450161518273349993077491085609478772573247305266696784293897009053484258744419396699178681756335941710141050911429693402393191122882947408466141178976212893164429381966455767475097913604796299931208512056645539263152941586764408565803285797100337621205470962838939032428175953560279830253864005592944234481882682592876846586938402527999035923538970453201240908408743526962833984342631852644574959014346586057083538746319243742936855559483684549518186397792367035681428632158740193643163026565791584157772975393346471271204274034079345904457221121229761771602598077304456651150681641800933414107663247958801691993161054883605569092108619158433681282162683257991245606147404192522730966789315328960937075418836385108813197431403641491867149593643197853432032699947033269243954964064291510677039533083121313349129663599806562639830869695693584308333078813982776524190426511798792751148080073431265277387583183358607486576462370759765398549602091477042470084117050136814711085904066077356038781417260037555280577586650459818418621141672542660618148302645057735208246664877404202182662744340346722386682133559454839854589673277099398957192986361046354400771519303577865367529795940123514264915824941251464515552182675847711258004339322127874272765321900181203887681679819691384092357957695801133667732201967992117591986713913137737814150083270348756520124052077851524492837673460493635540294948562040839357520442263057661539467922020204629302034210282229968625004261420908669570126510396803120765777875865877332758442971403422591561037341685746979260423239453870317755423656578878912906822410123871097967768671789810996318653029644602270123917364487032201031140167027920716509758593605391637196759636866279472362916313884147022598685595864692887917730609756252558744415796572363482145533309610317886990972672570579182447789240349439860280236830215480600801830051047361281193987911875022287313693282398898808418035193171545677141292627492944046169973338139847561644994987754504154877860724352307366255175454958084779736088174797491221604713567492477894281568458341800190348472590125791439343171020902463876383039311339867586880817468286414651098742445461025259408160104923219840222205635064305264746991937692379549727224779038573918139721400214325317642236278084653321241496465873434478521349246011701498126290135156465841462322278001738994233615703829510767496703216899271230971929299935296520834168675380829713785945276973391189946382540226782782690366033517905470224108528308225283235899383993829526658051657690641536237856454029249994241541881698185807646005282703927878786145913512507339480058895235588045422973360680788323053240871099421920436503300983655591407745938012164157539505200662559965101252884145885391762287561010627846275786519636341479836789953221819552605556450109113936188286371879852263639944258620280731585604573434469131973872297225765283138484919869569434860959621366735018350020419970459880709377873330450561837540753480359206549244371950218391002622404458428041477350481924464701738612388859873067901003731987882161513657626351016488892202960875027569210652733707278931372404377760100963804829402405942410860547777187744593771446657856021572832069635965407010279929964029512257578011953140988796184378548003792133214115959810893490164121008570623900303751547186821135386717020470070639991281151351217428020073634823200746311018240047083237480834496104568393793712720616585420296560105108987307557053032430060201641977864551528153359812065333773204043054452003704059459466797481396951552992518784163911731267437305541034079069346254767528767627876095018387754372628222600553532163369630057268702366622741488128376770977776394482667088249022392535483263333454321750006626280051208151888578718542419075359400671620352754347230233736959661648358649723977704768581089747492155867671842265536798032574567404762511554754532240981884997800947100275085845038351656626597611863899041860708541921741407509691699262224856581474149342038209218243412056447452462652959819711460857235890783672898734258929206298967618324822136263316877627222219376060591415400542959032964672319945316892895128877286845944381011051810824032336480515809989587266794138404485004909390649009229722318254889004931443103680704547368528925859384766621991226644706150565478114265113286503336713517635191945251462101063203698354029153067729067717739674789698259304480623990539729936667062173562712404975722182028307389136681595809598097180439344371205720238704885350462167985873873253262306754496257879454383804897139452892829822584067368212604506262950361441358542231215163001985159504043911515179657446584510127511327284798521536636758610838070476848517452306926929413027199863710318420348708023982874273002944073349412066959429312643145727379641674075088656628427799826031344155317764169424084242491577135121571227123871555299598488656486202383166702721576596518761085379953745913604137508421253270372256322236769846502730959084136551442109699130228828825132407639232474496778006747291311495484145897819587615284106625537203274104477140535917941582050715881991604454360634337099465792012751951501039620041262242048522969866926381170060984055238144617650853600975168556607379594769692502047977931113115265957001180231098317995500425217888946568519779462782711890094489888035884007675254649473013867899447706757147847526849783211298036948419965191276646523145141054029460480687879404931640657659691108446713455401816222526711527609732747064619953475515255220867834476471733036165913509697644780494960769013382273445782891358531204100990519913213707800119799362344182594955794100539847939468773043833464111056137366664685759285681500857265932814705817909783985909593140547770948868030563179078614553844826870091643624739562901584680700001747343641802015654653768852197144445381195557193473391155419384919099388758213702124752592981895539080932660383735332029379572409081019901885813802706693088011297844406307309887109686226361553248004600762931772166374313479132356428919933195599722075735941073474179438473118045002792767459575502457644152772352218690788630390747120377478381722716173792515876793495862161092379298783369749907585400849736168326697076995259752779159815490349483599368681226682121290208196919307906790889908111168647686950000807857686240893376647138295565896839457837248101526511173396127904002958208896818974369996051021769914402471639492525863190147497267924583139399031130117232231876485917498146973058057003506766981580156895199654852877287105120386882056069888477395414389330541614160561728926094974555869638504740994475138349273613448549666256257921048999623445763059441107708298301252547989155563679237397375057086480083886012966481258720830256022266794311081865003338166924143087092467920353841671326560563321546107685376826892377854406717209928596632657337141933081707314119216865300362785949649425095712565969160238258066410087033754430887850403899149120188212023327128303376723555439032600573848998504415674441899841087915901728458988016996311077430928048863456217741190774617468630157818622460537141040932230168321191171981634245656365119525852797668513340292097816829094796001593189210674626303985857180517158208857217522060553327289714035455263708328651942859764068357264494703680540767035516551865704075665828621503019554272595585995198153192558320384888805909988060741676623672917414866354106868409415318262805689393358147144220083759411490093060245236808129740218705569747258929608787501106376609269257870432353914533372619103155282365168910799951059909661782186401768495732650419167850044014430010599440708600917005259916821851844318643980681589820502706086320946300965989867429229883660947541896748479321862336498154524818741198045092254852060386348243602587862334584664017354509354213351618984719595496047558975239667455432769049374373105681061887217496259825986035241941099756461667967138696397071636092483547451654119371936498637384316600541569719180548110874231648524498221736163638267671230226014858443955411550466902870247284098349777625651526808512552655383200085693551532725318439895998222425093281079462391100635679643732508211702095238170720571529147312174774939439130785982618936602150015519209456525115371915364990908712845076903322335516807469536640368919507434366202500488331330629903697421602091292265517864919534800462176827906383666294491993072685132236097174810841216325365897144569894006334577045678315834584715248581572118510674717670931436595789912871882009506607749638844177523117019822125367776499559209530352616238606143245127904703153315224007495901318865445007716734137970558004499010778624535571901065980237425811687492813597070385433577068297004005359103727290654770074912941191596770324183648393757258492121245469343273693611001744186493550638949739400124029965272787943246406050637817356199790845898643436542741164159081339952785718487898304788730289825461520442064088094137979769330130326520485471107328842587555321300916169242594505877161568830668518705735539559806087888903125638359207750238596392394807958763760803498510607389589918415436988872096004606706553206004322894807967594492758713316311963411781607942356904582060785659507243812051031205183629229341706699309568162419377853039498669923013291816723303542024735015262411131772328013797019639726168405122429493739815961364297292462027869110228055658614873868612902580792884513094435061324979110137601571553264578018433174149576428868674191691663993586485086446907761249898937797748884244154588242859988156440084894067202701691661881467640851753679789021629025906587601890532967802532036625966021259199907682589869104589042214948771202677674759830910401952449405064440966820930999680986960923686020332138646364082125775418034838411379048559363449877967943618259182587806982434221940003734615377116903861317498365022083333497922170614798305844688915489953069697497957703281236770712509643073881130549526425538886470607273379234748033018585044271053617203637408371075708536987630938592372523137679112826199358823866661450638316387538450433648669022245648549918551829915163698940790795892712084747262638167119140338471959972737917146751310699544004433646076062856527532514226612501700184604527034875617189632759454729830163697609319581022718935022919210988903502289400306395746064039235765192372957723042466544967852083562158559710512355779363455684436377006404480639244329038954548812072407637231206470909874437255950031465711676628924649780918905499227199756299484068751530770308949732057490212741364159469858468031120930288850165836303025420200521908134963839679095420374367790025991867301354314367210995089536377691791587848669089290774231529454069177992172079580359742604098870832286758978872288528001829109874681689505009361547610265981590002847075054500089161493301697238499700549678141682720009455221000981649852847456668279482649488211475375705142974218728247213009011051225439675121121385856335457610382424130423012402615996205841014867514047490594699854187957166509317995978052719188116348741853488844005846958819854052075747366236981467463363555558085128228849128135959164942270033191702787639864310366574455010194808011049045242660862943035405145230202490058791979684530454764165606306871599878903918800753263158391613108782088417529246834828355431809173554530089009962760492181338530395843038398898298501427917249069518306583063121513526608825000808058841738547631122101628374901833100568405052347336148708802322787322123195815622436383819649260539148989266932579753364636970651217876582645191604889586833704656022825626486166832453195155858530949046736527306667493752965415867210358846483895581577358001380382888985996758606658582183501755381964958856859633684130472962219284886320794029733371326951949618208177039863794078786094748289468292439401274324553529239894140176574972816627026377578378804930206526931856132591051583531897698139433384194730023000304359624025055178260901255046722236871469236220420020615715069624008691934084885237452656902683171490113505613956972968393591217518000224889525304740792460826425554875580273517390405621450248090516081985091863871320175291065775566750120970446432317259855189271222584959951320216002454276005710611506617115831345286239640251890954386069956263816284509480346663725571699055672150546107659499549624482005281486998061277161084772793904413945959387510021045582968048277721781932136978356565683421214689643287486455442058111770896297469169774638859349613827986687995378486125369060318168215284420292104424234683932633026133767676643561153534537989320001081341805389747422398840345509533875050321976873353641199561077499750927159191449234306229534045726337530388967806463219675815125277048820516625016368380372222615848610604580535518420758314265159675857960344878670566241175697930808544498351999924034907209750553137856204886203548278037897646782422367513326003862780884581337740498219428150916115239571528760106715498334925008767045008965954796267749819630149304591232955517245186352393327914977673902352409232287544572798640047392411476420880447912564670484039406004039117622965807636767561156449590729331570659267526660999365555600914606784254914290715113282995619218776507994657839364620855604467478770651795870841732232181948196596919758337098865460955901103299148886196205849458168761689016149814699834951053094400365794898126400251208161549054861934269775768288879669820874045691095540417795073660953759756122768482298711504247986059871299818283049084011840675082391549390868328862891780873954838551454706619851628660846609926460542586368712536400516216410925157591219745922208739718868746908440550688084867008413925971817959523002762373773062282731576484664055465308292601138673043101828220860470938233697603296145022860501373753681298155671252333775843153935385699938893123199740986006409899394244883439820385376188558093930860079014829597802930106429797612844266240931074436692817498304597071849064617422754176355802955160839796024792972334463682995858991797783192900425469173917632638147104088406929032383926094463342538078730788496960265360354422452341651007027171511697214638955400728633623581086796206360031087138161710033162415528038378621683971197826689316703927771863407404876119206264653193518163545834939352246687890585947795292225504695276042767257894692164958118572975130016936991626988630516852131168775106361067089363418440586670774030437037234014254731674585226292870090493602707769041853761293932498826265414611517096434029527570283475521554866239804722732204446318449940961087100218941828415846945196399977135954688213184679891368402722851450991339658461545551823334152554569682833035868265729942586464099231525895592247725005193223782662678887698037065768557202893020709162639900745947654001021196174475353364165485086974148979741200367233046292169511885218451270411094164037538830973857807078395817469986719781620945526633743336752683161745932805336619080347008928622030532514553743874847776100159925347401075526782162713465249743040296671905767822312263637308773818613380193390258088080148579924983013569697399845630981176961398253438153159952922523305554511532962192232589879723767365930311166881006161546478268934967490614078500558667281152687601107073729728858066520827351133941837802949680249654558027037541281433427551128247073303245031064231669253382669027410437403688320381868481677035639242473348869678192720304694419620706519941154825569090324331678188118915007287867613284764284824244488370555548855068786118600051575472971230765381836279086545646986702957501887594291059577911468517066378826175143801924414812281115677984625858041980222362668313448679907762671144649145283167339903342328322641155532371959117469099144790268317872465963825833282223577097164586922450369995130378059062365728897177989918991627651078163452572079666430807454513343756321171971043079065687363609810435017263795173952323215617669730929897628544985167063406032971453186527962120397254162130269796462111925815891702004098403280476536213864748132001459202445992283706108292483718970945139305576020105848040796832735574833941200277487338935378852759396341146156176195045450668276928898663482339935833008197987025326444889344158126855208630834126397986100134411628863825537554013562400309129309309583438833805657703080663108086480435659063426688942402615494826019948597984820391902167118644932996467583885938677990685865597449593194346586048831657298399520355684762204144380177894142273456451003629914917566178057508757411771145666269107050560110360688078408980646835436999265633699560494818487232562209176521645066908197014067779695668710021354797042414237390353637652166562048575791520066877711101986051814842474471355069208222797560373576546067425973812034626076755342151080390392864574668522246891767947422284201651975556771646791021575110360990314197294752411789980282589794929650499101824716758041108744047265002599653207501545325509731218817916637819054360017331159435148827151628751521224783835211873855716633629463439446224788844083212324537667311329550274946744657310001877910342962251267593069522472173841134729418841638240779007412706746895297159236843494238745226108013514114560400308206842981839438978065903744604323909182934540523218185787896380908098409839024684405614488787218168571326798033165834387222319176904015727827216994639730407407671574918674385623696585458352378394825362338010730265749778023258281367503285591548578270288416704374319770444551204639546807801422567507584259519108688490340962658222724627521446718357321554991508089014666808988767179189322351517344339325198809734896665827643311442742794052001558346284526568247636824756475720877105435813738284596656363410254597877622694743043799790730779944121022182974931975293265861718227906026363192864334334397623684445259879388314448196697190674595768163090095080750598022849296370666904823440814999897586103887589545446384620545982837225013119200799725863011899457187799539260887958604853516807615105776680929876761929298848756532418155542697682158696359873622151643621567526281389524882648499985598023112452900522021319500856635739422699508082003236775417357744578910846190353506485378961058616457469124875654909016692975476555982402042050664880141740395847022588099578848872090090573732894308975371773490767669991199555664038406445807821089423547533851501064543688604182929912033280649869248690860306807670350350303720956973269909183035543399661065720465934727897529950512146770311787669225604182301248442162257940556092582108291804702010536369815670590250177374790479183841647535515133277962839172605995656984815573657766249904928995926223095621441670329680651573885653537937256451245566541808170685169571080657616899681537380572429803842306123950531957309487358598606429760751613364924426607390664074572652078179595324708276976692760841185003729198524245805849729702252403915745848032131014191596506208952112710578055202715304042787587160922286405198087017762839787200915168411723806115007101746277507852275961425587424988332409438179290773104571519797391326219785577374203549358111793767170730974583791737661904969622590521670796676745849468598436683557901752738152973402304695981899702748959126190343368534723643517329296241404234621788553732080837056900150520292603815040259241106682282928567259522834179980470568375837845894272417455773972321159052282207282790208988157531196126161276284325191265047028244029884177038033631982626597267187870866811728948005112423619913929901410128372194302138126263603877332832873541734456319515682052413635981973007509278351058567698830778946459144322569124712763273555848818358297326374589215781494352175737781512189735547264516216633166772550371517393693303856433628887345846801272156581910639583748544996131191940203375601863534883065072535859884400574110032111677044531563698042632880828145193174227177199818578587957436584662810273026673011481446680937534877055908524678799983323987019450815482531550283331345603339022900022279948961328938480379922148832767937211105743474599771319320031935037535309493470070022031207520301828111482547206136350138053511450397123471111398427094103384586378252256267137404895696477107891770219760886543248781499556952770086741078830861109760050393689581340475907946701892527245510816098682680649439148566938736855409238939914262380122369991709603429848829261027915981025507240719930911809068251859606405584892837018948697396193435469152953363469981637462372767519241228486731014111239046063472285076297192364057315043853201751267120323455856356380473335362912044517565231804943750107307004067181317049179809628558289063970766808694290522643679697240732807284766361611464247187075719669877284116457047558865561461396157354898337637574441879759224351770992107036491937782179277491619900614227912817186935153010230235563378604191896237720787111547952251412178600447845226998246367740859638122185644270383878275298078921314458807164339187533511179243787224674467081155448927975030384835790005039179586749890537547103599354458209816308543230571257973063168350924499774942927926383780491398071733957019587185961421216190110127893179979863002110743436397507148247456036736129253314808965740573579626573858395938278879849887450028682965641577111390245108670461092045394309572588129466018825248350971083952083488242138769470685736279498953469130958308003951634787357280450228404498463415757381641750530877086363351450051743576074620664477420192221596535086527435359768080224889554734487525243118865662452438561274167631751281561286188570251206414169168126564640863081354276374764472609454241785918549712135847616635411168544934434256647288267675387314409723127916530121477285584568741419863521490877204736891849229585276620180194903774253334256537396288260545730329806186826335549088925877943694141742217972485868366420184060507748518344737732436866280701374438282835560470476260773117692454314672883797116543571552475359477056862509796138991945555456359562405807540390518423432687911401863517239790121626238981096698697819916678909612018097873539705777556468917177940568194216435242718039832993886981386281404367053089991347246885262385630337423038138653734589492525210963813735061308479114801890240761250875064411783249270915872145097282252674158978129953210949595541808923238198348122848710558707947931545109303577312575588721221197296170993205261052301617539347914940894994863267371998943896444656238915736424948927459399524698587887217139666335867480368585912258895460792007237957882518454755312067197898678948435956049129018692702361384996656002770303665111979146336731035402189554174674058284634453126664364581392534060820362571922640965652059799244345295517901582755270598314039924261160849550343654742331754939978016693759182472833402013039663426686110992906243360315121584309658966084289005800560349799112775899134389530449492663917700846332851266636748745026072135233991316340516188318214842295464626241131524381773249722571080596025662601683393854340386861858349411462476496827456975272496609001833988859903148221360615135349683041912652304349306452500962142812969554226447811447341787459471465790216771590529067213895749292792902762827093643450709261231580315073820318771877664389334483687119998077915029846641542705609330698608658989268032475388693945205334180724016896768794393996782094176073164976730568532441409165363999750410067155032732008160582836777521457819619453811730015029652835215201813347313666386503425852611531698416116146310503904380058633122994193568812524261419500842905456849633279305198880192018526038016311806940345744073161404251062474956941634766966656187752452977741004830967676748037812234730173760278255527067202266348042375539684463858749718758508448243192140543131557228413558161409405435370638286828227138211216833885044722218580675160364682762239493637536931929656955949866381620390922083384283056197395566258060588869990424214560832217691386748679307353164731790483418380985072865117789228341022625056228884841500118189677603990100478180609048055583536622927218005874542707807536607839638446057464540150364079575183939148923919955577664251708420288308867550596693645204733478461900375803680871291126439779656455423809916581924849923955508394111493398141934657257810485070326845545019126453335583013435333879835201223269007359002585614628727264622875774033991123200422741019306738266810821263281309215881909788561538300397045564135043581077410200606167235806043532244056335168994961709411433126535219113732585629672980207729583673022994713694381588219457416607997811925656608305509842914277844729254334403952455968393403776282153770033980924283342645306267592939199218490166599598247611472463438556131468202092870100248924200973154948937563127802527249980608336338965493722870640652655939032285420467600337376775805268904756719964454816013971527317452083958776595307796510782009399659812100613827672513042091779293224274443397529452186181777365769848954730878470048279540173585943949224741437568643291328890681997939701703763700939320927630196738324076133117088602307044156450006509376691865724923846685126423165910182039440441532359286206377849730246552192506167716992104547942560104973956456673953268353255381664799774539352665351173638054817411065040260135923779626983028474688050234876177090549886014547914800803791490923587084485940047665454351756924752982022723256312459692890632638244163827488752477041396049135678501163431223385573473942735590726834285392253436682434606959716856425698599924289312676397881855496961832706407075286222713129218211180908296700979731300205750017533327139956460123043696761555021711991484983018640046711523828393392984659265776005065710185784097674729572256703628492140217813187845585378034275901642995721778453022104531547936704433925938603399645208035248271073966449634210031845086831483577311895017969095153351219066677292102425326092068605110322229241827983413960025791598303101126088555592427518739518889733773443200085289442032340872158634590602127194792051189917868962482301296340137373507709660215585890509001416719121288711994819365743822087962117837949994005747441559253307793246113838873244307925176837125975964528801037628411476698725976691528561915670332437956743568655803151804996196956979480923363792152753716533154634848789184724006058215351702313603496596878345644986238073795315255371793925270587707721573598476414633562341495728096390955281424988529050050224664650108899596498012822279140890342327897614343927240319745499534982354146913106684425570325631609669874717622302445608377474401560504865603590006034887445101121811212828830657097625571515923525731439470803854793700917613751442208826444685812869598923855647463975886230099674453637392997542636562676590715178691180034676095595283667815346683400509822157248876717117272039152258198542554838567140485531678765501207061605276848511857425156705178121295434788053474520671081071349327252324843988671220140574117735261824273871343002917050212231533703303100408097750703024679230466858856501580271928784892478007727982519477222355476859701270986117350801257827320190583426702609565064153213856062402413004992080716279181795453974954358491413777603240427359939851207269613695763202711144903668140029237053151255411329569434489983347470721490715167710407361492133082138325148751580369451264205565625554076460386151459341020798736891390967286474081280275576097337513689049683483067053961201447864802446886231647651978017998506736431516102279951663440224561231617303925771605477116009731470247094804018248961506970226077465644519861821628373425190039316412838884645868624834175568533927243069756849006148575186668928354499165744799702116267832148516736044540418713393707660260836294329775999429296036964944647308854829915328147889152706394362702588697048526838540379488494983136442152964487080927255292897172023051483210967411043602963928379560332294749987063356680875087524050370851740897094152713783423737759094815213321217697754468714128756095275398839596329717251465702113571163946487159226746060503079057305326689455213976569839009750570767239353113446554487306424188432514684879645474213554840156827311517437057492573866645419829909649337793499847325409418032967751985716418823218479879865077824633662508035477814788773303744735970418223240702753221300514955981353658784102176424037481898567903082419934485822768306568372428481056618822301991285637748772949439990561745539297500735485602690494690062053132369647620300099553292742313562578763958929730481739725951168494534880173261782265148156156716723306466819933464847331312899678563400683203150803855092714601597267230971228164625745597688621608029290338980081787330435223838978981407460142462791450515124491882207168217234798746712828833560129010711786302894900988896290987639084883937791746029599647167786156072015171713396375859951014960817199267397889751302210153354914242428182630260448556106607786209987509473097311294686143560932617134851961056267972861672813967045204260269338946355309921921621398892449205883717846347625289782284519873465558373937419849664178053093704679870914955950050371557022650051492123550167975804094281967590555394569594029044795394395767634833344092532845200652197132035885906654324930110659305388902216828953569779842960781627126719876924366608641933622386578911685601027990265846492057196092032112030514679065145716661492985320569677450547830490807675516436914250990955516175438380172730291433189217922870166056202473134576099059794518955009846884674885854697471096724684474153118572450805941857844780845222619992236677544645512376544510176870723420552890237992503696488353523563774195010567783934481818049913066799032304363483992051652790942621020294836797423825866148001267521069235793054379217672101061679889429974938312413240980164996644229104661959893403404619871273471627669425585292581775514373803220773410424866820553498191446868046118833821440604616066191177317983261110624514020545186817824387917520978448415506231655304941659470594715709587468114908200134388647280666922811923802271630440664200744458495188019164960351657125339047095137560671674699267773146449709823943734605596926541741129470674899379996889598074863686377037317423032792991791503939382437871589213475739154339005314213763499006876915230018531755053389983571864845355880177189864022903206777361428784987421429828572544321589560478069259195294761191366762258640112309772645162795094445118465391951275744620367212083617111696079304629862720023756657425069842141932201593673469798807422090140596598133184705103379318169672684118607588537593906195691872064824797212923435272457451102577024080945740801030717876945774283692719476657626568576184714329322463232570690688193796154615438290640328319133147180251435142861681524241928744728705586136818057550659681869731382922851299239642219432152561631183385509285535013709507963565278499263753096542508131706490931735482204116413719235018839368954834458790473845831298983382230174542270460299667412331188878358339011234273307083238364645630935677783945254802917444385089645444161625291241092712694951216169161603577181667198320417321357646837448767551621080370096403333364808389724449761154096469620600190874046048361374996288247540214109342198396878265673675410380385315541059828595364203307478530259871592181348719700904086730850976724442374156261385596813327792136917228012673580536462844018166670726083043886290085872835494032361754623345723395008786637170277437053931959573591765993462566974479704536468218327364760124298406955111640294647077559987403164624146845527796787741074258004997173023107700532764840268549829931287779918750147158809303097089864889341492354002494853044574041889066855656886883414515081677218761530478722333284037006076683703742833664751485200734611726499384153042339381262907104593482959801307470731065254845159467391698283916661920108307004500489631067920510579530858000304276214741723101923464881559414475279522518690803907533034349385595466197306447818091445042563924724242110436712332243206986303039759470321293799637975152117067479516485751137476167791881350312875122015383123210486498833934840614432463132539216167143100215530898098646589349652509363863313197295490770790281475091363957067885499608881640202694419331063106258546300901913155018200579479708945985573351068638152974202174697655817770139099433528070718219976085016596405224779536419931011358724743376957025823216776176047938544820386952244206134542617949233896302226813875662946933783179386300616949445630264230737648456146664387571146229650155029549311672366667155021161713830578608504121183691663028758154392239269377810092419437014653401596860019002641930299207272601694705525743759507866542693858767197852284830166561026874863028928391779338447307333290835209465261227011565277790430830206125266101069700392594144425735539121154047163835005307765778826811818831337135685662089032273114702715519073883230537625274799850320075618562259853579038846579448526248142633597646173043962962435508220143918388266519284000008406103206583525048357791250136054757607335192375824273788335700531743601807174013303747668359224682115945352247362822242605854403965750486368924633485049760942543290941806271041563163939445207120830480458000023359462544123616684742889948730812303192333232271613391544575050032111465656110797568982088546539162731235260362130902271536240888995441948535419745583322527840255257529867320261326689217035065664776567193776335082684607522724172471679050478347739833763808197393354378456517487335709681811152772576701193060186005528236788233586536036269236371496414800771568746578328312761752993191650731542456762399142686362929768286047809637477012924599758943605362451071951240933554654362527672716796924781230880592235808712730678835878340135221506071483706825768007014078014579715802328364601076009700360115584288444592933814549672941850178392735208552235591282254914642573728619437840347395475965109116938028901302604073818432092431206417605030314620055672397997934865023382144368455650720082030772799873200867904829395281533885797846971159520128012554959335526987842383726655465785680075872804793232797682197868695561206349757535949225611878617533209774646204242629561027367799139297884429047485992733316112184279739499294662542525629858003218408462942381144462778865404044774895230249964213982067941656134100936308704814334508171402782362303210859033681622405355045425480675548475410430891214552580699531067371161718599640873752840797214754481220495252866499666412785739150816664412310201503814410585785350769787873332475065636348593591389705329553062071466051517022880099521303374134408481315335261467091840883611960094800166485393077787135364528331324186734218912331999422158422334973866248787171660367079209888622767601861808993889667498517815363127335767130825211188846204138204725074469001569990660597196340935631516920221739790020105330097424809660021033026964501673744071838215286716354213531059412186303515910426714384132525855862449908535091905574436584698465511964814876913316274577207096312374213110120921963827596036867162412520537208143593172521759083450706765091167454868609037420026697853099063252065235701496834607613461674264891937392155518243766192629942511952736687168082093767205960268974108184140445195189806321972630703236998286167826303658049153258143281454841501062770993317469759358479794022941551259024058891046950584695277842500112168506036698545829330391580700664969128360490155311965503116166689024342730367062068696010166239458994820553746969095605773339089912157298807390921056086508927505056089396495063100855554947732427656765503190898996288424384183570210886757777858863463799840979023876341768429814254929581247377245653568655452472247773179106223091817240472249783249570387048059257705382701283814169941287358250861904183964765896978108855207049728593240582277767994914998922293315235368703683136369986207777177466066236628692664698653932666545619661301314962836297434164637422421263239614402549289726866608914498989374473621946866951389611125756638582681927292494721212416707640648602547660528074211456803672202701475821114182973907010504765325558145024388645978457815641481381247343909862838362523289372015400168403438976161044834760813909486672713339089228362656225114552344347211279594261601236732514860880513791400244528305134156815505215532835553324378912525322675853177496776479832749310232345333872122065482390958071080947087616893521997610869447015255526828682850063167452260602584882174174885743039534253691461326805169570402339113747339148728576357692909520547349142377446558374151169361166115692270254642566711880403038930514638554053966277760087966898929354070709583661419696123463544410839800121729952708321489374909937780719413153927162770083011369514824125064332788957396491984323162829326622529361706676287968576423732725247517737664272529143722435217884602041974624191045163800088493430065317804853413440659803677737806672966757775562388663081547926312794944483914822737071135629596268644629757525517095138692243346004779456106908430857346604709685184101219198055918780989853987262901459385434501161874329104565791352836263018738483888596911445774539973438603374646249266921100685001982242373054098885047219020574768969213609042357814918112563129858284815419399757793195039195652325913373663974292729072421718935485141676767420264532166253252944610758172491748391647515817067978160127569123477141743485529574706620389424940194381134076163278710017826134154066582826856698689882210699119204845778103780947115550830408110353815289668730082622686064363188513853587543057897129907368824182586961986379350633170760888478598113701718610666604994518564749913235191479481881155113431377877237841068447211884516131027817424959138525536098489939248385553461909463038938128608955700263047592915370236849580602052107820421718853376686515897736327360227832586045142771106529985998095389873416605782150484262389158594624561890198616441306623675549965661652806979297373069233120727906057276019535818138135968453993286557261623170977810791193167120398967959073189998234959352251598231675833319227975295773574891033124779434978063011008526719440975302460167309860617335817128657934724761791382173802681370837061041099527131880717776170596053856349683030008927028681041474706004723556324704369314431844552559263135519754147638867763448087897602602346612253962690557761364729294212780796425760000076157121317157010722143423130198749625047888993115193004517771914531406029990333453747983890081166355412560630679075354594618288086884520433433827407675954843038562766862813196613222651306380535153264807249115599488172562354813086368506421643825483026127377365549707931742941946368734418501985172936487910951996611179850887477100915224557522787755246859071541079680964945877410591745285742555973135433949803641523329402058235094056450617246267353761652678270951042203363226723993136624952748663215752715179400376910648797244928808270686661225421918478142630168326001242303951320838025181386632168831272547151318844860870675026404879473869439629027179087158293192913043086946241149104969236040351796136942571463996116446037264239915516778134389387644833549080168832854829512056586809244397865417589830549089087358182821119296264721093188462326342521305436386338296953109171113185164206993689596712162949061466324584594485096466555585199990889254157852019817138945224202124335966480602892776960204609991128648634858344512289851820012517598137405084260362299256376077513451761923166562582694520066623956738194283710425970413023257665033494538495652409570279834879174355621058670135507256758460655500330788540644026560991913862471432354519665938511998110172931892759039976383657320083809603229171900833232780026911683432416530011296548287775714507803896328576746148757234704298600778271672953660779339557404767999100345908401055302966497358657807404340843851845605096159626940174379482668229652321447397278649279760331890197007820626502699368932488528410357622802598451807396607078750265693053995353383837163545630294975144680254287929964356891089863084607220943297627809767723031176234186531132506257439150348443083757176624001533260436781018728828018322583799356311310888981384644388330054650794395525454765569383003243661005991880069077735415897497979384082599447828985523630165489434498971389496556734487305141750858360949159392972089298419139014173451516885311061521310945662780143754829340846792391151154734736505622191896709033624282756895867579274874331232339940900017141129877561157983948691285957142660304063055972849806471212634726657860883313962734039078140965234733143215376538614755975669933549194467808804022604190113567860607225707901132210213761140270724682982779027945533673377849278248398535150543006035334022159129241852829800570742076022196245000006108557802414750639783740664862363438350426059806326137884148698263520666198598190323661017711999527465208888373531564714718585436718987338312436010782178242538776600727570332900091043675203434316107304647716013596079041679308027055327642201756883255559536445307735913699795347618071623277593488224896159861232668673194515525575489445181607883539992479321137226031216484045645696501184098313329015159712593534046426749110854253861909708644045960599128217497221533821428562000229396298623875439131281185038442078899790115245020541157770799449270110969678826904061656645349610609834238883860989880420996744604421186347883439323458015660210215958605325161993434307105056509141016021562335280907047409082462774268047492870401127291380565057980898907718598141601061405975358804270169462648107875983222258020713912193232216475110259239853737258620664399017711289742115957742474459093221191248237864275647057398986476153523558091954213119750758047048233938600664954964345717116174849518328332393317068994917357335063541630964152088702148010566386212326627186255551849722131772340789702895728607235585052193491951625954999087317409536839234334995039453265898917127653552000672068377865441406018394329319944738684970456273489979352018776392423734370383556516956351427579477771380087075636457765766669417087985432624581063932643081696146292828402927938952240982500691668723470318253891166797423374048357558117614471134352348941348912364381282653686259443173453179232871936013850932812474688625392841710862295712982550628381021433108908094084581178707521112604538289693498788331546459186478198832418123920580777298454451755303402773932646856541954940277864312403223601913547537557118827326244860150535266762889770094563259529306739412153872774498276673616238475718741403216093056759751271692392326205670580682985040542571965483974746018977033902866455429256003067256541815207895703134246551476413063281574991001421882271927295642445278071685428646560801587837370661870798695315419154674887293073414404085898886738539813607876876951368728212987685967022051112375756663726470664749394744814455108924192285091435143671308130423329884199617375163717797288849755233443587590907355871656091854595651974706556387182020442434049147497798493044693631662928753433145563242982574964565622649122166648688700742237292752086806858509484092230904524008251239032877999125850050809024984422279151966621226595776619035843117155826695566959481943766266893446748666382961167822538021029986361420969142868799006176172715467575901559162883598075028195749163995082049117002702069404035803017597297277480445536843397436694989694416478230802887774313337776264754147277624892932334304644093525859101448250177104795483097660054273811973013914247009645841094495916082277156334723027603328737203132025121354678676840444531797818697374458367735191691022635953063908030945806487694928588434011425691788013457333699482130277708488461333438714577725609957745285454967883878157691739099942429002593858928956695829825873503116094007007826553418166973831369798947839119328815972867098258609391486616817164427252416096774414823813568116299119267083830162248082373788956997151768633459542917117937964436360375173304374880288678951966525242021769151434634182399074894051633043428185270495581804499975216673036117518117039060992405733357303711589759161155400811171535719108347451391647110818277458775623373408661828761035349826349945860207917854567279608959558125760350700236083193631292858676142422364325115612246512945292264205931239081548913028472772987495373500162620775213049102670915660926377070570269470685070700855275309059272382752564748710797437320470496705526154578784256289750500855935118506415603972682021562711140213428265940040163455850315665886353954436259066046095500541491187038176856960405433141798470838028248729394059679876304670501357105150478107254724412780941469617020561641185756801023350143274515082855136084183183293794971298300413963031723118328665501879160030050229057898620543823810827358833850780110358335693749402801966275924938698480406096844204615228725981102909446961413171811735334751455755886701380702149766281763182286519256786604117396704234639707617403657578656531552619119307423089452990991258793791754499792208698032111271541010625144894492519267292731907528548902201838549811016036916403458265126510004371406048035183549822679423237708843367841088878877784069255799999279033443532705517296417806977985672995060709491079011419097410913915004297479707002435408299408820704496102981835670654096662606613957885147169040086381654928998911895775187103084071195062356042876750965614836401248090479026300661011351948471607393769769556890229722393433038616825580590390410454438218752306841387758953323423800560685289150003098215085278230801869890291404287446721553214699630395927799116586983600942518061968549475497438163424912182610859862927038501131335188945596239849497541088368834872091885136302632621337091115570885335152260619092947663411540177264759852639969147799817648396641928569218528049073738834823356886668382927583475347995642111196213588584022782313071061625684908378002007879331524989227219006313060196376074714295420685986504086068294145427830035612958587524867744442233197493459448728425980825141818892921010239284072420895795368303418952716355389812402026483229058850123357285366759402991641853074790321218074192957946061783044634468057064230643381053998528126980100187223856274027840116858978157108536204648629939252209470672451401501197877542048069805729699057779432139497292419705124065729921293450482228049616746426818016413894359483364642853167169747886061880382656765310578467938005486863298115844133238158797144349844171502401093096998712034696904740464812828061677714937605739628148589248635142535523630686408827966179574149248621398166643884591863288828576406934684338361445916363086699923114089517076050196567394580051055158131212646712837968530462621721827025482021496316929562465266397867755146782597021915042438648640900997632197453916323465295632757645549871611980953828020329281310909143843462635780335674666466417180026505366006543620439545809298010969873751023914981808208752202759052349832260315793224047909792125376613433811347004725249456041271590705564946401936333463485731324969753820659497577949157073847023962645618741881514263907101692618163595264226701504800179383500112737772664779882246546379861433259554526148924766221139700038144910531140862360911822820074511432374738456782642706636304317586732878396109035518880744152958061938447602091095518774332196098466641371276616684463200953399848965855359321226808997543922987453744359965796641426948349290993996913627910404758457356995100438252779716300821622394401698132602752617011647789322716076580219538344813916372768096722313510368557845582357857585155824589863281177807622948415754641413784452930600077346378579803916015430095441666578226864564180023461058514629631458528867336934092857083086474161763111719755826280185812206794894817799013224522339049203457422668082731689954654233625871065530240003498961814196997945224447390883040913967717511802095510916544966078502436745248230981559392660573595468365844380392477376799367833881697422869815261264575037330243012694242880986893984835232371832501401580427529781967177406481039368920241066562989400788449855070411152436938417419696970368697276717690615640608536955782859219713869433282768137800817165814229198893908378823486694252773538945705104636421674804087054203990915351496584082764899614277651325531108605359665453426348034055316723534864268095338745177243935279070919456482244539068819769240516614226422852416850325734372827535069289581968003193033319989990055754420811772232947248637766802890922791437099208400238619160142387088222186315691420543552366987263120561304360402593571148567941078423364572521826681804403961915385806267435755288172794950500020500910501355542851129811047596337422293511444588259038419268291053620130016684174304391444097489245159579706233273076414516672380736239934850843233084341358195142344985510100594419807696269060147052424219482504937547317786147511254603668020846535465586174124607974550444160827489757176182801915538555143617879871953907474111638945043156052622359463608050263731562182698327844777079550232694244512104381374705186757705942780281624001058608011875357353312478308008311481720259756342887008290204578728762967451599311325374517451325163258309125845897358701521367977945931402355393975542886068590059561565282730513852787490184675325806686135813734385167037837360647891512107511755346425193316821110013775875477026879581471781173160950007828992552150822458592397769099131453768672803453709499754233243108629480241605172777586946314834197669734504201888678213942651940238342281866785369742102279462428460777530376136136231004897693124849885122348949280870652373957259278804861959218336777373721257638396409195614281597524108929880077715574122444556615234683880889176822041240688126002365500059457494580357101783884106102988742244984896538569730089968437668219504547292434995223520776227533452320578542895717576025989956210262300186015240615865247977694607695909104410096905007186184236505529666247364554734485141785012065420267809747574339129488211745307900980613732283332896126835031284802383406363909884193655145336711875783887388862368278550181231610972981996739631455903620986203675194760999042873816099064190628083975025347445784420108249663290052724036187590074965398610073033292678880827831808283853751847237468516860448891363842203309198772793413855737205337675461161646003980076978857336261888477978577564801532283246231099061926840478815504669248420863538237907929345667120167941962598240176009254621393641454212304677928590320883467866944392055049528773879457069124115641058230365246158808181906455161710311350168414087474816225732991248224052580943529829437397359548252956232152814213849236199287942765846803830289606328791170811272316572535064905211338081198911426062607626087966499819386563235202527529327548963215516787984687821509862381995023169084589592743100712403104515390576947601376722220060989969050102881275211831761654181611845284338619943988665233142900198868115371164110522649819719552237984327352264857487281856693412938801796883580363234541426020175521878893202112864696889212811268239203856859373586935226716609009603513517071003198205252404812012834801882801245385160866673796602301694121105925438912347404684534411918293755126534612492414306823608333605095564375352148229812523013368597540172688663692330736726200207732508981431047601642000658069576600538607835957146506499778405157940762402213490919012149465763768463385738777953085900358199887837792314559320479738893390501598898647437427614897155534156352287929161444377915059901883071582705286848929415968042921574697727299413039327549923168036542347916045033825104081646138731970112668137369357822424751202152019222168509380415939691677232868064849614313583649014600668184829488909585186535246153508791098629643939103028868367229946411113393781402901373432898737368837949666791493262122357352352964188101091445272104551624793069924343758583913508935401426733460240591709359150828930340218194236463557547316550611553206595683721602117173052980063644005894577411954814790039562248908385784888088966936896463297398829677262597659383815408889526626047101394253977595900212113307116309219798633847088152544525670232348265127540894861497019159409853529517758139840843035764092293355816941208664846061161233742352706006792153382513551751859569067167115139394099977939061546891291327790741447327308797022012096669450677495999856053722619854381182390008717368269868971507374533707616719617632208357940276868483225421616025383810929710048512330237283163588940096830422556248367564010017576697440567300953337482526295682245584584578254993517880851630516867946433067211911303292833843717206005421518757210417602558455655367504947006716779637084700958862470201042027011957893009007544454408770908373423681930768218738819446617180058135966084814527780185129638516406892132696615605318583514247656387389619027260223371580839635969868464806784002573768045898324842223272152435735692120897465769001344215535941040062463098357853506939920498426705106164982005113644341717425418699731937509861650290293152998342194582895752913785091381551303357337327257114358414263234372521436123521063615027640610600808040881265970408150589545834282384423299400790111214543391884862039501911250917200061144176025598869718170687133437815470767779660316082998544374741319639364910010870228075959168477800041883850128344776951395565432318966253040175702860502185953644924180515887761783717316304615221287546713762205096622539213035517008519389645457291953084374867552983379102744010862838857311488777077239025913199210846222868589046407392666166464177683305537383330181531828879599083490697303450367195560513705076567691481849474797811608243822530783141403640264798242137110226392240204651316032053988893865391064992070597603124148498132004547099581858953208835470304978946971996390353834692890795966903807135974587555585185536003668320065189465324894226746205569578073710522737179690817364813905743519461593397043119800913013973582286938693788343097995680373967109071862462187571949939652699341306391358792099090030090456358856256008657927570254553478372648987014286414920758463204997138557266371995826035974573666150296264771346810335095326697659715697795170069393710530635283468136296939727261427920213610885277095577547152779979395202143353987481322581979643205872091006695248531899150771514104217152234074690608120093601180782255043311820587417040609540297157617541250155876891294750845808070500876354548892724295498253627147533468522160587200882277668080496705715324131956379108499532973646516769413165867788615755937921940033677776345618731476304152756468200173910580426591469559789683117907185047034277681083040598013731504763240785767154095989055457607546919878243735436103111600897467215277392167458067139694462826145058195048909814968859300154528003784940594950628493678044038596394699647852200911843492251808917158043148683974132954438342815144022917143448635962474780024328498725460606548570194481111989770930567830388598126907248709356173934497795661797479113470666327927537938338078345011377651985991319290604621079884293945514816482440696484740327034077824333355787798636254165368859286150858958750879637998108583118484105591247081734397823286186384729984068449029270199672855924427901913633485619763325256499892821574125424315264092288120259567626009759275603289911041905240438331086587572413835673398231119306844255543025097516881697720679752307667122801483732058184285776288064642636148711513390388962899731364171610901310716820730283725798419647078821560286505137536817654628481960181536829961981855490803679132321817521932744482764456767464202705881085266885410206389065372300992090164956848653868376381161594211684841854437265140670204738728865480228707748587780158331128466429690357136895342406418973577289932333345187098536954966220988065496374692456079644974142221890075833516913282121557669317484311335572779861660435390528092801370735625752495477385062305666949761025632675264589522555621211099923478967396346255018621377944002885483201976113245869787974107531237648028459268043606902371068893852291513479580981224388094609457999344158041203946392929768367304541870533796000407128334524262882701888109236575314534246020988321975202595479440144931973254036646905841552179569384067489012508575595169072747733042424400812814160919259352621474792916174420403083739551223758160547976656281026595381643096948801370705659310434743561045559566971630442088232589317967018997931184062220618796848443492290321389645824423866695127802758518340591090016840309184413339359649991834531343285874093080497929530190287994199939798304307277547872706231430391505602923349982373861135314732923858964473391904758588764413295896003010488756906594347037613938811216617724089965187685710985375298764957296269599854563160275550458144534763576758699161569277982065732956874624668937807065411109446604228592808909899278647941773740617830970332688402980645429419904118321612656175360276837875479352290460156121282994994162532369292978032110861901707525907091778764202854775928555501041931971200715442673158110496110908830980766649200430613421960021248213909962402074499015915945434289520379043955603200635781254638010312025284269159517952939506082827976588525121206848518571779586097842249305052892113431910274178155907088033792692564310908639647868386071882896085232041715503299102587431854892737985167271093852087632994947177179167802096810234876803353034984768899038037224495112884867769938200436866265358495844306927195557147348733961770544301192882235715930444600043155519773914384206194248048679916674128997548679783219001955451814370829118193717513009233993871713590358026893845242245808819766701125534760463442362469270875372375307169016537567199737122235728048300693424805638167680469677648503042282891819649771135388163653064171761345920150431427271089466110592264864748343192806106385808077492197239230536867124976105819465411954856523009289187891229200718462134994387917493076780434129530212052407552278366480150233085930803619841033612581647695935351368932294347930401499964362416554223642821003333009655704098279501624343912021066764903745445354097138535635287135849570590939028859531894693971683485199915240715575596798900992489248553416929513420295896771810519735251058803381843634761018421570627627566204724781605994100484751134434459501241594229927655498579001956962071563013827553058322527326600590726315350760946405102968093291870558672355943973311513995007475856091041769615811344144570319217892414289341838922408271484132053674907800531586298976371453950444944613079484485009516601514271339535627461239157257005132621688649837608372199534427275372741136098825260157865883325077305864040820300332316259129525664631866211046588513284017923187638592120789315213683664942732386355463410625703392984261668569654019731103226062568142375254496721450142791217967909451258084677318087309111741514491963778339268215070040275793820166287601527146597577259413549121242178853119651626556647888311873794758339869565571872504370263226121417509517244334006815409231416072665005572132184268463063862666630308759089176298750232916850485570642769136799498045472752600137529895050094774921469092246142697841367867145368657836516579510084182328561947222956608979698080056222596698030859631446164787437841538622420675620682055112843759284378386635207684671953563491206690369150189861403572167354900807233938441509204102868740401033643328976443033284628512914262645883372155351840805891929155129297573895375032882916504818235807479277557271667337752665819724969976743521034821843678890984798603573847127145859026383481466020860419820497174404127449170211526659831835938574783361579121909732546773877403132235386581803781567384283746921629795810206987313952129552853930804339883303735167522120351093152290939079176043552564736468411559466625208441281798927986040847258768883359655615471316385272306262505165968150721250916409402237953201038557104303098023346080067974111599939251535851247261166220684921437437933528625103516958820851754050263395462408240117091265038202033284711167461437925333569106447537735868236244155371617523472593710697032335902758611557381720625647051078943485028652352664721678525393869797588779302356231488744084999184767578147697765386471809985416291793878776538986131793114016660217206985399046628487845134353344535377596959840116226121562767631168417600608675995443212358251725468321087804511952790231784059048328220673001760202342414125185258120153374263638438525267034551860937177227485186761535399480171775263221503299700459973248364016879379750065853510133158214033485509132259433959217596206631415053142918051932365423430549336655628210453102704435694436516604246484814364805486482934941428003787891645665205614016846941726502413486922221341810342820999894011506970092389411087646500428933509581038835789918918786454990029581545188320991683545676480373194516158870279791116775310572183071903982196053140337520912989481034738095855867011332559502707827693545877021960957414559802011540528334909494705145243292407573412164248198708238468833251177610298287004037735781814553363177695544544998242467910184710241069085068864577580939726621096398153224439531694823263961435715830228547039838981409092179397536358299035352948263547191103756062680553689569694844525988433590842630055369324551142655092595720356018692242198958263643327961824097506479153972216054418856638067374506624305807191841642479823628863152849023155940899791696418105910554628948705327448154883362737084046174395034067475113471515144194543195256436213523556680117948812001366337421016817099875402733506325037273362188498632736629835796656685894564757207773601476197104082372269066411814155766445603760940700178438702615922957976387510224357619893842266007073128873198833506537571434624971290206343427360078757583841759262805744026970388959974028977541620700429902974288677388295143092542097551280883875169386924508167285244707084923326337426117642616941214966271846083513006821743375464603262486072051694646228555621713233780395770364505541468706321730341900931307821174930908210318428817320242796996835414548122971830142399649990093583249505591728236218878520332121345874547942559188174214698882473753484248325884325663046767474411637131383177517422770751274594813239949735367090565598646707208392075551902370420598720911072325225132769121186224064970782407708427843801413104540857837968010365279184798632146995135643882319299003794674061971826499924879153928963349780579439589437404152003398658971578234243405774068206424187840669355484250666171086061466636380530690834906638080622007233081559312710710698136467795768266842035630169398519127871294978864996654966316980406886331516275744553513232662280266022986169360436886689223234500185259612103173480615396276155527246828561187060457937806631786713009887772919620181032601772522961754066823902362672354119161415226782700335299824362595800224067120867798197601887671900249159138405462179435509803405602951623554996509316262293895648746809880409559148384261580990186538070397248172669352522335110390469357027555424041983276710191963363737495920976305591005259990758381036938412556837952241159866993935519716701207481845011890101159838652828865065793910057195257337036645821164684696706917936568775082727521512663398014954520926941005010783648585306572974294704269241827669759160510039285109984287972107645742391739132180666646744661869172959905195187119226927310030433987149268341099485825209906461964400373557842316508392645342239561097649898541050297723139732133964792300071431233804367947495085157686004723562299427759896550620389266857856830143013886012454378582852144402011032459146094356306723111550779536957889863298021593649992445442338640172417409840756440609698181868160463772964735419543395274280980559595819633515874564820649846749683359486226003662166196807319674380378750602486604215148137129844246387685880069415243276833022668796671910826987048428082872917186598421948723077470398305203465274630202193037117244557176349353055259369028318194450281536789806246083084261234924159148265064407290669214060989993488786129702039779574333060523352564011675903423871825878151618240625349757270900809131880654406272375308604321222261185427450926336892622465816515657902527821358454618685241132516620435705641271373758301052670996929441069499854552304716580268335734879594723352718367214635280145970495416300873702372568777368071596263872133889069280365301644958528370561863054102711088143927276124548822785464641473445724271868894376075432774430296008161416133518325158464701871984321436255940820470099340650230261821471877706133727421894332080294875604905174439461727896926967782800280046677911732075429214811593725901280341550061498240992305653093563071623371214316134284463630119581858962426024867800436532132640558995577922940784105292930801059079126017946026019472129152307891941640837728188416163635959730552260017984947108638509294713792604139612581939350390899726717225182357963799524285978858495854181647478403161756588991513818179298157186792299604788745815430053085325287067557505337279189162913068908344561461473977848726629868751273993858571680267616918740227675111571110241761522053521513249051361607038973635911787727373711878113977713675029689507993782752865935247957765440980194737763443750227218470443309321304447652919173253045315164348777332990647554178667533711321795111241419104983585170358593819550311793894430841582510258836643220897072539890245849057959927892911447210076498187841251315666622857606301771480988982360710914385127828803069271947323060660766864905533090693067755263466808170167241126454881917312875437179152304317766728184779769227942769057659645069565681787367406760617583412455445231658655987365828028703486733591969791048278930222063625523614628347569251314377097941469854006757011791226789341248699023123120315516632810475056215455805546846397962951880971447114887299042457548313123090590596107146306916018697368401260803339959891712980855165685758940667018950672725072778610090399154343795951386782591580649948869138489921265251253173799287527050098360918728890688711101373462006358438883002437168643591101443740220668557716396634574071158233345500520297754134125138791935029021942488633222633695137429818233724491333807766843254680559372502033086409759860286219124087756685464316236906328133135228511541971089819193324463730843555923025569558907190901227702835205882163612290563376601959217410876149896094822199714693450819235142010413361446064481388223841299408383774326017007547446509456093929085496700047084899136422252467711840290475672153837204436225944275019708749917531445086964683647383680871372463671576275771331377074850188710744161108585419496001265759254467788027376224879183228651425028483101974220643633312964145478685766766156769009669279288736627156204061895259266852726359520902764108312607981533743549344054061747142504627654197137543658808124137140591037726363258427412554185635701096605071024929402484118136029792031432737935223507552522363115400578907982039723912050725217438294000710035010033534627755641818201656449363836477681385845875558950066935941517420667968375423324872809927658770676685419856791180907957146602585967790624362121044363923617077609548568316176891556748533240755023724855415245236673499396400134104386743541166139000098628860251772614516573492345388437381467902590155448414524869467677445337718383628720742032322593946819006268072453407469924698961945012808078172541950894430361953113849533589517158296237044107063302200061233626827949710275407747860930839210457993303764169353345680907738287094624301492779755429637489369251307098737426798943797170912555884473098798566223827389506094142261989080345211609334772134320731660457160293753332485883651366735458725340654144553442409527226457415810197717390050198510740197670406965802242041812805304060082194279257807584097565604059466429445260978308555738418931411615063082128450599399937796375178045581427717832318886219448083365011942341293234671116445203486563567511247649717785933542449411059040098460215180787012558389673306016872246654918677681777689062362154082234355310803773214222705984567715408193695011720556787713733588065567375688735347353374586487291446010357085716609984084994613448638877807756083100223866999444930286901940017073284996623344514094218954646129620906934261673297186490921503158241535983904871470881396624594811511816168542080407321289733550621263359254026371956839609887597360434266243048487064088175666870236461185555757940286100136860215982433841894345669558622526792039696045364491031343317119733342472231007288312507080095836812258122317350050894975212138704483864246851233834024245597529310268319769986986784299881076637182729282055810388851827808190286517676333507680279043537152520509417775390105927336458800667340074437614005127980461534465809234920912560859524245504541432950717703810926804877369945978719528159315900818868388645035298763975740416427335034522463457626177260209884672900321526003408617988267154590276656145531543992272569299461043534773309082801719973833049528667087162108522769634930220263381328463824972994765417597319439055097701565785065974178812305835927421312377096990470549085126203909569019421488236308165846329104612425185768330254749713373218030778346738221733411517711949460851703734037664014389444451736099035516185933792624598380376075370361558314388826011744871178433401059189397876907271625723112020315854426491092777740135838385244642576919526026034429792504310741873950348199456841342600813656982455087297809638084813432884852852272178000810742039208179605918120527988834387366077474463007198880226610187441383491246965124684444124607045439918998694537984002651225116367793366163779781880412396114614025904596495914011234231253000470757221269564544195526450923193008085298131834020542294833592878582804652757049941459535399973667146693937003978702501115935088428941301732801347041442357957738996682731037343445181710637261636174735782989658744603486912014853836230016137102753036090003767632346275253212715943415810703375079947976331740529124058661410361367237303833518573036283561451793217050415054361036949086537732066493668669243703519734876793624105527321419885163815747673388168307333780374578393215794121207980382508702314282369605728045709449408571915999029180607771118766121713753281446864766451470630648452717713561723113019574546092163593017115177977520803570324431563872236782803393224830407424884434277339908565942448703094126368012749731476047293109548177518686550413119265145717643288009015155992509320270222065749184499880869808228576760492198277963066593133414290720749120834809215150291896368820831168699666154753915539284668264212061885025552508457904394095398848243339872529692479038207287964864011318877636143258041218011972642564559012862195005704245183089971563893534148624677422891807481430620083384726493502097698094624380461890934764356684322253239580101229081907991591986787341590913762436969573763811551655507764637631314612004397162711785784764516039015480382383522576678338033392190239446647959830407307803888962878810256806764021284206898124535436392029250022377182105909920196169499566672662894825075846251622573089376676502004651830035870722657479727863310156905863649520021557987128572454364993133070850404822498604869107803986450699295216824914978741441643739050110020515469104243777919781814181215566618695459637986995061823002402574167341379186436255098237255554083210414127365814740378721932759717145374406047866510486743856779853374036854460523193522504651451430428790102839811495268602145356578530560368942691115504745628506379095241364538638001932509974359618345393336835350614906493559668004804408380680852370338972661753243453473784895527079657546060272350820417076692155545097529059334204548729612911678630736765470500071292088805571234818370487659566416701144788157091106141892179764915209728019753264801518566777161685495227105118702298485015083656931358801183808121883655837593667648578259770841315781625583401309197061149916259258820557132034303799516008086403277016836189677865174636270147031154614094748281756499226894404481217632385324525062246629389523011957503326885384878901210349933866584336350790461468365047729965676960863343562336372080290577286734456724077205327361699804114804067368622668491031478119491211389400776621569181928211201403247978726225717083185794824243575604584004277501197036749781658726892710030553957149916233636695943745270480145600372991456363323609726860302394806363344057764134677965165664806331781041067197463304394235666994038666390462235700385714255476367874996132725753881913905219543479285365909080791711192155227666873361117659283218353899922913596257154215375990471084504921081302054853996420514465001247126990377731047333958767679263814118871151985224244886237877026450544176810486220223332586900299868888053928151452768466384711490490848881784478368025040617591860113557645392137279261265018917810276084009026260050047793461943037246403834794762493746931450531599599611737562744296756746726759396417151485396109184412617300376312642861391923164907911700625152215692975508487783232082860364329101985718334072017392191790717897862593806841209512058868800759929453199606571089775839967854260362374223113075135386967011218277233035640181745775451919475147318218931296713095654252405628250732791011180575492648628564754410418022851064749147449031431326914029449222960256477559849382752238196353684943301630524427634218503938418342309566154837693055188065660334466698933419974813777075937229533385280985488323100771302425662873776472542158657283622035666158452556678874947004650003702869615240936168974929830368584919238405376212116050314069237046630900129735361496443305761218466675585930991776018129958996514593212369555489606072830098842341246766717697206614218097172367021602273751181595094451692419531783217972438325010157916328622939221095477046747038909755676559474707690885612507001916699510784802889633309208892756026194344998448204209824037742878623291832830902479101206874130004655717813019072676311352860246989892938259012772802665449293612734039281612543471359419692424802486286074801602383334891013736795582013976729842577436806566743183338330250441751695456178389471174848733007554599919942503791544696276676944086101320099163838627822686424096795193680995533093780302844137156195488459436740363789022219228269832109464928497223207224816036515615631181484670168276079817869577459086446890885458421455470385041132828788703554910156713886799435131913177658766080143093669859249747422124607519596767011109046796320278910685352646211763361478472970700104423878900199912887446081074883983783914641314214869054708152936367669458846840377391231416989469230394496513178480192849810444471376157979866803952758974773806213477800201011214466374482372973010529502380769989561561133581856368940476000777565073665918049895733670345282893972157834470427572116788475154298449525182655012410910927712043890804675701540445872080741962468523012770724526584064058314204419863171018011339986200508514261922345983364709645227025109195323316986717072966992455910918183842242863666438451286619090321358280180900828301361964966074343511756062716535236164867408823509048809356361088556216744030795310913592665422216473251218622234920264899275347704843737609673201126527304623765032686852264268477159556980843041396496213439068228090259224192234233354590714308626443466050330927095689508171527977965753522555971666701361089982402954819017423815467662794137856853679779183301670101815757587300227041640682080281512965638433140183906565842204810430050090930506715903345566030791361761175872937526609126084750310652819255947990698679049361634504668883379368990281040500634389380466127617570330938856103290871865331073785013846144243254308102616643159317956515699482498781548290867056127543105027697418987917480148493079550370385762201560842715105839800696395581599372954062278762548638848824893081672692467613757978640816719257642874018080774424853428272704035013091743441507890197107871945448599792065774763434827356493294802233396887885525447200068602210010008133231382860035491413730151147440539946604282017331521089012088363791615912612848594593514238189989724906743428823326317870165693185609145163117431558898553455883849437477480757287860297960794577015063192755986674051972608776612623973075496921192138735241281534884760400500840720718706987734390691157539946740241747615118894393012433804551807154184712232867771735219893896794254237113574314179287800295618159330219489556450102226299784853010412792966200745620862386371209035694583489780937803791192306109396849816481454871914796191913272771669111274902474479913643333175792078693594006007179211345474405653286721343124830339615458491707112861142758079982721073188629066850763506588369341974322472326551218970176926542319407045495450812525320913639471181528218313216008161713611922151221162521883516309057727679999381902170978225815943909952260591439900534839537347868253207476146172713640560323545120401720942105562957728887568865424743065147417528784629887449286598049564369250541186062161027828983136543622141387190542511691427979660344721024256441648055852617621939631411129794238693643741048360919251070278837667420410363497207578684584122313358662167951038093134387080384607637360935059847013856269516161528652584322282070138527616556417205501478920420555568773825878266215275115370312807973510689064432185682358871637343030011868563333709767089266081195637889182626359642145239618260016311872801040459802366937665002754729487077429667423227223444429263283484605991084648403867201778619948626087669216961424301691683343431693447875000022618639746811985603666877564919676127587000786497033554509446710417676735482611078100242252019391796771097333047133053424264223200625465798133462137035294494274158896937957115092248043482567106960842183850759173331368718904992619003067198758880767843642065879162917619637792111767920376416539892819700056196967448990738179219874973561539235707761396151433657175232850089787730640190526282781334440680039747447257073268441210392735963918002741345442178749831309555942178680147754496398057813064047642610125216601338712869772061730276045255116781701757886304326743061932286935279022696941351698941983096548669489603144615316792469917887828852201949116503382609547683003676552195880935630672075542257417182659599624805619857483646671348073959720417010643833155991242073380814547615106081765546708324535697624258816130435782855089636881058846234494477594766952534853565648083832259159840835198823603304695578551810173512575624740280673970160039149664868549291702202914995560642058593242315982063475615174898146139338537187799223055281222273996080155424171267708737943908208448562625436294680771371312579466866290175373728793512865809371654169634184065303461800982119944160401783091785831432551737974505193377912322277349523287262251862138261719814743927546155044589431809517237127744447034180064241097363167173676430354356278157357852152254001397626786792712331971780773880091196566921529502752620836719933675349188004609057377745763663227909487452773128955614125860738294783766339036920022571870721834768912496570626310313595051005720969973808685624879489720541114905875213038889582077030797015043908260986059821210566973879269534677502178028438880930988199281005252464296875377371745100646434188102070694901324396830227270017984324591331778427120150950495085104260798724807027391839661991212875137546986598904417875466068831714528374298238624979428665836181856650891721450073619614044611274109132359564522287421905509243703084147680933544554474659115778211472524100836033201201121002020206681068704402965314023391643782343276152326342121994422797481678946825897014003680256938046068989917048031681248912890425957308579738451936257244981640081025336698497460193130222715108087336061823224226388436677776488249647829509013283042060076078673899014073204207404799779912490058751913033464861487883185257778225410736580095853252682092392518463632197344561081778846049900148396961272935328273141435926578466491910644270006873461657255028677504614499570327325576485097038388537177997152198754025372198315539705187601403460437954806735579899434978126148073856791746147841302076098312102627368796428708117483771490265656614460787146076199321631381227496879196486848317479988018469265707321520116893975798027488602243015206774998620757573569193894296151617045516198469092737440736986256146337335234730850563300124791059887931792312787562607895734068585581082365870185449944709137356512488413131786363863409589144104191460006366089549655335823176855217388076952933795134208747013848631554704367903181806006709425193636511484414485884883487722912332109545530606115930070148189837935617618496468303439021702335747458973356447648940409065846365614948334392447052229786562676359774081541447692543247924584968336939052721836842760753478652403824093502365645405846388905503772932910254927307708746764695484660788953127799287532481187752671610822748143911351138945726983874563622582343525630864254295677254233617358545931600442266095399677894731606701113841550508049219011737860451307726377305472588328739110697980044702415429338147234026591967787167124800452093920777933409776188310817513032323943455633769272001917272457634782531675691792374832749586752542896808289758742750444898228466079298702303013123381703608081965155303767273378655074424262417947689731166670969677829444735286745409224773831918480606792307151688244991576697365210151511356963333360327592114413249313056667893497971093738560189204005469117782801502306070030862278810509047505328965491197174687447393744544714975529190611829898637722244436747777332391708964431522300484024470657012125257664649795153556001713459554516861122726450237493683733562003850527842083562224373430011382126234337418552336658650022465239120696501453792439970589769486622627321345181814094655870446461544166634036626964369660400762099434153304507313074578016450850347377931527864151673404946371185752941115862622013742106072377231870654335510993476188137564202286519782411357503112951331349005302074648449278252211075120953862795717240822345546217399815972941141281491330031465217276692169263703629726334901814977166225576533113191590904297714532830262848068823854114861476331808917826233385768132666547758396700616742520417943433620346516357326024306790260470791679908420086826357677139791114159712114845230300713873451680102200467766590494424287938069730759592901392329941804842331571329632976661785075005408660700245693883473525299266339429710260477795026960928384775768398419743644470460688410065603062527455566467213838361912773962197180686007946976024906953710319996665632811305889875473130355945382541515129492556806451757420803365083295799621426207457774974636767478863279559913050067267956645400547491635828168866293345121145915173741737256491021212763342453320961400767339525756682580047494172636141485628407680003791366274147049206328893738066771386911893908340745691875800546995625854293514239725189410109547570921008368453548037291720965445590816518747670294036987540225114971706996939210119952281715415273826820804306768950233489103113012140939451930051075875570643727001372354496617342512104790866229207686535813908949460595641914883757294412083661588643524439693562511944143360599697669719478722366015827387965729650942904679500772602841630292589628445212652783448598938027003894291011082819127979632107165704333492854020468108945394772574454976877493433784725263064854953714233384151065796457689584151110782841390914000344195087570110474505499951098359440170203711065852687965677981389016167188679138011293005571482326109816653298579136890048300403160585703413361004629092267017723773506335758647807433023901156114162741269917361111691543236010265845030729706829787028622750705425859068010810556205261314373588658353383765492037103007184181286432111816737952828180199707451723977843180344851976776679688534717072205371492792650083276969806240361850340459974130688747352821508799645435743264767452703354356861307082101177201802902427874351346626569074909625828848637171284471251825578110647179604507960501559127210828593190101492103245169018029502955687066237735299379591058068045737301841822172250951134522668083696813112474351201043807282473526271376177452670456195495268363443120459622706520024160389893132134806359320516457441347544802849708785054174101632152767435608309216718695299100027757644037490197821011324814704667499689962915027799018499731369078318364407811515290083853264322189421389069146369049423995997300890626861102649878573937583932896251197901916121342580219171568230946215350185174686325017782001173446540152822588700147074104787963251157970851160460551185327935550996665826354333991427957545077050300643219428992394365890035507937255982021116683057699772170269665762910452400542755299508654675273417730574350182819359391519981352849955922984471291990523164304233170198678082274871391800140868606969443262530929599832161975917059872486818592225517249838023825183778787546140487991272893135608744985743140447977673207921511370549466814682123623770138959135353726491376632892438038665109669160090359846380400878595525800803894417308375570220100923406016151484909936201930725832994508363803724133223967553487983321282178710349639057303794739934059965001165441437635650119826125801288365354238673531895485707892642484421073464231586254128125579109866503739232442582608324044878421697144939554134715230955833600376797534408639930042261345132948656551910493060875030644961629897501163606663509928698429297059750813789933770288817399022476939232326268354136346082785837558919923932725064506868263139188903327604750205660020981108669743959318905815036416254787336739070034763120132352386217514354601539525631529880192718318955403839510882490540451512875727170766297965142633558201255763647662790689433931216615746692885623233128211498292631664766731313908045682066978057820288669260237436929202925817296790913809905095155702001639628144789514638742739939035333957387738593443265562320697881015918792263471527044018215964351449719876070708913503705525696789895915808033171150451922440291502097973935579657194876344648449997535526734175862133321299185598307764704349011191513759135435525897113877514945896026865620386200746216347925768383917972505488051170055068642471690041332191684683745370982549548423269765876864699868589183317979905639948484197666874522257772717787059538313552453060947128358602204798583233031802349668717220118462782486096248061462658982116040066066521827075601510015842594327257057398297143233124138827992383169179217320144580128833668587838854199338136780907812275219939273176111751596335583653177078317166660017240403854637466463332055236533798378731713511082418273782427180735052030814299463514415491976082375368633366309794252135778357264147122948001077178175214346402450589491623098758061775529214064534804949833310844136205419458116501505939346663409421657224068532940864116924476217545549239510674536359892685887937268950267742435750312853258577147240451821737731780455021272781130048835026316730118821032450147877711874921629145405258962040910615511163347463465721085871171114140298952466320379818877962437013999027891947085988870951667450879742492412977780489167639793983259929700309448413954556452661934222138478222458455912004212176357540287229770623332170193445894273378882235268938345283296373900529063990217208210583562915391855080536536174110885365592695929874527896651854347428583229886726706957317502432136372803402667497351387514476814849747466261882351905564009060548314406775510071916043286858148728417578048048801866189228379941909738835523402173532383962718357662353076155849449827203429450654727094252197006618274291725231070521249120945608166800235889650458172166658825951260293159146641820413510754825096900849956927587147858549887373156023194038884126532652224729903614092756775639996149032409992783848643734846648156124150514919371382191821746617972594537647789093912056416087971954439974780004911599047783502486502507961980660288784347613920098749509465647949367297815158369267967268835116933883824364278550196317941654231848556996249466846439405494556516254061440435758415509499864567342145807084518573431251722211564103453811327392981796915442134925254665372936701118561795662511883908223705997824472521968139999651653956732259646222901693016456531974567285828212531762658003316492887765996215632667534358066564270232643549257424101662355568440000623792513178484392828443913780476636904439068141691652637703889383753372523631734069075097686552926739688399554419827856350596235127282403082484436487943122526245116210913507964917444738068345116470415544696562305104556109803083023510315667493629949322719673046222542606756463952693041024157970826878109011953728899380829522025489584309592108790825410314562192299166256641320488930143334390100439967459330068287947273049272212413882060472896091753954680709577121778319558256035581447904934300635016606419464873816058589864336746441453594498449336616285754897813488433857365903115886608390473123954548258640359668662469470037926078811259588957023809234921222149914386306296847922617520837369734727648599015129268677233337962429357373668100636032213139601568857629909238391077602337509799693659862143404784426471180469284808905994985473771526116413890059496315868960379993267646003875409842635565231089846042230303810320184944487755141703089815851820338679239829284815759148980366134020652406269286040875571651065595283063065907987026302640308993016956237500345700696581994567997807140016933491799850989684236199383392978854516695499900401323001758842201588163574650820583422114796145321763534561957580384887382122669068111171365077557516362763460784730262706612077956851551048704673777387447334370594979343679669859017690451063149023073545008782430304500114514708653260578639050935552941031018489445791093094822459109656379923001312066986993851265133762453993667886533076320998476715699786628649877331403409098505110653401762105645923475471837370194090542681979134878126326976104130533849448627883350357398381593800147503052530353612203286573515029569393903485423812277067449565133499302841995641321843343546781050233173891581190993562076906197120768451641218187480700478741358692467468464684373432091255906181300532616945725061332576981248349004753927203115173996235920161660980157666276698672053039687736577604889477379467537895985809400919443971001830537251293958033107640786884276080594475472629270371222162231021365740664005170332947244014213085783282508192116386965461937331154498780506476838060329991192226393991501522087855288221791064512048769301661141157076515415381578846624489184738771966186701264131440424478911921987689419029761583301232511092210118391128510045253926089562896500944661590523366449341935563371754199984356998916058261197409535230390245843057680525951498455820564746708610833538176605573275249164490957503499276888171189345306820569728721324601274229589811928849390060498293519027353630241551528496551896989121042067955425227439953586270352580169318613131865729167330637483606269561928211557786786971527695147520870539743632979593108579267046715755324563315916903846750062585253140924110452560765196055128464891273234929705200043983034740359292191872205493421623152801446313648677203311323085781368034521908999282753415510284096945652861158094512386229676211558024187450864461758727395594662032565822416501352244629623108311615367521877426612746665830870064593137665698011649047974325447643410727722555405255698871846738085849853206292137412989952931969555015630702068245347397012100602769247588036174289842676195179634711177263483961282821077510240335561276839612121673763172374298628080125476322493159469784785462034462477124947016659123475355787781313364358970396517093991272040456114453545091378758104176930572403933985925441774858978547391382639833944489343080520672620604243012764745311728252463547236247587554213336758259678805957534216141442422351059613678248503508914773327541502827275300816200562260827693237484986654520799634420510552028003194255171258037565178881405651804309298868766950618248240401106414741442790240079922143888717097554066300002046038657432730070836565523450465664972202499295537583185362278033627746421593342947365639359725143790195325612420608484382059855370253889666188744047032602641974462491234160508490425645369202580000966338376988771985390033819753683242814295820874329683851015171837529803446801340707443817319910272237346906283437344421515741195325239221627940605322771600151722630252558510978469726861966195435367787284257122540820843259159579242890345215636885897910272427748612869656605731386961578715529847792847937845942585418298857036365056794240595794671577395640807060594096408872166392233420696035074323225512407943416845769731815255904338192545859227784326443243259207241079065807684022468822342737919854788054103918405987505504093502116760616968240059139517936682644808189960845908853295757154064599242715909795623911593310375977589477043686346364082224721093320924967654754410562742385300992285523045066565328441808999781999349936373130855269699716871274492674628983798269093937938125122042378865352804679354494693081404556443385995299305142319964371023286331737787626682927148043219714159641404769248458931618691771521174208489990861567815181923650859019097308706854789107221778061652692450022650393040940669675486692589907468657815615744697182977283958164757874414319809147995634251849181450689047091506201817499663824882340238514229126549226879726453412488128332204020663284636324981350709813422850745570533517126843530751454960544320518743789213887051842389795882873601226600039010453853874563300446795631973925270679294599889755341841919590661338082771157192303584833373326718894146358183419610057663486208951068478749094563281659486707981140748716003639943325862939200113830893069251990845546279653649617398255789678437202459197077066307770845029726363040545049338131397849245997400343460305811585343132087033311194563579082004027488502745403547458232433777930735932158966619292453645700462216797830704171230466261200061703315218430390576967523434175701203215257475379680663259026814681526909457053710936366386099481300298481807375465874309054630674259939418584970729573299160328225674269062619227933385687510721961223584060171806797290179995607671861236313208620941060989310569657476661292319967564175407048626015979155901650853647124346046691189623819055429630389328785941947098742234402269798518118037888189585676581212687831287352292562120681630789008715609399172132373497673443699068114963261683373874666673252236290765106104575147728906613802207768045130619236636913698322063647530334421342666724344294172177943904926917651111427899631370855943231136560211739047020372555523311469529126457269458392133996106260516985240020534882594599902657645268580589960141064247666515758568216059250121830249478261051291480068456573401629998153324226764206607469489220048578142167351781417017584806357063167662594538581628102873628585988952274995468335400973958877303205288655207786185906797477538242485629234478378597016220824074227983405206352255397026989684840069791105528061848029114738182239999553161311802860495321702172147429845598926585150869652822494744665239215607460277329480736771118480605824837973767148114266120909120309029705132154001967299985802435942117738308023730819327367782418035897942354054874826779258171512757741219310011723496611907376092559345362505055154577278889276450780487099634126390416015032662406060871801511442120691543455778228620075970748537424592283006736518013446283142346935381956838894925319691430773345519246525054300162413496585682205648784942741028654288797729397033732674067029083216114110413659633034269154537418297223738485688275410861508262189384128539254232644022914574086308365818722542093092504694582056278060711788936446434275591456000238009876350493382103327157162425276100293822034930591316542504758858025580753848501123602543238961841329533550138358372681071875715727578658643116342546918963849755664725192896638628785736080698906585642411135098427397161379606743819043234830024325054738173513519822713979963068917702669014154826113219190488912914890389245996154651186719378466509483067632056253786758447053819613292451398316746871040398158927776684903679748054001602057753826040242596717870986010634467873178982555506846378691142731769283808261456383473937435153472302096722058333588319876044128801802633713282435086377203553014485498583695062942729250910913376261254651161241025457480485010886856939107630844594140628938259237076973802550241049041885807323526160249736944263089483268245136469791763739846639119102869407429146422591658634693024175986480808559998233191163211333706808804879622532299316870677868388984791075627169888324909018742222408491124897143367464621326422790003116723475048921916982504738830147767161602076130782685077938417489502729413817092792930474876050825686949745127961810487513157518174017021590176366330519021233912544873377885363831956720413353270083313677172273920384772673807678996748682087782794096093052235146675538128806116817861168204391424427457795377544266574166205794803201566322229208567042100935005096996543823433372972782781809778578507489645592702999689356999449877731326357259010098709951837223490990304384299194371919827433449472039185339512229708969636541568171456077424026934980082730316187435639573666495595317376526111469535591023582403206075812468926633735952334343843822218928173949555238928661230434406630006823374353776408016202874297303623459718618751715359798172167092137793267938950731604611216410381231806177614199471314721396577539250591076912193868331237644037048834235238990660366846395290251359462364319782787779716536725088327589299014398953949288692187129153505774276346618702668967495393527659938985516822079187817648913899612144969109189823994574965459735270772062899924262221222093404204352003942264218223153525439657584455238003542742532212619403085049974799318792992237683158947755127870523520117026000582601055224455885589309987534198022054202390678912645592906653900023899169673405354442276000231420611499310197603289543339728308592942562786444588283490411347169732086068858324708444276475250206911777344789509622820823965666791602206498605365242256166174371309378430860614973940892356394468882039926086604445964580066667834138089648820356869847105302723178991547472191516138440211906309774923519669987938745126563562072395578357065642541335922548511280494048175831979934410096102774262285864329465057263915703482567529999470852769792964810136122888438469902818205222937988473350647728735674433377358910696672922442105757509311823125154694941311274361117202139910095232256605398931332899173528008482253705453918561955532856934990652438534722905844349380578902359340549382293290623152697761190705767964603655418161344295751400043709113585486115327705476333869291311818100574025920140067123894909772319440177772631002298307526607831622117994455368799947214191766463013789262425250995828658808310718123413445335322644663744637951946508949581310434113275943192712133224282937570055127184600356403137659304890907483009699099678123714704871023449851515200638613201795509452331466135086392808275361463928414378932687621782462973553823652249981286293439922794120028093752182642833128649751222603754743696104556419627279707509699880380966904550326939394990904964491321263447085116779179809599386108242218265828781973537731213209389713875485147585419548030625137600212815388530571728692972674412511753804970183263577279596166526325162765686873886856775502318730737426968771226223476703410281967290239409068633200249684151737831810534001315140882970981556594391248504359731611816224825751900496675394316529248128415746994479191706249753556614385764165717626495423791147580082803194272504460089967997239314935837830593492636765453096977166846721691890663803580789798783080053521913538358645255855616396817229547521282572548424306835506846558785387758443027267006677818739909681303648739302379159288759678285676988655510486679705917963797051281093465949734164454768740448205132554385474922747913343990913059733405196338416791553224330247518236098061000093730642026012238595677121993844844887619456285737829504177093017959202118098252513637228412239540656383676170099067095899006633554053311187222492327221695947140428455336368009603028248189863794851741332062671147190791755106202757813160797786638528829926636277051775472463809903114916510648058186976916353726639281507296372636956426686155259543490931661882553642694402510616918914198573636547526712908126513256692871308793423065200288534634911583559079958055725760881768928105592275915099694714199180567380499574885312936048030522331188481796590857103622914568450000716402577288305131877000220962580360398570490814071707256475166898490853601722866753189120464705933028688840237853429178813357254981242103167536667981056192668665057618574408971062624136388196396652630116722204714546056893270698107555848952792966003853628536314291074433761475244135341976869947809997329578170363394525337555192269177602162085612382924255987352115918893228723340476259267134820412709328781210994704180285750128582266064409073811116645252324145032670137090369201713878780828297516086661399204053578468734407717283001405786876036169862410525659347997254671294480126852369561470389818057234056846758162779785618216428558279995847478570343733999324330346702131209736060174992291898979749315591747011854034457815494157658746882372056614538367168020552856112751175105339353077576782634207043198564805146949736400448590732791637665214043619382162511968501478078123317656762359541292143268627848159132922691153993045490496417071037692307079758163551275609926199523578443837184971852981178816353743072206846840320332732615897059175131423105904869471175668442312047988446730342046478555442561820443187887940104353863680367261423446460404776717412346481255761469063436197844432783577928451322810780943749058199641904225036158460211569899166010631354666320939841482344098891587940968946671263269066064055338435746043766882838483826596967164736573189448570341878226954505910986651766563815223464263436214203163182455832224600524232157392107033136599096871390279583134527334101672925508000387798113685191961824824047645018512900524976432364338737000172761654487952148350052138221193954990816820572036006726334351941927154847651165814008352024327672701602054437653910767927061559776200189675516306465217216374330561587386517375938014119543322616417577251053186606212320749751509682243421082581125117549235022338342251575376386133620017399190776031314616643872573347315749106291735578833719967463991454249098665440558812625702922188784659266822210280157741283348833648091777503041877982045805049786082492584697926642039952849889376827709351909475756172559036961995215897343084510125916761149068541091660665912932283559378845944701179451757596423567707878630846120216344842057321969166786828596120695414422180189487871703019188120424245216505706251443571528703182267003807691846786942189121075743067592657991813733873434387088709678023313675506555977694311327223190103217673122159469802038189449342161789966185585200004901756300170372183939576651841124684040349748982549082687131217701971072100019847428169704491878580283482207532475756684245589831654099902587777589016487150748841253161773175871362759116199753408786370589842203239532069286642376130474269083315300742355613747639533111534260814431456680820512344191614730281606010049577289492489613285657326036636409069884072121095562264408652885898686860890480137551295076557240058792765545285482541326411251603863361144787075099134657904133922211543358967980736477134710000364854401854813364417149415126387409374072519370130205257829804855972954071800432427736491790606963579220106256217699194883825968001420374170429573585979387838833654901254400856083865696222477479131038109604305745337663056216839119034121619542158110646131565308406600462804604022792326182540160607363386876228955282130667414889021259159583216675005365825643194828749987284059447063503434788341434239388285445164127332020102092053181408040269600470183024054107663322513657890453398019606908578523531476995775391372715829076971059483825839678783438039790284120202583373267560902059279183611161985681266800819923210274453176671641868825215178586443109026677641867176236548337145181020850585569521466322936938975850160525382419679976766175843033815180343264050049542299920843026401955022835200514732407451316903272321681198803399293509005260654686192239138078261112031429885327994768159372344699186555228475697397061756965016558187004458812242029987776741470320428425254361269625854340568900375816677385307040812566242749495366330047787052155307794021235578715413778230801251747478873954128744440607282744676498324826408508072152394154627377318038580014288865018030092030902302101575245963809571193405024653195170229566044712580874966332653442218084569214142418258437705185767568085794007165685708992242382398819484825390698307466031378224553392594821799045369762210087152859753162240660437270308832800041560452138269792853433074112469482780458292715535958519642101222392851151291084104646526848521103259167310491774389269073117051165339414484442847105609908647719194213354818057023136167193290362843349030150470687339300180834608866884169561628108937551010768773746084662157806398180241498549432216636973320582585226520746075263340238305502577747775038791543258048047783454199833119283417111462055328977252120507928987675023430875251021031500887582024771634776859364975444745380238704419168678882575662305209756021980467375273799880886206430404730485041859398164780366534242946885096864263509578679778355255715344339515917652690797434832295648640235845631383512370956364148253477268682266307454721984273841180950475153589111414894212345828993104262175176078369895365551528404406870356721553034463137511408343391289031289265536947214734395207748235455592827050873733935871419150033990467684456632948417907235668673947785900603076353798936285534746976568268281965458458596661644502682374670398019046720735084841386164496311472144561898399942744660847118286784351418885419734457326165580087457010197997766366833523260099686382223088671657997940800505495860807810076344711613953492448018383077583895305374510104000882444154985180607120152293035482345126855542569160890415621669462144929506949245923574625241493282202751258251571901245819809582748168016291812049674867418417068862785598220128776977936490744227789535631898238065867506168106511711138325614492727261989231529970323363407164538211103814232156324348939435925623331253393633853784449102447868337204901779352085740934398545999512914896415770729898577089200356615826265217768691666935563769736266163327963165167589063644063680983452756681321868823461350377765236006947386889137156975098458111088581348318629440376765056720511419207638627815659358644944173810165031918013295784671402973999379932579867744501043858291085359828383642536914332221641518419382790268835696414891925608248576943228784537013443188639561085535592856536846132073632485367181186844272217682222489088870189492902018979341552879589422511330018408508632116785904236344500728376495726525435034508212889195008524849514593720259953916306064612349624937087580808389839832937102005534754770077035943246925958441353753394884065178113208470204583915922738524250310612869793668121532140284306690555110744007067725746038729858555782546615599986168653574257973175106186790278354558892358105820744262942286458659556638200854365042785219574414664616617479654852705966294124887406722360961352425889169331605372883405541462749437243719296664665566283566345399792147166822005266827876552401220343903670891552736903283367267065419271514086722945118972535912460008977565388963807213858404816440871634473645720017659893879907962663406520232201949887399924245251207507502004446056819559879487889708145109421621477739147928349477542424403383853773383029728985788340064389163194157377115797200337247892050362490875299137950994593485754720117232303555452898714138682499519733260748863211983249020939666970068376804061895905152145132289715070457554252719794189379276285063686039136481040857952834077664090359249778072750510116569756316964229695280694442275988815934910227612283082792044977838772503876645792521924576092682064396364963843570708667793048583335644639524422558031456675408748082479150052832399531580069196900793082621005081735805164124123239831234343775230834139557238237512477878000980519962286643719511048690433325237402483336942848157522056893017510212850942443664454608433715369168933326338786372495683271994827116654850104815976715388475024768124709916826023653427941513611333054002161532137111095482812689862147374149799816984915343361110335941529438364844720101101924276494430398304411166548931447781899899838486951369025896326376543737839546981805198050558120103095707324920499566925962090232453556065245748633034837562458773423507340817799042945657002553261247946704123555126157336826831376100864729420073225630660520604645148402240776799227193798723778852086119173650941968627813881822090918819600965456123312912968484045749463618574237110360515465345275057615415225942837969698625675585328118363847965802454548909536083763547729188253771865103646267702131374802000454979869770760113313552287787649364064048293141893831625200796303201162289280017325746767588799795445135736489530684049222146270600193624923953854632364664343668573466373399245245155559259945921091725700959100070059642907465457973001517041725486356850261081111705146368419230995104823734965703491376433903635743752570084653165000240246149211651455447831878897852347023579693172684075291601838536565686502832661592187770955269149248005271801636284931934705771982734555283179788847270546301402378905599357582668409807100798832258209654683578411826960879268151840038372109039995602661361565880405398760037189498821594485433336338453052468582225170014239613197128289542744288869214864300855030428645076937069332007411417955125612305084902920671625767657267671417921149531568463865389773524780057940508664220890659255374600074412527014447237343338763212237118951041897322013318840855807065914895942695840848301942681664913539741442294323237896673740231359818044204594230468861333188522163110291744502606020585721827176189745919174024071939302416265673477839113618742064660431354801946774908039095504928037474533880701166934775153611437221232284515154358323200696618595850147796410538654492815115815897534953336715850068753091575651230771351864951786164328109978023046585526313705119694448329704118319176576278762269101856469723071662487894079103943359855859128257984387487893985888290033158334196028503339916945349955750669401745303725387470037551504079836372206460666516920621910649326963799983522618541700604378551823419207224792250278305630426642964440389713883251267141583021606526801034823488611061866082302438735680629281040960902561134790248146103445796641756603044293114701753962637359094620176860680127523924841091089962780182282258286268707359800718535256098998633882121102909148477036529933064286122257438392328719960112162370523869109322632897665607262451087444406990057372805460194335643208970567994263205194425955971353295659345870239735196618158897507075071911651333997614395800994170328438373320186085016629920498124039603288643370555461277095527913075354943142303947172466038178092780019333498203750349246391822446289310260454277012520933890615219375015496459211963496834581050098822763337790068655124809935235960307998695018392347085353818044593784737994432304260385153178059258121069587121954139526300907071803996169335604510160028043656260400398846976612845581727261863545529364624814915741570218536664491269801469544609912562958541820371051449233755484033718446234602138206149684949534155533730738979296196060832574439816543989504375218034227289640920402744529016435513993387877769113213583800906430848088501924658856989412024603696962749720370875862115304261110654059014233982936936101662552213163219534794505665661854928760278031946233909158565821742097850662652817260107067218637589988465087744859296662819694295562246782105277190211720842322321903042071798207836030625340489616952659124803741234838731604756557121260210319406948600082462296228422787077330237410108171805033625372103839830845739477879905874832541501944790492641721223177328095834183902607119961946132925876960518831979850867926167975530416467592303128579443107420742864956472471825128703466134269200277930143890519711234493395628769223590930647915883739160066044055587501405541445247775182092762367542205793064813080946576324408710795974100128688854507363555229370015433658145819521244406788734138885929840547048672015785117773149574567299867862682592668724734638021207112880300717959101245298650677306373282622448210645708676789130318472030065690381954856184459704079695318991523559019938790389698645875154886131713515357619238276937734941194117693475474276918007389522117297722310467510182091919996106218600442370035492352190611956189971291630011111185227640376457617279579418406945839262525097775245293300159677071992250218187588124904617842512627726100523683838211836905324533433148494121406623312367186783906615367583829634176645085888101568416621186768523917535944967385976331019915106064566285729490561215823964927288459479367798326835144130466732287712116259829003604226933293790880286132977355703228810581258469590086431423530281605638227996351034120507054364629305034275718160308387777457693012253576974834059831206245349514937500658216706823844993140175047366551509534186491497811350613718272662075080273871360354868103679187376814859952847394626160946642646523464549968830568705998361999685784784180102770802910143589894737870192192801498946825457967322278858177894704127141584008642812215004686238891645269589753499148450296438207508867143977061859357381249389969824019941112800083972068047459566882038594791180144732998714147118211733846073594260019417715461073186516249076832449271611074021939876178087634235365221256006196512557061421015279290059743895185720968863937152076489731628644406935619758175543692679713471105141410939539695108045756760016330853880803813059902780055161636315092754642197843290415113884414145713767091598396530311369201994597435735895364848984012298725104350171184091048772554028931675893393341599813465863896389299592946004553106320126500099486752465229717333070074386886155723423428235072006516749004593216845815101441543945702768029853092184168589157145911500456572276514932365181227896956628198847754319472243123089718151816440818799980130032784756527448555398363959597349028324547498750838890813273345655282326398143746894873279414015130536731127082326562303326047824312886243668021406839413474411015344472028734804571339954746108220768909588162932874975630846007060628652546583542057562249549274323586224207503455518163314900189562275509107316521813597013030014602283619745579894119364900445379447201695421825308769277793493506487048130692892851168046084029017490535565291871852674294647529304870951688138487992570560342179006852526622176117953793064192848096178012203525829489281379284419831738131567931825996157281968370130074203589692318759374037128340310852075931348902479550669595123951829276937984788013709019381896290918304005671248551698247733348780878339119473942635717827095085389459754362194135888353152207710581180345878112074932818988644616396004722256272062401304128171081797625421033517233213806225071367697992884067122134401591475773275303771041526474942428478303455283636821632701566278813221454113019240864944732564549579246834782054829647442823406905827288103417611146852311287172196248532194437306875833792414963252306501612705197982874427024874367469667976792480853648248839489117910156816959563700335732553025855476595829999445401256437196650183416505102440009276089894226895738533087784312543951720102658289331041293672324737446661135321681337543169804964123408665639004509516726743166370663536784058304867302068109286894232082102560707471688047584996535752930950889112357502479268487142841571575947915171695845727602238409957402250413001956917337964311126386354296126001268458530600420415696972592481410485788533966583530585702840504824494809683513157226114243305680285445608698747989269643898052213422566414788891132122383852151743740488366405044406970968644167929985481069495935593865022817768915284623848942860830597935614454846321635394885788287873496116821508752751980967463136511111018926976012767372059526163356765739620221729731178640877845835721792339960462010969753281043726805727618334358155752893671200245163051978269395481012011311162899057715337684417791056351813347193348370346835768488659487007867417636825933015086942572265855528032727443470999230836183562748728682771898286510733694813996732785946255753456983589754566444104287320049283633766468925936606129420469828521817402815905497143976204157366920352885305554366307487245989765468874282046926408396019939708107982635737735443246645940951752032083471208971744556472429504871291649450478690205937227818620701111210042048087267837298793732480506941772955545624870171307095852440779046335545156859491136237176705608273619568143273859801075604025209788313925217267459335286205058679020049979186725152964653764262901395293203685477520328337882882554100521430498811384450601750615694272198340036266054723597745043885778368966293840029929891299667842754024810447632234168048210386741714156592852086107464652222019123319752183416691804963968070417914926163398214620042564472279120574682149022769477528707945441607475079469855673191513806336300302498660692310017865991083596857301857089473940244169938476510844430042189896182652790155745623217443536604190404309723737441620960153546774876571755047341045224889680876839900484955785484840331649628068584834502050779672525599604811973467074461338376465510712016864597277547326520667446005886356153733061509669901071562684647890624012354752091780925932782072999569655102704598216957104896378191207111381753922969255047707530591973520397264012700571900561386335863957067397777629203598767238644901482421068067632089605369629206233528354171721311759699471521081979930073951643843204835690526729675877530815560083788858906238096618044712365384495840445192232149240763518077981744998505363088768598579648508096218155508183343186667470182437580075953488557095214675559284996373138807374375209693784296435374707331823754323388135049485069165484615689211483412124200281362962652555683910670976303446363918943962911330378519266591853237330006303210452051684363877883967341500345696231275536439163277197181098903315370574808036283547280834336756991894123393393678242049769485461014873454131540486728223056041657700557433250184290634739504363297052692967208819066601026645921387235021898447541500234311130908377999736737714896112783965571729632429842355577128382468471609824857958795813437813492821683951806931535232914761978712241111140306922449178047387089769061180822535046767328333649913837371645416087531981646752742593930607271766435952281739381406811139579080124557304538523942278079751957938218867350096842348884928665847685211388289253732000828587049509236434936247014548360710377094348977937014032456379507552013861984559790673380457675899642009651754431686739912751244163281909634900109379727634658140101431220927963975552839873274699057659983866610371201041371708605291307539042023488325132453625579210767053848721914201825056147175051247043336921960104849466661443220069221087746997737519776546560011594648549206922755032688588731245606155121618658183496044523185692610943268324718551053267732816716906592295837171673356563121597300048302684047954189100232465118822946848649874723075832053080156749167689916346747490184655100850267390016470725215061780311400913551018519369285236088889164617759798564074980583032640103017169456430797081423494876325335341746339917487146146180803886717252566972384436227514183040364470526743112091035483297629918047915364185734907477758362521129693875430023335071883134295540730495212530273436852136862158123358331896012265018179106049117968783872522482991920341557207315312474209185528033584166573363057196316549937344434765545001373806648777803284972091053927603258379728774231074264040689679000553181372490387864411619153181740171824856242019731464524735660071244074696907129947846626893457106161394143756175543441957288402141989621374401998348324639567111337759065513112254414225227979197765200430859538181594110331683542587113785179256416626838828423267674952633581128803509361482694448378872449438196987737480088658284877157626441768325017470753924762916251942406061546202815400508870966392238362089944307401237203379148720695510977604980357945769743166253795802380468475095367268936263259503004091313627817938168155748919494901027534257898586676910507576264745211926920620172661857003001491781443353703939885940136194423314124284760967409868922955368461150995110106344517075715933243716016354522466092457798325767745595625879658465468694248198976659691949948185598665609959522935672412016994556824569246502455900486762694437094631788351423574578233441299834255396517384412578623574000530128388699950844056815063039723413591076802039548762011797379952034511298302860354412467653934892786057599241085977261837372475207950593444046623057162951488305914286307263530008991142065039116987056177475403162184030265907174989926095660928304467552582939104695193894351208536287184482436521233324608909062671023896920567509065926691565428838034037525970840675847128389104703507366944837167936283372749818825577731425075860151920317165542796501491404457879474341859898718656021025083725541234982586246524061179801023615682551948283608783854011405698705590197646013307026612423437717306759735892012526380293838891821091675939021171876097222259586727405631754297524154840648777544638955829109160100930550198404508265378273049487159528090405707108325572526118585118188109140854933918112144869275142696873912684165045060052981614800863709849148335157790933828395611476284601105521633920786209426928103832631409061485732162647481275040136428998441498113169928514216463380388314569665756148795776319243016685781873354777385977903501826882187201364563277223812420695530044574058183319298109668482149192844773713540719328503290091406889050216289644643956325880630914222127442262696878106502109283699435374729763542264024628400758090147879060842103772465679680662409236822632335447275424702682459763279152303762626548592512140133276701398555973365932488242189882347912069593119476189159479683107608526270137251229719957089819481681019145526941361941499537172388686784270948907172208569510289684935621266529623617878282322511734017696332986563708185175442848565663683670989865703796617633222121972262358897560841946293233316547023909038263635960844624720419812618555858368284839341935342041847148387286625288893956495231822270062275872752033002872159357351280544742444345302221072619970220897199556808001267473641008283834298540604259149809030639749460551612405433159918394589674710458803874003679471168954487582101971640603435622390714334970157228461542071059906514273756457315830689235967892496295748557831968525987446356256831297654329281398444625952174677847526065256175496779317026823180959019854464963767005425644927162703729057356337161812541149711617192561897870946899706758444935360909925213729764916942733226540537215664559507647804428072430842108667124831310053753366044799060716609257921676770160250648528726455972841005730863378811614263511740802865808767327755469411673847148162112281340347006804666183797675225867339569634184220739933741850625940504655929893848009326456671195223681753832017966052009553946278272683882072354107412511905236765640637679805809648901796246190715132161175181309548772723498840968385621173718990309278151202044679792801495148085488850808727370810454299085818570561973362315632908605472553851663222275536260132709473292104780180058487706242471435797098804005788926129532096933951138552077887313233948389478290407638019346960612525737930411664164184363363264414178270743829760493117352968540209950316644670716146610215760814049965919993493042577892024644705569629993624300446214966310383424160902638027854037845979416702387309114432618614958298098879123266825862032347806664661442090013930360967890205747211747060356113682544892708782378090853818648689701637058897212136347980777546788922454502821055567384101307575909227179764541731571798638457186451558918996157330630432685679878011626067667006323102738080888002089394465277540567602421566827616208769753865305916006195956782656723390567399105219459722531682967396191268265750954907939832832458562222251762391353655686004679225420344638686601598412560167292687257033043712986544031222196055659216684459804848156946479834232669840572682798008219492292626220050570814620223926091561971185512890268542186343268330496338519287346304752167962362842200261097674481700384494760184934245736227017754259238476950589706539735102999036168661739166699070726497602630298232308364865536640436806018692306971753844125760875436558299618262063237377824570493446573870725767120861275968621217784753062693567113563346645753424809397179715048222632572061799351088918641964491143949554691167635756939886648406687979577673279564585560891372302438998538364371693371697359119077718545514794164859396725372749949167476049366970077186709606858069096666372953067437483535339731657355567212126900051887909780050741328418035428976558566170012196149608175098318514839884293571474147042960737040866103373756505430918990359604380526818968255509164111471406858634560608255617904175476237659613069259906016460766272888372151758522581585247363470392402439317392209188979396229647142462400070145256270826231333958057593880281755347192302420480422513429462245057362231779232936397851387327209606288197613366129592649235118548538939997880157163544237971899799444131959389747978538604561125122880098980810303920797158151636152439061796659780478258971436778671023349315225083279536513043535626186647295413620162902799251533727220677334638563499365122115884156393732026015708829343675223107916582929358940470117721460936293754313969450184032493309849223229222321896981312809012328022352722265781956962252858840380033510689394120737605660478247464676938517781436844353310517196131490390027869543978982721306715176412346024128463033242929943045768861331399756062485645134470672943454762773695066887790817639556207107564962867149528602610813893707912367723283312794803726215516790459592255728832408033379871138803308878252857575858938642200449404635247493699830622537886356653745040593751207209074436166649746228556118705418919940274067787250960239518494152592573820055253983699746393292614493393948676324840628545666897465715439111041032114310415779849682733023693946316676920616225559028558656338500510574787363759679056995846950365049433713271353386265504743607471732370656870636307399960519929909181477105013619639757325512010262761521268495805180497354277952878454773811428276112028135029977964151893642270850934503727698381975749741916753711870733845798959475412764663233027057776296909810994449303798868988907360793972966498711496462524103244227753175938712246884290855613423560607439127606791145438496655155180584571601065195793101456049667400192162505051591393651714093613450424099005467545706235784287420862576908870027382631995916098962427469132535558662197429456699072482841109660698923183977684734256023225943638734205839911182148036445518917047339364351824377669223187028544410644526611078347533154017476810322395761724774254540023786926558907077547620520449139729467850298272491516401193118658640230273401364142279012808254992658409827198034033130353352364091664233655333177871857574432002074683403088226962528961968828764604613071841910931523047220256094827016055072556678602529894188111905905859934070052578447181009524872161289670924772623603003857864161987796573221118114012701605492819797725830711077516772688385753166189558784909507139892850642945165958270835595262823332112661672558261712729950557372630708353665019548820535002573054602299792474132974662547175028403048113489166863295485317932960088503572838507566073449378465248283319657431322883446413750714027577010333614784560266788083947838461234647594114222890995907455848743351055297263073056481109973071449979192592557935866089264032120912046651601256727177265165220509787229565590525129515669410563833525884556614057898804956039810750182259062279965117983411233031401540526599415353219900369771085892558785831026018874709040290835581253426970500836317401784509144496716767464448342487485245081453842540474309447844212258254402056093080601086444584193261912593307480286913821725907914257773291583066803438479329155447317713924964903652287528967852949264149415364151159592197377172644927984760253015940518718805189966000538451471745049973514191697465006689484141632051172459565938129559470579351931960400246999746066695258781145034138953013766037782496641604145886380533473793164582636093583840768375493801910077447423418919032518485818110882000796486744116871181960691620311115096465327003415419429804207969813561389523352252927634562315589086608969180847125074814784777527612228626338148393195058478761616840975444523027231296365895570036506639582724069354652235626494230875886803854969378870815894799224852204507274170491739504278412402898273890373072624988080157254365572226916293813537953488640842323597226107263587287349400356448107892150962359853478420439178118978495092568758727441972850511711021648824881829226210791190669833991260194822536515573836383426108725854827763613034285763527830829059077374592660504733444669368453028169288718144212000515342816341508475064302961439832057042176245739167805045966272963980710909786027074549132286013350402262551686945649178885199377560465854065736131008529922153929820888190792887218497428719689426909683415221120404676844443629732211920916604213325342161265615395378362253413250763787721915386570491780511774565100154347464159290215948972395993773706676145894068337237962363558959341171530189669437254555826058416976489984207822585433871094683503809395979414773137775667581355079033612100980204209095843673966718692567032733346183692848430610752463718889299283702679300069136013121270015879679576003309780020358703668081055221551017493854931567949735409885196043452867646064287647939169463629936184878698500606463583772051288870383592410308169967897180260777620580156819658449550833177108209528740829135409006962377914261746949095189527172170457769277835145629932461168577400052205346584798014835308910652893094950269708016245018930157950383152780390048856027543776883596891868863610381876455752096112257315667337850032114204661352987457662972598223326706565761736731250629235632843017216354692657007048927686957949206174567651290024187364277989993021863406151078517161336444765860669995994363751107310602386089287958990256323830696404951648155038658151979173858111040731487920801663093002445090263670348299542209330827266863126008146109089733741790966357910377601646244194993831762349444298623629422892362133774475953303331504519362286989258895183216805637445179204370063622242844726588304223681570338245624891964031498437158889897012435007609440704958191972898857896970525374332616541989945360415729265152563546213599441832062819820547210128329176501043493042456372308042043428852969407333300285187883150418234851191063670578038329898565181149897082789708189144993838466445655971576861015644030369518616230318726570690096329548198356365400912729635508284570666845883762406811427302726849827966427249612444924784063810197792205595284732410537358786445413302689343693187677518321819865403075226994185294258073085618271813756817047770468636484910330850950531351671356192295375923879592608100795634085407652202082013557692035578392172944117261024587085759694202094908208270156149145830628239984656920613404164346425342016246080517945706344478528166821532219323370218650721989714452331715338602590067330243248053906605031203834148655826590839464110990702470235638064076311063901448022636543758996780748627051285949478260918849082704408195981064260448956296978714462770049585067303366359451220977930691052539083962981604158685313606288859516255436028009967729223220291125798897482675018289588968917570774329524466881406360711936087266250584814563027133481475095002280003119771727620555676113901225082194874192799979947739425661973806328520708727473796356228514094678608806821234005496562123084142597465484834022466317180240815254151577184950801357781617266555443817606290434888705589294170637779801565591305007678953861213124515151935950212866207245580491076256813123462755390045715219760308011917019754886039618710419150421944257713157608779484841758568823478195115456903503335598399753910607269708036059281605921943988333186621860699514549127060995450125195435905888752884476909129956596384015426234721502192564021502415373319272132636172556875157880019965281016280646522394127076726068744217937241949926684064148083771904309382666257757869350517155839578842727722356295475575103265033373187725954089566675334073314813503609665482192086079194343756250913940303990793852436848525369650949299768250288811078267879199585692133285644180713789763769717105373490631628655877581355706420180284241011979872699893747971258643718192443352699301446443959909664101289368726861691776675533733752991205616697495814806551799793488393351880142611642348860665276347820683291600236442172936985399709890496962254033703098494502011335500812928568241168554724293547936267309943761035629531437133942133508188895093168107802854710253084089731432881236327096397926807061670352672850064210207447352420164202182214698749735934863559560185173197578638619433400749765401275542757772622972686608728660842338699839024373139512688658075097875038595017636264035160839809940293327132591773285477778932137029725586791682958840053147494754685119613586252638714400348125134466100164547430221841828858104775157316072915531623849231675305631917840280398163217787613331208852156567522634132742921937963665379515326949810544153043836309231479911181841423976362966800131522553614857875555633132163430699558061101263177643558230119258097884357364593543262175138204982263503044181546075456357737155205231367170705657350866534310513464365695698170272722434812603767327685662573808302754714911533110880431000266790800528656143698282864904721348240730160100931778913991606683756100245126775321393432375854142127125221907590219335432846852757139105431363982946836325494147468829336188608153099447616826271162762768389456634720521892638993093737873755182469833479740980727441095340349747258170145851673533095008473924400729303055426621259905666399668374598969591918382812912646360338168626048769156305596736537333939979489182649093352580356231771410618808252930651395250231557094582007021317225894103946161865057201897206462153453271822599156400628101434265572463142966498553016773471518915350592586119741978649089959721097272585986543822993130705011487760176146817378671192026152498019059191698230878511334589257158474334521037552383494012842583241461919836537424594463219334276288751763666095720445787499437567903349009061876634353327606735841854508739668880911115571923780829227304045849743663602589567216418570825087092643955598959377355164108049865772409066524546081544900039131623285561870943199218136185856736292413397161282101027549100719955851767187802530821607527549932168623465380078137912477431806174378323715782347524064094074072523493045168872238713462419799490098456513140657676211197005886046636856116212059997164964782920294740923830133024498774887660190585258178270102957952571561445675442313693933184599999191956856708581720218665090740958322568033756569492367807071543734646908489137777916576137931729041254559945484613945152126788349628450533691980578263914473440511377243319563410327461571017721742481913009957266574820383788037055747501570982525854061352195734848595138614942370591210479470289117346991367581359716488465797041222464369040557896457426839124234573721372069754532123515908668300287521498625806527150808119256065763421364872494574734686999336788217530489388710675432113498920741497102225872568665657292909574768600805733584969991257138947559026391704847772366114327781840324169872725955734043914999026191915856115148530900282119456573450060308576052737359830481962188171863041034449255517698884674120301305899177023661538121801715795854456485537619482000816974974053997537236393418644773387849608428244274793333931647519408554704719363602441278831361532561323057207269581594140033615115537638754093584791374144885793718236074117214463262724156413003063266199296756679214407518759156419539323604236787805319526352735525395822441933099578922684435080933747025668624817998958844527074608469438676758083692329480680932326374672108427051826449051570705480861075383086440578775516901891459932110884615928052862333544675047802379541232639224023920695904456617632803445596436805244094727710128640902792649674519670758783407626368793969943568291314034676577765699221329811433595453846255155986580820776661496263475134015555843687227717291318533481129110715202061335836252592426031118419868492042642779432808665797182503823362067402154443161879073749038813973121992402931168703957659085765883991384236153497581879705611700814363792285603221197906006167313440579237837827189791764185874901652279326246010005843665189647779863736875882369052903226033875492885170146969088372444803386077552398264787239255976785865106200715494861357013639442695907213838871388805313490403462956297234256319245678055873688945995300160835868638569953819628615119298668241706798390152773178572889583504761708119071571425620008240327273751344914280424071351520525738159025623321125187578651771766851078252980136206757820296341076776908555903682098042687751342619350679821904312919329195644429196030197842946391486333620468082624847995565952408406272493299331623584356893085785053921039431373267844601398911177027396692413586741097884523490771887944298203019674052956621643495232506150384343153733705012060697266018738463767238932777168838064984978676919138168754132891318057028743521011967005005582614306849148858549474054870787235903473332158502627514657397619687170646383464003403167304818985030369489418630999796261284158941360462733588643861089040038945331091042394640110878447818210748115442380330270395579831168032482895887524659986259881646712113766151646909539005377699161640016690573114562165356419669530892317023261234005657221862839367563539105809343264838526655985285209384454227887839053529796318601968761806101434256612817800630768631924820395469547825270367713042514891310585024650653531556916345521778966658772572206646531400478303351871858767428952209067048379705849149341383164540632376816616445137073662709770187490593765739272233223620601467662767006519868077814613813153140238322021416642207792386444123647475195178736161272124970659407527801263860117836948103269315750579577478845962031552807339632461343598602654501041951147109799279774218999016070511324518427927627268894702632315503613371680250870487361964226180000611758127401015724919855680524980148244697558670575660514735564817462869459855361005338394673438208474621590088630182574609305446660095879873975293604097359676480926815512966334870130074552836307948683118252730146734672360639014376462043751666386881467600411808317517225363039883530395707795398514524404217538244071699025291211963635029148894210360352219711476962730874130535807256583555852694437892085759321901881507534511671070480613937212354384511621707729111812243112429485313755394774827845967010184329125966596160420440211509748233625911665012015504128152075840354609950176082346062229196969236804660127162440496109150955999896659160797816494677778758392444823029570892935784942578615675963304638325637289018110265380204264097678346100496925633514480995202444904677824523155129403829113798883422015326250153017657411617642818907729683716816538857205685601858846442480868493662415590669933612900232323951931572716860361986838800164552299355942601781592099695974889541605064764020734088586740719963806606289420848292512937818415595724722191621501420325583465879955352441528313148198958972458575315740148734394419388494304834282455961142903184354478731670385613700968844044328712162150808169636807977784241132121134159108197654691662346024378103192523531201531289022171750154462460069736345207728909340416575940875704588227232429731685111445302346025267123411800624644636497168494682192444105235901353461447688866705946632057847863322674716877357894974103382230704954670374342827591068063899284913785830830960698084846485166702127569644369065084404041058390279720696902141930924845220450827188392131920596235309785906719041617675606467793130151840684851838532586507157471051126407077467168852813653473429951842814347842595849907011484147652018125281282439045903308573047442737950449580137808191412322431394366490451103272870120371952558158152404556057554046766581943282553564753957566089443170998921563529529785135660699990793705378668059991283246698731785459520751180333806440813301115970807849331946478738486530605620953331970634528354998078319202518756824192147361380383805644809384519326090278790957590627617205204362492136899857591046086053269256002953732355335903007889735952652170463626816748709323398815402583499965855320829131853109849965619050680834517276285764179886979924797221948625326303758965204908958182951379781859127600295987695907000061134749502351002795516041965932603506113905028391367255710978827414300695632783598764408805716489106787119960971706335037009767274083595284866694822660222830535489591522527271117102336742278413074109113593249511054021360450205493609070553625757178388982043933739941489907149547058112293496112514177079152617902700666928413266782846695177444975703163296849773711930235749857632139984312812600327662701615456479683929223820504223872630475584636982819695340365660138376290800043527214695758581382748776996716435685086067655934169555574511568228730254539165951107312260639446812570215278298539607112941502977164428886187487114500457941382074313233215271966765495864245974761599395144888533328958947025810450282003812286709356639566971211681287352048782252703466881084239901236358519848680494283954056525593841068841396410258257461568300964028564228726192076816648625486735865914902127390318321674418136959321439828305538156823083188227406638596440775238768108089802996801400222626361118072165446232984842147580390680848374246493110692661693793474768361044658311454424332614020686985928464089463551286436388112779049959710900427926596253175561753089096341028698735820537246012342105357265582724538336567996009454809293535204977114164665850876307042355432036825896119627667524954956098929289619859738399624236637926126653056411484026557203458587403933048984606444411304545270029882544778949870650436315139280199657978153386702905671026338935443924504583465330366995914090402973783599550569258438670902355431305369021178674938855165919713925005827214420870963924558454921217628666478591049228307355043074052930538735815900819864074716617790812222386762328577261469840778187839080884828488684405079598587558383165793007344627698259055915610871683760362219963573300839664666626994549055041841734015873144561342342708314148213903785239577115488645235502757902230086075747527265449213934996937070898398831266683201394293695692788466118669896595663939049408399370013098942172936370299551458479502518753318349013338068237032830849039836288604784805959502448685304138713170592253527538467592434539707332686994001502926922730888766319799207748770420360364647484114515178821474885937951369790850145392506295774450756278705406695995239559063708815535456627171369394229429040180874080063596038538441208007959971255214132160019810443304049390974994965825716754699078109579431803059875018386513497997386862371605762848206222256958190404023193457605783398641328835469773537132759567494807432049116362374979503904267037807149187956773842924552177704757749033364338824168689624904719983441045871743624791105970880440609839779526091334362027979121229803766952727168686194518022779426016270463430402103716794860563040031324405322438293097795126391956317848670781310915024568954511846312993904413730460785886114565710490827715095164889118433139481490518089586763058368716424865799934895076389373773951971815539004811173943062899083139868740442328954786598071637507169054467590728425804697157601378935984139264064878563112207979350632307490065764005459659613509096798397465489459744050862164019483833121784508798435484403079903101123499009804114394595148215683067473793830073142985291230139324177324728671765774764776776766190547642533919183808453279405892860472172278048802476111582373928791264868357061916866601833303746622972549229806820810425647583012030973995824185912252368237884604381064456517683679501082020580742552729646390969858696174178516414575322017560808693850626546332342418600944700693202414218900071171177791062080593786125581383380279650871701392505845923055707161117248195142475339174962989080668651677115487579463585205442240734722436228973238573196599216874090176463890785068949743588529312615392942486597184216943163980394336398254552905042836339830741533005406747172107966871223032278643108541047432158118083800958067975312612939300837675244063214409909384737870784445319360403284761393507617859161868838168234870759981751393358640055883325379797697679160478994316538428402056278935624923983051824248232685339762336253979566816139039982746727520175317307210234822046400069362443172355251480357233487589565091280279331007411768002456840755472452986261905216501935533243259900573023990963829486376614410534897962507285362002877296907998248284385640436218428586511069039928249213205151714281956071664425811133831198191298244785225901210497010451521798516313781270658034625384524919833466604409964874503837930638220281679163206375820778658347649147232851607534035616764693281935529204314807237831357176559160724023260852514521094769108876812325706560195715578127176862457583155150373978534104745749393026311202767842037346924159301116177864967459677896989707341267188001130238293830851143196868001028737577159850417034587447299799041086216079656077917416356008291500009027443625968242248351015317668066150034268484382195112601193681649945673447901132976002616030126565940925002216740217046127693362257128024288990585059900180869994199837258022922203127151744283312363400636070131462643529528068694683164938420145069722784326191258540305376130236006581251538160527646844693320856134498588278263073523889829973002472139136174194839870925217942559143094297787989749621424107468853135964486037214743435821152479175134259493367867073407473201105092537877449212091822558250500901214714613060384576031474672466962545851838314628236001459778060248023195002906021214796150213473850571913946428970515730808962585922447905515601760671353415959008039218285083846051115980744972204095834488984091142859086688126175440375703384852443369723717752418704412049619546893210581957572237905596042679284088094333792926985128103959496534903079735466186802642666853971466006033571057470936479939132395893267055661016441340078169373449697700571037548756439962946207285529497572863749494896896153200683918965791419691371205272784102335109833614747482428078379088322842120758826540723380127560112905549982932086200250585211217276538120603289820883199712093452871507082380270740241604401122295288002767944054980024007687839499575462063542961200378537162937356015712289190049594885322610833279105234849469480354353201223866652511734032752603090221908719596235758990792760704838988189673540085469547759852832194332371839729882317613285641461836597001514587718047613974026693256010933895129640165551000275562649092588379666971204068604634280645394829054691072923244322139034020463667117520534928217227694248505864035653234472756086482625903951411001213835060184072478281825304424196695041997544503817399554931321283167367049953416582794377476576340521408446195496305128109207643649393209702702316484752207023596743459851272649454038826781152659817410880301448571779943099516667679389026517905203753539153544497857572576728604138870171103977077374965419489818192099755902020954981500835707765345439542434534638911554598198397076778399594767074653936124858594611716147945347734155340181543017985569486273918463165102441575914716984805263253150756503321383865675263400813914627370795844737000490312078169951787678807240279757235283705673903089209951742945384028632663677555395556827817609928146409014220182727731442760783852318130465874180072656080074150511574361659973108463397558577402732694682616738550723950144912483819880533934031856747840025618741915857821984132913762111507531691420528853931711532396007948066951966482928907886551572977120414417471125650250107002536494393126408760417927851242377255359221866176296067835531670829996052443244895300099830000778855424165904982730754035774687221721013355774181803266394172668464891532397992899528949800444810670596046613301792104905153603235163658353485485432192362578542909074309137915999914044593146191188734991283056594384513528736537434579525316651969079703010270749959371574689054796125235876418016866304454010174242731777994737001008617210919890122396461881413897602091455229655937886259214266992060568096472848027100327824037234441457736920517769537792816823559872411657222964569967046310729320665579674358251154801588547376456353391322921362480146247625612403674677347438692552128270494816239319038175650088954987924756399880001476191664288952360107759061549855378244171629995531473710195809657292048608296809940275243871016886467977487512114210218801522483114475945666523681877650536418787445867177782357541971571637844915539105284049183516813690185779262744685750247132764878204123847580239672852800006437550484959798658381056845226658295055164669690685708883174302871770493963208325413831440827688435847861831404424884085559209763530222511930172173802230492780648059342890262092813959532439381675006351061636387204090239746110687925537784041863315048156923094391852947576567484256341453960193619634176746669780723256856051143299414250053734622967567712582192737897494860602932130468223505182849407724946579857934825906563247147854741931580313710170831565599062432873678796845421564744161014253839019047772370008554071053655815663621682891211264589070107694890037238267572154238178508662356595152010780666635869333027515358676840434075405886845990839077500585673090781803632693275580074476916420550196431031044955075770501523536207627759784587584204744942474124854410058710366328907431932503638650115498253456896274492943366401736223786664614349997586140962449377402087744063323196052490068581731685631382784536598235700171308740545044937778340160416738908334673262674245383286435614358727104212079956167007846293683103414800431254600716544695835961750525252066695874626118699226178300649324986470584867021297942756717814396375657997533341782341630821838539608245526348158487202725199670263211733564999363898712370664398922685482130452013823483410298738845768418230579285143243912727621242441941823075528407184737808220473844588173984212590599149958352373159101291421774406046415004495525619148941911858360289509926717045741493377447169611776909725644135095118127527083754390043367993597375122370705401594575324803833944014457335312404893084835233518173043299213773698581151333201738503517099245365120328678291656497527548069966728812114870096309186771353390872195162033120472186782160549416068732308476427422656831419175562957586465381708426615020680075120694589365281131826254610367021181342450470583759258024249137054081420567378521296636602433191304825620347574473013570892316067393608114043126361251558224785164998488158842762290427229220801640070959577080562232307520413511832277332098191491013863322665018801207133190517674797729597823469952081580264574313293079851140085278318852318062634371809707049038084950357462135737946815689227446242362342093124166025102014216478694510274753177986865988519362009475763202384577519952660717678163755782328784305697403488412728530060103926226791101375796824756117836205189033864447886967669694470967639817682887595498927360830735431812396039336816570414714020410105135396441013851732349370958608624813591036768016742961471001813578535664037244414357148684487132392984708446529930384626409250024150442120232683366650506420114076916132928484085619596413351082428627701708302086382549202857487959817241482287578566619112569022058621201955166177580577357105485702436753423889890621339319211554131274934991298118517883807029832421612462795431261454959972944165149551743035742260648687995352790424519253297755522671501648266390055035686185630688204368588659997131803842297798220509173767286517420566308442933431669851968004923179816541983751590635383033632340040597768394227792256598698009540218515198860227695648858644082830395460468980726956410152638625546677024480615386921740983462585971226597882468805201351689647458422771277551449043925021578305432977586562929813492846137118475383857500623345620295117170494283154571909213461779300022914025473283366862058376155823951835261199428737613637086580556402335752325574590816881313719180553648584769491358014626875708978379477768043157609296365326797342129142881082188630170268538128479829615655948875350296903412996917812325651316502144880960156468406808850019829901761314473031380276760175848585415478496980990299545352003320105790931686068098952656015392535702751173133392175094635907910070384622486194100257260342987674772087736440552161599555204212783519083055802053459237758764307073824313537350164713380929113101776980144452500170641141871160886840356257801757036739170606669174941079270915994105276201046484362245213917525451506576578314538441226292905185202635532067454567973047632108788937906565606235757557099918187875406439643017652847778010860985874182771572813587960308740295728958026918429305746108879170940070491714393588634323525496608167880758951352798999451769015023837841550119502868390460319603360626160173547401505262569002471664625257385010001670569556124329578012251204689944350497258347718518630559595072572258467528101002805656852955910288398672221858348877394592735513018018437055596772302198553684124795306821648494442542162002187124025462493955032428123291541473793164276656539909224667637548674424599676148777605984826431555892392043362626873425294096590698295795806318886390911129106113015840323059704411193584013375616374638152911275802972452724881607540689932693044013187296002154627581348146520907957038065364338190028985587981437668773606808096600421043494614127907364331951784581012692220180405514117470403045026789941916389795038521915011240905946694768849789574779525986969775779143722317377615441873541574797908064469523908481449237831029237408067905859946668378535840505332558100879649495699614567199157830702488209447678770620995146528593601028678295664174425518637318190438180844201908863641322752722693607519719442980136864524024857102024761837516682015263589725341448148677405366712054364931045056846775594462181235791821678605481016549333226727956068603790585993431906636087477224602805470583541843309840245421484209548372235029031228219745143298524407668831179092726441268608490799691692273493507885070354531166886001297413664491142661647308731935971520387404716086771644259755975109862136678768708883922266289209008621894325671012901678867030336656849082271188812138484480174292752455605637429753084515033838843538251521190658254296645487931576879498916450874284697713951478368890102967619177981361029864257613000759130645862195800063713225360180912287793229583423086564080491800618165080397586922702619056048871267637771908611849636529135802779729688019579325113162557250506412731040843822943051514030983780694849725587325878905875620544263613788841562714652203509869761820994561813799013300436246030722593777700192969986965927588815006354293967202053484975368293450288254128961736874034379076337463263450722751191054415186013741165320969511374811473490647690062026943840569830166251112308287467808693063801574073386386413178607568372339889055517872660822405611702586030086589164195268548578486032013160754243123207596669212262095578127280624297379834218330666479474614402080621399689264312093093355021596083110249870688009889161376875226399714365457711506021137689937097573796800227688259344921077327877428334669198555353978117156805547986312231194867624387270056699774500964977540528130369355391286278938321647506786700765922883525821795273276884204005749382593737111176411000352700791795292784858752762181234438849009176865011547860475133282135155981546490573678321184557472905861646036041219044122990374994252265536285485163355059272076543775269253690038928368679776480478933203584872617815354669609209800327260902878868168911672801157376449269087448758085660019416582676850663753152322171814031560292859008600667593405148404929740836603512472233085905120189517293233254009139128094712185081150261704673810989729579532246147246648816626277550104783929179746131738457536606152207360900860594053167468083737400052999322851948853074859558708189815965920886290444123465503001165072648226047764181802286684820223200338677738779053932362244023415190535902657412601219530710379681415599425593992613055545823368295521412249879070577833714140185841190548800653662950230036853490031024956815972107257433726271832958954558840511159802864924971478614736114003618410596685845484568510190648185550054024273015399319435944532629554281414537140630747621974589675545501799667318578209678677279099325994460006866483522412046378777242656168178137699123713166331842484414465951308712952277856903122040594051088738951671344254414525853152374579355729595301316149830060135839973176723115939116554599179380583400924764569233461876080736789458903532373254555341254112357698793499863341724712278364015029049660070891924330071788219500351477372052637155792673823909041387718300550766000898139780163916135375050886488120993283000738442945516072256997525875252892109634994615026682167814804291343792452129832325128429541580981535732850392949751282052559763318447045983134244237567716809106857698532615761154606546930494445422689809914023407924753688755153949848084325217091380247139505304780538867830624400570766703636719896116897374102309453635350199817770439176861927750509448733160705809116805410812219056812099303806470424007950929596907823130082216320666074207982989493687880257936514207230870847243327534068393270632128527433017233543603941028837318751495534403169052761710829272989472223184309123306237274593511196265732064472967082244075656885833332557132730809342160303148987198886635598570637492475715382654448460365069867614644339978912174186973975983098336399068394250601047253935304021569906562227840506622976651606498403912359956721814830455751091337137837485040357687458105054412050930508833783118561800602964933698909116998743478789620397656831389727860264227914729311654526227031466450197669550497886180284089942153666123384689153219923368083973584414966032940233567962979104563596243683988107782478434941393535089453141465874568493355808504090810446757108655696744848957163419633803270529719097844843292947762743392883845144902119980239229020172057063808512046697712387269412115728696778489955304406578610015758810267542846965724955408039233956155929449363941508434079472739760816677064319983303321534012965442549614746856325954382415363586601936098114557881558046184042648984018989392997575529111263849719119516968534418950376531548029233202410572532582848288365477896344725568037962403083399813012212532489485634764204973254506319404013879370761272647939967015548072167402231661888609805697726091397253576642066043009738699584600370420448190323170110873426464197700832826035184158093246591159845498087235774142794210067761774154636348655524649052558879266098124040873098273129536912346835807754425951978422715228357532556521301423482808405875087354224546368457105791973650211966389738849617039031843235280561165523809781403013365231514249021926379824816908454954993975008635519307532254631611435760787579104859478716993054073085402955808968729260872425021590737426586230824974069359365262423946103727824861237225785238683768021476669387215306133638648286914091402898126756037860047409681322114633218545631226537915587889321635752050390342282901625927870205886903482102298599476731877864473157171069256223315805386546690049317452235436760284652709004860106318383197289058757292439044800101254591418190732861117541492398456215034345925270711577298527262475202418309073212733028708926488323987565914985023222173716998816661278756591253863574654217067055241848788489781765023409826053146228021268497917396632743494508765409214623095428420615931741247053913703017625766996214062094744593235044584743728975417476654343201305368804619152707267570173767649122924312077381051568839670489791841938700377348461072965191580795482592032914831660004476343926867932517245403083224158425262671285384005235632921297213826656009229058140762550226103602756142301195849944861956786157040354207989917196730707633155220007931303265293827514042545368844025849663930191126308112658589127276785675345369887937221035957846971409015940482916785290702808223548309620136573487860629377712204303694463609623928494099636586259180309847497713376216874102538150323289328896088258763478710710933565098716834201828689636436894040298843901622975965432597511905717752029870836145907185086973497712453138784135969684699332541543811913086698260706247955368498190492303653553013039884771029138000546488123938584091887593494701395366039774833754832521816743952029723666604675633670139029036851185792916104022329492340193927157940195103989101706132397764897418842661596043616976082980500888588268994476248808690059428754881616704649023602531775667905407646761541454141597965928618512905618099340145666350404747563618917487769631545782139799035623017298078162526657188409025406414597210251906190932783970390280533662104631177970148729240207649912089044208715681464258747514314876384615567185453163418964309784651910670757522981879901133032327919829127674600581916425186979718561519631544067374167283170992905712706915918646355850966984552759109123517840437258191986961274366891438077596362419128927559148233421052687478758625578927310154437880283342512088420798101599432844487654018827138484086650735881019584002682465975335256246817661380975055622745478504967576598085214236857619549201779258187014750637124977340652523209828445295759819092003728000702036436271799918283346673648365546815040790403817551041364077986009212662791627055244569054336188661309132729675374196019391324496075895774436564180055254265681270853640720494249657752477606081505245092358996732249099734379227034688874273135910782330299943530992864744929356224975310129398689277470109279079706240237078115805196370635307647744118239096865198072487136870939838694001988080945685741772822262482649182508412937277673958549697915478119192632213984013341523851145928946265111306502728367729568844602607061429621283413127976580007803640593748596114109765225575012054793177130106348453371866415650294827907409470621238874916802426842082740649497689215828826610125751145904743998456331638067069426659625552271638012072699580918517323112165309762065602533099715277989818022381315055334768045909242502854601191758824655575600243543210712504747328553109435465552250533591049568208349110651143360960780842983309329835603973856338275544631815371850505456677749519770622569466451189608284274551102811185927158656411992338951327943485651814374224702099780561126781942946940093008876795469704228824612002376117391786329438845637012709080607649359821228781452655376620204636539223964866052670597118867002721756277843608726790525529061674206196541839722409576494112827551326595441144441074208706619987454885967304343727528564332938623401370985103067979056476389701927861592503243626318739570776764802774630785077094418007302305942550073493569878462378195101887917603488431181092776877668602330760879381996396168762002467370395930122649315717113902962834577711247233619124059730211172771654854522072274124173305382266880517363400130303560803925320875477813167980180024551637587771193395494211626833139689599879722882200373422251272992529683680094703880248361666864763261528439615543782094640669377676147501960224586282162592172696366944523339170494190894960834332066977490856178200297636111726620568137816187306329715718047385478122703031576010038147350449844334456939377106865217222165700414581405453329461956812178959393046375529049639913214808959856160350285963610677635965371118370755862930130479043964107921136650489824689882389184392037073296110565078257135220956834684243399835464623450652786927318878421509860475706862722920648064762422595351146325002119079400770342664210315015383776202919582557787587773607275213493412490812524020648493233838186687705615697671433799748535973126096098041940758266081860775204425079736786365423949383471238828960321568381249265861444844458470369849209360666395643361365520815013069519239093943381109871937824538822587212220896351578763213314553793872434864703492015928563561065818453802632712237592811879001259026253259580491647510816122129747336111544565656771042299225240505170639512534348607372264562661497075287121721093665815810479351678678127297003965158036205123052191537556810785219937794232493421437945848953567345407345117231535776908426427367150399793273476708398676908213135345337401117803606744816010700481160435037616908110977430036555982805560328947130177507834639079112285681211943597871035583530059674817737189210245059099026962847880103265960469253173151840391449021254967440177819029715191337759399045495652380664397718325826152372734057155117947886046474834584036163300806478089485696667008433229650160305013535441143615708423938130012568418744194121204059874809304470270800140391253837315550269242098539828214980494512345467026623750802720287456567719509296420189166932274220010923030745888895505345086076416836118782840682402415176284724504974430310738419633733498220684899567208440254040144638904258590465693737625455939407708617811165230318951004209485267114266604809660832942579282605838304757966053305573287838511181916432313302780459001848407269939706922594662444260744452518622579467953399870441933178653332473155374045563383987009721770574869994188135041883207350677843692464146825566232425497307572966968186825632858903318389229163582804315172712074746770220540938732435056389833769404825280545031157171201141098616176153752704115363701548302469895068471546169265920218650439129130245714593274706566244942675018185168094688902621421897412339087419814614918504882940576227536617534831263675626951753895149601394591195416273697481626336083050488993640376745929997407419530734018146570099647238463473280592689405048572643224155076486009594860134661910553136042277195430305873169145107614057705439719545673233850708254473826955135366307073023750627008281395003977693194270616519307714430297729455333985641944413674787838965867681487467484014949749459684942084498068930747498614392414714081334603581076534316673089468565337392763704841307672217255675978475174952297854762406124384274346055219364230153180292606452991959639530976694724766179813917107550848567716082951323422114471912038137175651423827870710390404923668041685862412056693779200825931130391750326793202090588577346520351769150883258734705904272004733832727298007508039679794816247399669313677902131430102701496413337899609547379583410322515478435589051948383741947729302900084841710061963366730335284091822540472517337745601902448676425015964772931496700161229894767201709920946857357411101100595280751708037185683051482828475518518458250980138826076077391318820185979564050118697348914487052493698699790055275220989347111003494699086563573763987931192780608219552591410570436564320266476060841299180506836788405051289705345362845227946732899906924500849718952759292070953799576880002881319179224425728203330170562144916490989562626916234895346439372338153801802368318577926710220450815933502774773739814026897791708581723118479586246772614907792953457583183916363255902019176299896948123823479752845164689696130551061364658401706161689932958348103743846732108773991931380870441639694099625282296189768070423571970174716646781648022693284310661790601056698303592884818854744887538670554631756805780919009243371055143002792971246899104264700728543556551546037689019544649224718025610814576103020296757976092445612954238972314457374738188629451424803931251191509974131755812760071605469470667595216964985649436732677996996558742570183673594156826458679071358695648762482249401776784532227173425149220158532154232856460381745398944486860196026854409886406357363714623090530283805327984598580300669975985616466206006801821141155537189220168171899314275671226662795972777718862360733523338330644162789950502794019463288935284652455823128949051020346222496900186129799822569005893690023222056339616269162565346377862017753555665262039155263242401034344334900110743701591742501217753360926082893324865069959733785013825498009003123845784253357429355578949089990568484123269239713329495300279350483349083060416863559622824982441047403281244162605394228962229313689466532790899721421036398337726690156278211846981200500508943434333529528823677192220721337882424914833146108569062827311736257580766941010611649693798787166814089767166217793280170272557972129633844596510547938012872617508397034113712074066490937215017406805976828423428064040982507644793236618581897848902904694690583357665032440903464885418347809605036556469366097693814795072300181999468888637936926328005781535457296175647411450553173703311119973577268293053425557809463078169065588417946213861417358701066844923003361271910342752115722169923507260936992292697964973501482867443664936227192347145782896543781970053591316757395017180557181758034548399123479465118320396484907230507914857876581404090466189473559636038733287780771066521393836870816894975719573922286583966029687472843278997893255680993544341617038515939543994490673485186602113869258941803768905903999252814219427738476858879663045609016947247413305533015885190207153862163221453647794574230556769456235451882906880817461676171491054979085810771165222403869191607356906654729042385559175982843080286199461808792790846544411823302778428481440961195266593899580375217404348492075441565063028551414108381000454809844294022537216474647408917864305546536049526835856223853816002739071017190697360459654158597202175121493812782635575225363824144094281684042445272794265024303934420455059641684050485074001719070578703382611965170868904585001863562479733206250782080464741660248666995639526197661655723833352976917973129842384204718034011522040192195738751836063952776459101725336172066279753398448599249576095299172249816194221424105008376819225427533126711238611527658416138812824909971087581890330675662676799748690429515931812751595099086577421368596838173730831374258233547655436492498593611908814217654075861405080443117104999315843452183625335228469886844134809521746256256062002963171098577314370178344346344288305470868543401418907323620220466492094396470482744701957317801289283999199830146417780927799029410213727366209913073929994207190870522750279915057491840807686819371100966359751079258596515113775101867912036180049109075200669125320817824871582568452706908934788484872758633427114572292700751347687690920390474037123100659732849976146409586295733679438611512124254433107332440057116262175883521270998989622302832833569838035962198036582552528287391812382452351128762570725665378262978522310805181816364145815635894131509257257194817280576460962277889927953484286867890229039995781821181456093274281029373180151318729573236809990692594080607147133469950382570821481991210218122363328639999163884877762991977350538234530329673948942735707729738796529175108115707407522152376253769698220290917437756247587814022877431741819156641190962573420297538200615253715967336296756095333445185868387101504496175483330017198373977757992648403690733913509921338392664490807489174234260430556806741620842271504306078865984237903630330088441898438237408672590977114341850680000192189152418901834482864016636770519615480529097645262401401497792613034188443231408554033703363214369011420365400892962225024839767135842368694928412719792512328532874140066249986478042312029031309629789789790177610590420991777514569882486195160752606768742200417190052051469322836727431566426871593260686656803812397445758869881628398401900640065553256350340897544023903090419342960585384406954059458779016327399324084972132760085686979701908280650685511868143993427040138936469671076325313528205607742701139221881501295108591927387655505520969288548376629069084598673143607831197664444427102600265313461508386733723916310685414274052591905980464164551332266098040098763279635546134523746085932936921725336198438385685859977831413849103790174217575593620020850067051050023953237943424904759026814945436473613662881188123274266445059522213906155133927030258572104808425343748993484462230524229459196188415439602909928913560337968202410658284614327943279534287785964451691956106246746120462580504923128086941566015974920101157562310528681417651087996082449467033076248527942404996361127051123802515723508192473422951968635659330349605960715603010719953475912606515167358861347119045183317405708537424108085341084278426277350765216279771566847759822441489777739756362851973985709393264750416928695677371417898767051807352225173112816901228984362470867143166614040273177835664275135942772106654285972147255742106502371084854668887025708583472283311019197776664961118827662128834933137432024882275055905409188231782406882047956752391947784585289056741180487447801323095695152140829664130361215155048985583132735464267101206872343107091120964907731232666266846759440731689269615779903406555868175172141546477299379211223320326984779558373250484143697994827226278114352370961244959502647050913254223464173158317069100715983302816152245090516262012860243288428143585161830658203103394881137664457137626880403971265740531666859276162379523577090589388747400797544366350504333944499678448277231489986697377496816827449708478865407118330802673400395826477498507680497207191900156601102992462141506719916933896220991796252255338714710702045008158291256003798087888448882031359119028506202325400944598078731290956378575279048460297398308581375532673855687571144732112032270420650426510716086281910591879697641754205979983541799126196072809039475099599497083835300037254348308368201494902235064791745623003826295831387683366406841811819306141589945453160020836497238598136412575859078026310292533860560790066418325111347240352004506182048501807662036284409224987332964297549773788606825619499931740836071432612253392245381426999824733327838448845198564611959093228427900465715340839935491026617930266072659180228315895465068599189175508337413161323510602704969522712033962332690843662142872684799131741198476295403267683124747689839324456394691914253441409205198162756045285984298414309208095594548877521909660376479026111010015567539927078777749164438632551901007290293213440144574369362234776216661460953973295133674970982416787995019132641762455977148218165040602572783786443738185427343648638962221776323450986698259700705255511790704821587818399597838108896457067733214487837912912564964067189231089085055070556691122174229203302634013511328008509839267384917794841598426750858138983196650651652652798831157844527633883624172329593013969602299530327648865433760741571608500901570093153004795115461218029886434507649199885331500980658976777318703758450501247441942224506384542313148362555083334296559048051488659945910590571086482752055231549306356510047622804486592578138186132774631433582069534360002249967098543018211736819058664408012907068028699625401639343844476281970388047336192985251420599497814639053746669152261184507268646730110763297249201869342240878290366244086247908083630898725058081375991362082376047053585266560175726149562478626629738102742236021257425700798070916423269481402382394369748578257405742015168131012334112272184981136574848651138498924388771702656133619573585701266524675510524930225053741520211016514106300208461318292818538308193058289120700658212367852075759726839760567938905257965805947051520991513162522485207768991330352919850642529472399021562244515145107643386389001369530570461063771625801659111424762615312160791008247254390741373206638235101291259384811309431481774377173648945178365358612248960383158875685240049082618987674747739533665675379177182530477395224228082475814633165739440371924750610841841287341043078896031854645780731614584885187564732513468103691474061806596865989530724865858852858296898046714850118598596913625770745347519997978134800993247431903518837614396927557068674286697100237650509206646940698372387458520639206153377069501592718203021236173822194242902645073899394498430352087360270693707920606312916255263056131571299150074550987741195352689855392742418109791855274846179514879878481628402717607801962294361632986485682767019982731690606525719058973459461077974388959093992567999830351833546220398688834467253488598178261039139109766886815841908889764385385442717152855055117119825901378491091290065550972057648014244885877951678459660243931535106741703370386895064773663049995133085133064869204256993289970609542911403903613618279509776982072182486126006644627692328368074875576174625437723590546411835037124881680726969477893842439499999846227903916251510881644771394538549899280322222341412622994102831049012079359722258927132485731136780341439529155948276428925766351691670161812030158490566286943728034252068400704961435766845853357999547369758074682063846098585832376510901029408518208013247618351053768892065075986610655078594788333512338147373861962526912796978239246567079714902726109656367516415215548212730131736970823850009220226173689205626141378266823234200944926828058542940152725289938971884407205306241200058269009636269555318273709169215306571313971264355812106302539068485670367857981180332186763694444707601013673804940468407811685701487738886689414154362558310953510183930552149347806536083639813267508369852732344403145661201266488866416614484509639866709320413349279070822621800879969647138740118521113690753573901759968458229354705535725411678950618840841793296151311792628416919457929361335484760108828456645563035512658595705433295444047516582259242149391609181088308154089513396357721233314976907896109466785452892638908103958621586492197267028483921351870146110193328633220091468563299076212654514051977639635897465766750968447732398060470411060133963582136282800317612759623131844473561822208759302496602096440827077157880636673303241816315714951041644140872603963584925430932702315225423955631805778327692645661989433136105023767730001850569678749816092954567846975453019414427504387433586747607443858640065984511817543546390030272583710820875341742149587802338125171658143640810618708034365822675393341604326011396583820810113976544381275526911128137063331151102845673415775323986173566407969575416896383151081175482406870267278820939502720873589862378225230717966170377318228024047299037607866018583661418323119145653424730867587189058748405282093381610418579242275460941029350354792755434666621429450471821854719222253051190543004009545384102644089311429287025969643648872731326952395393217831771785896380297579046160419097006706678607977852395034226914904241812216757980181682636187342699068770231492357293465774238743569978949366806436297864618978521516758044598274113541063489497450489011325236170636268252889427822005093902430128109695470386128208172643596855222822198361179427246989849380554542464503325123372443951273011956619599689670229804226441505719749358016826323815419975450804766757241128311797815053294455270584777288239579122396625366181823738677370991991641428010249371969391362899521060486265513882603427625630475393314329860120524249153787937793843184192792755370257688991165534042911181286578006865899543624928848985609368953598021117379281154087084729967403477916830854178331375635598924274175413118805384808634027673591065291319154205814253746076699357473449340244488384468410180226817853123880741249092215301794421680572724406253884681084096998805714936445022565151922421757313603089211231531109803384529343176607150647818172395129811394171605885082132593012382500577806855083459737639247972298372167410367108405321427268892340141299929720290062849541568889590269723957590217426560621380327316317805493322978900903053394825568526742263889461439888089224213152378011131430125804264537036090395231977007724375332750667734529957597749565923790456672790492332504916532142631123021182416077318437148084048440676818272790225891117445899199591440712690185173655975267090993495698413920801007111628272029476695726736918303673357966830021941996124071065505585980562818802538725863845812539299843327598376367766478450158256168342323853396425386589973556309833657905089820590867562350197828731452102807483103944764006615745817020980530905933537302731871022204834082952717556811043686052720021327389934042809391234498484092036008854098643357305142690799462523450584458747688369361305577194239067159915975578741479508641211719826486012914539971220660965356933455256053529694910348429964861427027456694763322806974362067992057641278759174531216943877915752147793413372391996325399146232680761694419097441260313131536788435790198494749650370993626831903213664501501285066812156541346134806420530981549989727707405325644586316379983304040901457084344544651651747086893600224502570408919965959594503608508332188470117371212723373298704350047255016401303445312574426494300323797422707362050338219178013315498462055730094936256958204587812428094440674518935464311557329152584038657505718349421520021554999895681785993969496686613907412294109834946099319113962151254642884040819426051325033709429455056981874194599338323663936599080879620738248109096842328231216335300198395870441768715629685516443721998535321282343963429504973619970469626573204898384161398086852042923513834230652412809558603645594813186335777633492107878453060791738983249891747973950731497371190523387927687052104437486671182181309188869298940779659857570233037157085480983925295122291412667017766654460160044070864249942805198059876776592643363762949194853917861654763581713065617153030406007875949987594502607170044188622104751489087877765640236130044772617691779059568507144228721683148162337599521454570135373822628934381831977352880607832410689946839943551800211589468009995058591539934963091118166803168605754785505950892068237129638259636304178636842785209364249949092589922498869753499936080332853585580867849813150770522071819149755664387781710170029455073966119219552458850445701182185756153067336882630466746093456778680143746032670754657433005403498444743829593072756562406341353208145090091703046158683359852676323491795855086827532725782847211526705881248470183961969754114466269920692851563113850242091454368437022199257336130275515108994527618382211097362240969204677087078814624972944702697357102807395404611347587152608765128505365478172086043731538161883669850100348654035798693049760981423581116447739453506644792111356238713545367650731919786181383477868481358605820292952385740249706438106457271508936297664946751876480986120791806211584372974933718667455494807072696829008073121004618157628837141529004790038682971329729417140236825939036350536616490505702248156710263641554083273751028226459151223789496792297297568602833038127015018301878908062732154169135975205699103643476467737592643482366282513613173277383730951859802718344110823691848580266359427084879918791770149310530424527847811224347211655852113672840535737936383721867524233268657030681232230426377557367627795177820939335353317318424855331838508020679944113962616954524751214281313187137394637488647035848213982584437601320172086532226143858854372268578265331219285768664626921253146955537759187917207495919095809011889950657859154086349774979076695286793559749155012199009924711750483790485487141849273551169558503216740169533006961159250187193829685159958854378745352375224262913314083396259684634263576911665690870486210891553502488072868694336567739636659495901229580342607733938943682843357127292147223658747468048540829155461748238775470024513892220886126818630633161529593097765327549827924771059061479869231102650177399792985050486848984270094396194270039416849980728082076151092343701376909317136501132451024817675275909774506224000524917333573605798993967380270192270259553050686991750992471279480292839482009447787379813676580799821385177057351686132339183168037670361950646319885792904051944725084333716739752242362673368763929595752320669317026741626665039215510214242453228183257573016174436900280408635174268268225173546860085579246473321195587487009647058042502950030396949948951418174877469954919353385193274591281900354604220800276346433985052365433337972471566420165003958189822929768198893248295078361094077358912841295912195319845901350393097151576076974208542019316185906344520168056149681002115125418341364682042350715811092011081344243884033255623149641208018617305237165338152693275238701605321729490066483432254946612030072156592570159974451130800787341423705594964674044127681765220005575339271828008854867780108430633736654637234408877961818917150729971793223206974177407568214741034973418177781895534508436352534659590754216521997409746570436514188771069715099460764273088519464798686643723191531240075356888259627665099650624999205277447403430731392851799250842165358828500416409894615664655895099985982812723440079217687086233275945525737950517050277937161381622666747172682511307629331348999046848948901135983778097305741134747882952614297629148419306873010878606387829216471791590441273200225775908002269297149002456385008371371370375057510600317362202371095987836052387337706778667326880982332781391580833877333133723261808073648275282557782260041933547990297929246823694137644179007085267317862964255930800202782997283710877965110329795186526559933512017437297386282508397164267383703896901474405452953871807035633635053008283661035374680358198214541053640018105974665665062502464075154911364527670160556040682578278233174148289312111810400730930634793726077016722359956874509684035802014219488169870977296878321335588593136128079062021421225622974924407927558336088473783113922980224349087499741896960166773755504917684818000952246715413384588699408420387144253845884589163609306370032866686723274692299182110192739191578913747532508379767751795553021953782281004788934861182536496955241008630017624727527191500607516995385784879658794914950113217907157424853883314604411066725200228666961751433771991594119261377464079348144893141954714978205734656976562042520471813847377120865199470161666584282529007676651126941928885224358685026585601680094993754356516300704341916678911309135303013409227232369709449261884454140544540471695611595631708610737113821804030943283790166696744924336363963449998284564989863559606867038316441693732566345357803148304255709364906380436647621446029814580555798679363797438665190959807736404284476895879827278071018891390435942891505449549061488910989479166120496734826508433304841550935855536438441704855082304066352164393011127919160582984274498070728601012096348058233946838055759533596911780970768066186494092266798062998730558619415671483131062515477994529889868734199946851883001955888000105104205395925739401704393460607278678326806571517123717640395653658900669790420877222857490140925011558053018852460069642056269962802771267002072711261048822516122052542396663218503914132449839188921146114679240755940136917348963868814764890506184553471085893288813044896524493590887109854379690589578263488465483446248631770838416090281991774343302922665500902614507124533518659657032785111847303725960758521611287548659875613554625201451930996467884877076153709682665385094294494434593645786546097900838042735374184759894359658091980709546270376369957433010367935366662737519120592836772703465940296438776211875143407229220979665421446659997991418886435835004363133637197090850409029685539011708197895634820157345787934742660279621154441793802930384131108661709823115428640092005642057549495622296837772004467146600923061219323696484158890984043268844864541708958225318245414114746201774791187907359018380200812423582233072145147258192291544288600488390644512821526620894503435246067118243446934953119998304425320165796393101026483983525935461198945484907303011301377957508250330429293336511181710148439241435266711761728006108062535712465050721024700271881774119593359211242551586483915623287890946307839547252138989718557034390002717157601264907853857756848396779347663022348239347346383978067729080267281948174189306362426095762012014003323063297802183947496589017215142127559599557009424565286538471865326171323179958049704326684544564354612677522208649875391253615400446670396673728933342985358637155435174189326945559752179705947584097598944524852007767226261837987143891305725109341176486914863603461967471708861021165268426801251574170129698188497026350576075756430383326402038171751532234652692337647828989460345471470223538340129695841267996612477191548459077524498351313385978365858415666990872881410044742504454220274594773711757374258847308738479150810380452886489768737201948573868900498117437632065117090709629871920029269962901766033459449854546906543659040150777895615872571498144408722260860548088533362368029970497119337764371132065150049250498061439221505748941457683795191126151167814704409958144502081333709868319789446581930477766414255022028977688804788480943711273776396466848131758422588901556161753069758824178939683372076429766677251874319666792903672973610532523715185347636687607794100887911864057548992305991489593280535016947989972879490873640776316731986985608250438002869122120919968192918931164740853244830950983470577851548653639268556886138575480267362904068043087089652375289602150916230637017070349348048954505393682675702117458003452162238947719604040592297431002513954452947131954405740856789256829048233059539830722968062733437417053161364106616167466700578839310604726789658420676933242868510873186183447324304919907009470631531793742360331897632291567197699371657092845505167416195832818195429180810468053303758122213123885644153802582146331308571323855787549902728003418497956180477348439970053916661784727071553625478431277186985856766580376569274266981320262880132545112264946312195718026328917244463171695314630567754486037917070768360627570152580293582061033073846789438255387554508880270238022504412042316282659106068865022272841764130553653612002976805369580276143083613808598068538214193498599285612798332984264310365375295979842080942392527422994534820450093188888570493211625003633826661384591331233067041674378345996995299687707544168954485770271124746098137411969076684185204963715250277629396575115276072271944118342697810053305726714733854644341724444854211063443632767055125909790432948080029332408855624226989905936700744298757949261260872065652552174346934145027242200086489454348707120714849844600668991119194414287912288838677773255290241564668687932497703286577729697576193414339239738750559249568176049543896908381859264434034572037048173663654998112366894802554205777933211026858489302879830721887505310626591495893682226491396850701430335869736915855206862143221263857584138716563209147077234596840201926635840154920041148285468247203593121928436891998609191288277708760784429436657551403971615458952106403149740955305102216009439108024904874976951039253241923309593122872409099191848785080820622536493261514652346486947389205696725366363741605864606462719301956072977188164203435285898629042603116335448409020133780611500650975398937481573128962907833881407178038646478386985479258770658924089286468339608483797253330776182363985830383965712657484245441668637699730987457941236281168678970636883982122496790239294472002258726625447435380097868923956234756712059994258845016176400858703951744249790131100379614661820931482451284770949759286448955396565452936626601634344348978901932877617152097226346755046937689628899375066100385189028952034951562127660858962604381113625105251501787761668089041324790982916712689910085658867034112572579519472171936974726918737930353148015287987445341290462304683071112220754524444579383801600537059081639513326300985281091050458478302656263716490114001907011327666699702568432847840801916796240543599087191523983068493268931207510215046532281293171814897303190133114628080929228362569579337656495221965979248738768327818339533094415656091613200672425124009979117934387910102842930253043085336013704067493097483277681951958538845004904706922949093933751937649632582727065470328578550459132721632570162854398891014098924264550720520245746813619751753287400648702422406937617439580971528481063190100961884816575428357704269527992470348113958582799383541994522305959602461050635295789985580394867380920660249492332064230375087215216550133768841437177140940106969531092302437026887703571766689757722227321605097401986797931432672841569334496582993191586716672076017169105235043192622321977435490866354205084738239674589976624893555101824284374565343136506562922726239078754920724713645586449594597719394035324419605638637510455468018573124597559186898815538350234177075949057977454589891813906125790492128325759893117753851104024767677019285752927038463920737074709586776361661577331844463809353849481859240473184877174614911493101684024314150452157285721048209014016712343878704413447497590456266359714258535089131082047516757396071597216463133971662626231654703422165929628073112893009391016962452315057762557606273323557283883789310164170741853175523671422677782802081837478598329508978648238121157302215084657316222283129131872317475349684637962420584433438692976734880922656139757297172690976410397141892726736612843463575717508680055998659597060989702392541653708495039166558918020015619066860773219277485131631157367596039812708955890228038564545692861311579895649186037229121237873507843132023698046307085733361507549378278969947263688117063944693610700667201817638426662550699929721296101218640753946913813692747803862267842808348517039893831704630951788312227634759523633713757841475417911908133351592551607998930932962313532928851644165486136009875707937304125524265459324182059996311286346513082848938227953111965337802181043652110183825450898041415581617853566406887168150979329757388065164071618800351068609081735285152021278600179743415024433730243447982197680820300523265884938663208894367899599159785404481053102156707556700325341438429241874449796428295813318369051036382646309140175867213209785888456215665987097508744782628433770161543877746799476191412855345275459463688746850482675400006377221434824206354461206888319592858697293678177547967974940346157833877094900064164639357302810451533319802561211432658452286252768740054254051059598105548693040988982882311443368501202490149172106761679517604649433474463168172905655448211878751093771661724602690880391325224308722535866863242529987762492378383885201318806644177518902493712730538248976112197837802239273114581688183349910544441561777141859715512064914101578156701674730276212818484309905749492798231250351548468107125757613274396846746106839601528980754896888918769541041442859266661359884094513535022158786207118629229387157434022463166300986413053278718447543619437373106188053335171285629937346720031036264039239201748060510673699055409259533095439217755720969116396224202054179634316432999154587574263121597327963940518456704305883713380011502009991079919077321114823966830812342158961373870665833292285465652689159156319637651420635517820858460883199439424466795997082027908228295939597334459730080292349541701903315822186576218551310779617864043558999663974801755621788920143241022449930052572188079619227211090286370611172516682034576198939989958634073501885521918255047568174732711615921058899339402733636132926965680639082564689678252870270152069305425144759076030816333847701249499020338033060137267850155512232108595058573765228694228303078952694901069836012067074926944464195699310760004612380863814632333949650248874258958856882181796223066674578620019325747803158297245198975974097611416149081770237953391272669592286113683109227995186537523173011370352496208751084291981064751262327134403426130861170969369659063627591179154748594312652548488565679693133222381905367489961693230573941124832240674635175392816862034439654287427186575728127075042922279887899244194061984570684136512731006292760648233454253079293275414201256419087997452551304282812363253545468448948610276504654060267105953979076896186673634933618008512241544510268466543512755777854912766489190987517186681317893252680500872678192114279795932822319129785932852637409614089110869330514093669868751735576531041671800988386907664288195607074020317579591937134789932077802657336695533851795662739870121866570299358838765009879195545917880208711593485608976244501532249981052774061670363823726545749501659881210073570704880472508466642495046052304462951917221097604908964031948623448081563201895386184730277512028202869448421678360210350208419222342057893363260329717293116456217814911853242837932418153159970176889598694983531867209239442636516403184965823436480552247382951785352615084415744960036348486221888117750122490431610924576575619029024557075406596175453475516489580458627471145231515899002109435887227821916198022368897184135385084147613984959388435269185036435650151040356912999583833168656470697361852209177307626518009627767801843065098510526076602580811905342176533299334891500904749459668902892296950239899375698412081249107240634026330757548249750665386552486365590551120131485448588744828003813131057553446972429853581673387133748125800023757765570594586692611101099614903112463327850944702963314363532107849662762628526522087390677972229248582152551413738113712485666187842454695093667753057334967382344631204183217408056475829885100109501178216290741903618717978163715349933266851743554485445655669170760930881540278529028295479969797293030378946310445100291150676675168310793040661228372218502187460891706936979799102333856088852600162855887299506463706327143090424779566334140055769955442393725282214041417340457444548883652559749755687812121853432597637253459180799302005429119815076200362473925365241303870351379913473172404575112265035214691440534229502802442227837763727138639555146935893170527922688681552607198652568212240219762964822366359117513312268870864171323742278666395546418788607153223093756013627689726091120258716231613354948007553857519353282443225756789127916698316424156188550375301644570376726517390469709173295178792821649974039778438020290577267231897975695355313240028467523202249634565115490618259880774831247893493047904436605288204751730399331478189327039539182399133131304547187639460559251264730444063142680188491294816633800326485619570455554192737667479165677140538778125669295505714174457048239445539737159377016174184660345195240449449782345207418328538575444569220979806294160139893042114573575934890763767116471778976229679405577339549707148027764178819297739333600592859127167226816639764043081987302438244483800732126524142517328729822265996943476660998770412242697502417577541312043597593808188555745736664583659933260662269050322655451466595817938384012534880791007211947401134985731927907382350606565597981372801096601410984258843425944847884214032216658807851767197843467534116613463666412325688838564671217215364079502333790247439409768946776579525053512404785114880051855655334320395627390827263003579920912661669631890121888639379978350167258314186218177748405031847098953739539835153243178084199954281126582215723787889214834473610866045376092860077885324772903081236326545537918604881489801954267987943640794807686642546009778608671601423205147502677740666488404317007011314606052904702694323081720271660167462570294774178815469137703630430408964181472499275097837311733380981758643662821058569132525921254622160738595978316638106589768543261200309270362175168823627856344100360548991080544817507731385116543974787992922388984839342669899901673273897136872268363103575253430425536963182233183542374620093290055225192652928382554441642116488869107167548802067325874721054239028469949743041277438197277608901500359112329793924245210820328381649731858603499584708434366913726328756499640727513842631745303138000715911168432388880666931076398712852294124562389184819069123172741026968979781412498242536186501073940738641898774567181890441130514667113142107543795546614906422429373448551525184330803175295054778632969024201257218630461918898923101084794930578654896405929860118609304056714961273834070196081819738314446123839294299875355648113856227185514826059356077048494103657168765478551225513335404430581947337661590217607233102113497296133940787946734313162614144152700281202116792825800985149236408734994254215121797202661072770802914712746516583656407557834040945731190395735570407319699924417711156587149580267591096609517222280255832270960046084588305541671789566282470593916957703834322776950352184762684558746853397486074024574519006787976617294001680156807273463796745040161860482793198288292049541965482179832820628207844616024595868917796754486316646790592327685946610435696697650720985578808450472651039489987310655673626200410159538119705064200268405282488511167205679021699660076444688199517480290119389727827539074862858362952389715824003510656413755491712398314476499826510314300369556501846841675176839769893762355010116875964998298517472315192374709558512139950515324908079513016076922707931290567450283952540998626675233274664574171945648669125950202592163155225582202407554774416577258927326615487730122194427536634536330125890909876177891352680975932507828713969476938509073993775632509021044841284455424670199503142546641905329824712243609765059889503178348435194872911322264315242394784265152076620531690892695413628179128763012376933565607028484745402464964265481239532424990593049467996245794401173754799354231477061161212352000555859695592919503132658194700500407414363222093510547436970009753547828455984249363613212945612391621898841727114772655084618557816064263768588760850317206287178431489096447965173933913755820074976170380843526007731752602084844615166122756324168340389443986301050293954649538579445231031082691595009993089113473773177189783126931218233498795448058631664839424003717620026653182931112813057913397571459013431500241371703529278897546768233054088044029617446276356112196590924082047568622663123386754852845761727382422091808432999302081718983883372289644352412918268024843653449253241631145495370836147266328040095902739663442334135063689173457800146281117041457503664913460481943242072178015586149657358242796295222113740865393518064734614815279416619578419416480408558231323876012418571321178530561820961210556389588671051857382518189588170867443808479572728403313421770107581663329078842061446769952959618360221801607886699185435361204065881504107685164655620147027444837639875335735039638591687413565956902404953024323908832404809376350277957686604069058769781061276561196402787638230205547798737837389265025330450029419117533369536278199543155481489661012114018793322218983939452631390589859915312219729492535403784175070831537752417657192836016300733355158608422711871890226975567245086595543165307991460478675511106122678418424828623675812053030378700734858456682903185728238154247364591628297348224331107702200682219760869803858843649325553642762625057358891097519632728812162268543850611539684334652305499317805700798592377298543716557235393778323930112421665192228121009890003073040603874513754640261054633024889210020044106244766969365054503217249224720864310042527768763600797732613207374959180737949588738325894674960219148969762112173034948482004610321501336336516717038982613404322720068530210350644748933743466472549392378398312592925305918358523641832405244397314672312905728788803625058180386229750479923287099440244208436507411233640323931761995775734454382041205435713242938874231167338185406191525189388373910569583557534120459283570384926535931943572116267475223974813270656801598603033001653287329258689809797358569350895574646721819730016189911640271121076493486785324592935407128566185721000390883811283308267626570264985667593626432853247073493393081246137518401755460054541971835472602435866036327412951070430876096880996781209619586354452383644090947465988849442673430306848571425967595455043252212875900110513507088254461197038645126227445020030354790449234675975677068873052079391114828079413124507797412531900396432708350869541251044810496190379082334788183667721789631287922870715919454464198578357816609751125856083569925751524112489953697551651466549956703245957101274596962761169791814149705046969487850771044724607622150280616309128025338598938689503567886506812285761048061443512913180252284930937594890373007832400625643425355886015798539976193700797507156816367727144579920314862106963122969172005543279333834606399530409993327192904475778615824620809821974329675586417846484331037275501827951400217432141868212685910522332980765561292666683583850232332212844720832289186397777455198609436079431099196754198685288366240251999860606594371881224935850149114442998817226047541855745958299628506622435252974169962919323412990638755731906734648675778796095188214106842336402674567964683582086153825585192647225908823167091068271103306340476952220837415040950082719760630667143551324722409556718474691235642895967324995211388707650265473359298810344857660707881330512106851106131466575741759072687898795227045350767106739909490112911658487630113451576346638749788682477242005237894210633995340652690036204292095194262571672056118981329332106243460844134372964885638530172692033256004961061594730402613351153804653991496849836121509872573942413762825161900807844189743554063297562671160266857611962587239621018437868528738681152551145394229650651934079409379855893441946480686221195703920326818441264004979050128172792028670179556776553720535492064224786730786222501136199663311531089357701965879101020432829242416524998330806799145143027911045342918323982864303665592409126370518960031271722913738021428680172853833585456455718758134493116719816711982599449952400059150554142694931338832102438506716460390455950686492927702321610651557086977448621251780319615405186545168748490496368110505949554223811809800196858713706612140385405307801671619783285927595062857872911891272795784439968165883807130063606750405070873551983370425763237915640079876285154581872908682980991210195716890101128595964388678986037848098246288845328789478935717242508687547097187071513960078846087199280643329142373952883712757070609162314997720308782844297902317085691395893867564752850338728938586507904981223053310987097168859854785261901937710124067228702225741214861350008466508832883122980047929133817778685115869385144251230559273196413700775430884251505432490841827859538357215036848970998055636712286471000264567717186453015911931812530319883383737968793865687194367887707602154477354041220367285468944082794460970170957293565272325411778594103943794568828002482093691938518752852789965564514945614351086945237954037213357042097559788977596243401145981148326638806439139999911561412509214221181100725880689812744645735264267815171364138376707186692366013006341899933289046215483545795726492471592819916324575051712760163072836489288949789984184607007157328508577753578114900918713026262204954979376242809916486511176165332535851198376987660702946780580899730071687427052916777049638828455509992603141728336369058455965093384788166538729183035451170166734395261481998160729314857205966023868428320553570881779019901276697912230717594091469427590694965314780047869181198036955045175837775157834129279922582098258439753484216976162749940466177221194113925140573666675024923807871094951459234930137378144007897532897957962448190411152942721406192589742631588779504461652455779016190357836449432698874032681596548360383057569713072853213586120084142589419484419289331706513040525393575642530868462325408381618142592778881666357380702967284622131138843247101959720187096294627300210194201911757543584658663523482141336478916786091881187242887860871678329066096372111531947541183371444331984095564813469034177075315654604776784210778693321064060692369628540647860123642312155462366382700288645836714081170437200724795491609713051227567670409782304698597859745351965828995889112930169188659735644623424333249233443080954587880514001905885306613417696545254508682178276600287579558442611550565844214404105806135750467033376448254555986793368240998157987695035092061715702173764093837260789843206907910934162481293666940128960478162167957143152995241893392440308170421601979427971863360113062192715599920598853370709935577492336063929924174456159745066354908775076992064168138233518705657215029704061117327445562967518209164540898931240173353412554826507528355532969850468624293046485840079071989712642615738534308694170297428155638671839675033957669640554855022659692621595893102714210847513075688121129353088127187874138424910286554190707213238094683088128494567660917659231416278229866208973073570562652307591081130772783436520762545973698801673334475107089533498551158113357889447719739069507561127751018468068424902930396586204479695533555021587875084343785012561376000118370704462130005053253178157467320082960639699346593511152888047369725191734372609564618220107302619217906206484635579279681694613353389655397665863747566061864736342659285786132807891797468565826101487450411625660499667021374873162040904164789038904630965826061953067458172489954715065122824690756989321228182985046735662740441848834424507322631306834423005266795574298382463876087996567400826406356323266629103445816465003396236974353225269510853415032891987472873128598466288772856508018323246496241065965254958090945013511493781989547031809086029638233618184153446029237577222780946722536536195639011959669496840778910558552651665323963755698184486308784176763904295985219444968306203379644544872603472113064590748036958997410289539721903162628015356988520786438638506216695279842802455778971492470819847114561908611852580744858875594208235265136573576264347578547576779061544059902858403937868501627906341726529011991086472650551719339683202676223334620792033652842805939990499076317324319111940041854388371073604560426628224762988082135369479063682345076402643851148645722914876521071971556265234761557726141211985454850964211194267076261870486091719086008899007656789903048314349783855829531902854075762376583420773510326666569726785501415585273523328804725306731687637858862313752463791636168403418484601682478546264681878939336004761119412426989792853556133993691513647983907491299610377946344537449911420637860084192225546411185508113172016552557672473326050896166305468091845223813183472166665524096094681260808669523815720606776910784542132754392949143506544358993561283166723648670237274195719058303683352508554464313260881930224073432871624678379629618086545244345066394174617464899383595663564347111581071764046051163696086034783567973767428751217851896069311367625626581432026808019984007202194936752461205745773802885723580308280331313866326363584863400863363227347635602591126270002259966391419066718445373945316861900504528915248566069344031575474284908460281482865616440262245826937933326730032206022564235481588551714531315159041190120251991450899120781133229151880444276267448948338081756935267953685887497943267844029236430982016248055904523540396615666635304290866930145635405376430510257072316557756210161857870422266813922142882682518285704345236573573641514670626930084435836413829887891823587565430518985161603331608134950680580467440134934095813920818873094032096984509181491850759501287021750521389707893092693578749883431944247848588272543207360946887908630917568978088855587847933422740318995976132913870208748568395926908680762170521494091970962796262531810694213845531332254747099032320526873673953239496778970271293030193491475365480065196454770362660089558723425715853388364418982868756988456041816410606490941972659041419493100744058169315852966257294985290073194178466209593122533416642761380534284518035778372321097457065224890273057010880768160328926762765921811378180740552299911647820019168834977239389632005482059029364255627059563303175869414281487132818560299222030938904234243395474621358294366264920733761992673727873198947704369217700416281061355542538436064733534051504866469590438087306212520745881846590507328283766425861618169022145046907227869307265888987788680315064104074391337543406497299658324309095788442079757087755874033089838577024874076945465946417081337281476596147369615144427159439963926540419213916475073425855639489702110161720044978439256000565940442928733746577587530313201886933886641490816756939499816894582652896344861181663168660018094533066851769878493458918053739098493960069557568051335332514872890288135528274563029929153482751876108887333481855877022941218466511521867287594091023815896265473317166316588571769579531288344470798021262352882288878699198445091908436643115106972039252660102241648213052544045091572766542631341961812419943865716930795693346354574699614866408780532439846250097592846415491803001704796536753986847781428606128442778591346573710528552845408656832365374505106087232842421041844039497885858001976677090249424694954697787005464395576844185624011130834191284043203541803535635023153128004381690723671368953799661217804983221718495709062601742083089716935263215473714161012004151498609593357967661356687891491317449530490140971262669064514406173797395795873161516980103572119895860048056922939630056741822330478420611858235681489087325125093884967881666144545415692155729032077588748502282052370308642974714776686755399631021506778365443511510195145776099132884270460082317634036412025550006351117837663142101331083791543896044447518493368664171468419044435521154427750737425067969719037802242297186920524491455639451916418132865017799387622238412836470900112294874289462076924716755825046820612882445182841052538414364007387413550399801005880261033789091322056937631435800207788824086584064905481207984314465507465387908726867064514942786873471157097325738929306766563416346784737218214204318530388786101307528261348686157703921381475475064669845025398577675758012949504299423439879860829841741850371278346358522886861548221841835899324492623112339682582438009829298898228399677833758783978567610270095939472201585046347057306288264091806135450980893424757332678656982421707727769307692914109899266546409008127101867615420171164245188276371885965347574231446616863029880655437027179434117067580695159643627857893199675380025882349574508720455922967236528185292256461408088656164197811846280252298405861560866268582894471867147484559224185168546683076321030086674168211172729269764710617556217597455367335023900448651770513828965049301636376850877867999709106425525062950548031073972556520089054513460724062399743316742240055832541484941444284740067923290383843750388691837644509823869199378205109948873591790033459315845631182878216877336288686240579272371817922113682645376765579277395572799729314076394861572436009154495295288774580623000314088352868176191944351518450050664679511039626339180527373818715214209915598863248079733637534438638572637157716705723275058372825283246804171921481250552517351366869175172161155554398015826227070427292400148915096704937804611001809394720935526726027541570037645397113508675361517506890927827494167305329162511471478758936833856773356738746219520147818523492436917272525359111863356929863899586952908808791014546088263959469104663373258015691637444157336795775134798497877715537874697796347282086033531894403825563741382646865595359133694521456088108681913753543525998678024230071736234118751283741519400962129946238861056909963744543720378825613700622264955413623510305315263573428795764307088478143239313613938205264433964175096263139889655468002897911613243414225206751743977587877295074171079742604304624623304624254122701390263983356818862874865393849060223644744978093547248537564771406950148861811302624223555710477484913505617097442212808995652529420130601974811482738822724434662212334525323975614341061537829936318192506119701133303408704829228429878590410490787168720890635174943871250921121025281421696236661494630386650299497745537675616522184903703723087525455547117239605571887660382381170919530796350878760238711954229816170826097524914127639809650100506500376328410430049793766123312729888298157647839937149172625906596106789600824034995050528457744050556535321040252876157032689748672788899703275818092319270984267473202988003412138295465397437276571136752671188802569616190250186639254563809162528430687543013428453236210301179581798225249014655818931934194622519144048401132153020501867970090164988333138280306783594488743100093236366509700050696647223617756761574597614786302172241852340086106002130280653913573945585941377234029672938745975286801895166387055375572586719500001215105688921794500676270748472372397825234260677938385809674625057748602464151475412979251465565101993362422169901278954114961183200399849115433826358523668730253107830851131988995691806531017624572813390076414925595399922905188721801057333185077637724011845857145926355836770384348109587990179520705592913394516098182705020827159699143995267033498553512747132396984443034111553481718904136425767036660273397975568483959555356348081571456099138116426378044253980295341901318784051591201670551564171833699648110722598382124524381634232062155366735313848749453907658934368036384294564524820054889955541606958763750300641915145559800429694356443484602871616891674800925335946201768670997103181312813194574648208052422334522438538537451899183288288647140587665154849773552673885378104356223432573056073420940815130596038094445855697507809777434497432100774242972213634879186086702497539631328930234496721353940148970525328173678810317223394257930574436562882277965523050206435458444140337195266878235788263767495951979836044491981958217559651792484998142072742156619545194275705488178456497122566600628913082109418837962277092126233540215868661379271615945584564273292988690740366600838942795717321607285738711364471077995982950911953028116355537011345627901122711720903980152221971257867011593926335694752794408212221507185021484596970278420405416560838644473522332937185651877342686257872943502035417197117280432437038793751025122828158436456478087195309086439767905806942205420765555565137901719154785225804822017038485861694234563914318429453475255597123912045403106200867208287672335649217796787240888968089379341231423412612727512021519689205243761961542030547736931924242619804067033844793369475497784363233155286757286671411624926243092215087342847904485815139883712225004345949841607566860105631527891279367516605454920145376853786460674589345830234490555255989990839345261745482028005797213540205134755890111079772168474112157637451483313061225041598890413685355399082745107180021656156393908986800402272150365257716004343899801456327282208696485980901981814476869496081341640746413331503071061646920775758192045225140341135022779069612050267637502666487725671918074797013639781497611192574446369037317320379876875069119864997075848780608435860728602401893073150803713153533049344043936135132356157381733755101556119819884769488152845479102859738024199348890597044167145950522663568500999799264606812003212065153626737507562999059787600416928387685194968441089564848496452636221892954107259981121081455667163136367256668667441486682121854327018172911862402319423237630215797755768701284166886729476230162050340279047879520481889542115654804768622347613349696566772667972142716826928094177542241271821413013680242517294173413716229636805793311433665610619462820486728416582398906814973954714979275266875234354263369667918343470423446338457749926834212328203486422642173875418987600521945114664804925697328966872480102356989070792255364448548636954178787680790481452303955541464315282894853819094455545411821063877433449837984254349200817844034381966219226145997790698566341340583973734542065857395803058490969881624145623190944601371233139321796626972222823824587083046652080981506905316219837602483654074761723942955289904542420415445197908414025099674591478851308919040506319256009328461698916317687285593959410117737789284461051347890461123653978497130594491855078184362406362135116950806834496229000499955705573418959909188350250141780681159038624775761313518944543886059579741085517672372132356602148620979350181520686752637303336377567691909752527692131429943437466314389320630145424392463852621325794124596210036045953347241149572603900676258658666152224286870725467780849492449876712104579760453188646666804212789393798233373461515657171531856103265784416487627593792024804091543793686319706530865126164931772194142211461329185581226815916789790436547654853983240839932680615429641288187161841721418137148146766718078329419234961782363490551033699477903454572191907857788828908169243811546251476744821049743152759416459486263280378918388759766891245971892282841943853367903393572604954646101398007858142936494562732682927881915887345580417933793975013015632152957134067660607998666629490740747294059314588279254176225738516416512513933440361826644634584156875188454503150912891094321016389050431321311365252136702026004672101308203611484294909485647660387301019108050702394135139083068903853004328665333149132649729427591694197593852335426727418590827825321804939308602312068472018185430547195618150079048675633900624692989162844312005991982121814487803975695338166486120556992467913233933472328619415336125933477643717706571772067820489821819687953434065596296941160388793380715410158328015610360117739166393919444948988751964266637430185537653274396824694660084610128323795564678688166564123388742698895982079522003296411745648635158518799442359896405032631756328194827862101826071799464400765219855792702700340340179208956793330208915230371750354227150326649317048620015689022014246504006844368285669333295583277020497681618990255427856051646885699912961980298355515036622414705172284377721974120700168637208020175092434301312318736327344565621694426750885432379423810384097523090099952033308452672606664698759467492519436800791873106638300254972714465443918919209707727014778951994896938210334101617463503998173288793912082172138097666322889844663549777151637470977824641655381111066167177490603817839874578250013434727806908712621531605704138446041803399839082610451548902675244300528597137522726291760939004272635594900707805707580521919044859772372817522465563042438429956883901738216782122093894305735840825190963861479185234545290712197594098993793377101988506521809739224965965308862226911632524608716923970944151166125548169997926155882818927189385304778692286858721485779057993559944221026333414988545021946955060734217653278837676570346533360341332233272560590001511112901694714585051536371441790954670080308367830185433162260521238192763479902505973050993139333916155013192866926446042144326116076145333961296733431719203757570073599642217437531124516262298089767236330569785537010850709300518009187665997614816141823418099351041746386866849384804067536088458325388956467185865627503116144623272734849651522478575590526712653113192590971891184875003188021964129679194519157263234947338328963741759322953472905867131073928514829509375471555133379327597332462912047287246140215892876365563059545256650593203178689896800473816534517780019809457879674866569006723792690635348581583236936265810905224299594024647057947334861411539335056032558301692138603419085501935106663160636909063862283168149884590258304089776969782302521598472030823191876952322344568462813701581747784891301857312820630818595466880067350904110496912214023931989412326314632227562872499587709284038599787063970059416767198838043593983440060672094867525973608673897606448812286529277006088316344205746471178711580873089980947421679192744266939070154930209716498481136829803287937639958004698429036685158637790900649871483169160115146295132698134275814749711542127216266876052815109518080688145005086805540486214905937550095613630774821947833321038448815937223418153580555795380062863966832168089398330130962845334486546134759004227082246866378856784607802197868282711867887606082807318320311209776440459236246936087755375295369994071576907570583167261228264406453635366306093496954520122772493043062673844329814601092595616511261943335535623982360335377901852510031312277208069272266482058649442123868773338395683945711725940184754571934909051213610671949998538526380186854346753003894909140271333646844862438299457516821806059302868287784285840704772392111440954591770497244890644507170549670454070538913521274180397833419342307926578262166202631020310896816317536957948271948796495641076891944725261512975039290368974167426394054400480882395405918795621510801803181449812651550202680095131572138140338479013819662936952438306658516427590078898263757275735108800882241610673216599964031831503106019492376403221726513942460235368214692418632421417881313347422050431349752244920788159130866106658478187497071267305944319655645022061373772198470876984518231502218081873777595258726668421645501496353300852598388079574929668302425723064937193617241938425507117000160923609778742446104768291000674968859010404748690773930711712551822346900304232702937055480742903901339182138803167789004912258330144994722942301890508027477809525810269178612296965936261037196731535013370610473069868153118651711298407841006242221092425558580704538062106849150624826083167388346165214404889606307116211481527626935297448319034389220004556224600006988433693483863247616631953996232296252570973848818730212627824296142871873260203938781345051978953260490017629190381938462122150440682518491196291935416612945401729326212215215699027861025045571700768837665924087664266979365846652671287756842813331210922974940335266033521547399795861886783441401973583824253525336401219109588484236258992137547472277989494433165270104210320686519506373716790937424483865322082529442569944134244881948441358703849032740553490008397192056879006102507642468751421770232809651816148038121997112205995470855123779507488016786379899283174864784325820809245500776050650337913848059208237452377676103301203986169294050420994193151492681366794067056328486423808577647953655746324339839263499097115192476858820610113043255033520262104993995974537926442654919994094708548742684935696590569129997948055611492344522306759906690458035816167098133231862538958324121588504189549599298945173444129818799254192341924410411545919129898724446861719601183107084348492960427141977195823990742015946227951882226006758531985091642660233963247206874835712471326399118016157376829237829001043372104020881548370413468439081216952659543030507365275495868047832971344776821100715324988392521305647257441312121749263526955729638832873943429571322879992189815036668483608123650716064737648747307790681162204505125598632747771975248723732846452016815321279446773829447232695887210117198680828100726811604378565280077658622375017293136427237676275409101596770770381747162639566094134754929573844504744134676245348554129865286880942969394798786559227253583810334659316608174433181507960414128965208609786145370958371577435108058414842446586532936340603705666888566927086631414192203559893783153546721345695116436738277240147445836366908175047110684383682072936823481145721175165761688034617287944454769313776824876046627380039502955289701078256379071183131756222865725730764124194793120903015681391927545434806018535250127390874557694742462297795223861819834771324603393332626515652510608728480221914482132633844274217205676138047709518669916633313802054479251656287869722054789242926904081123217877857994926619236660755469349940541748588173632999313071308357931185916070758159255486649461210770196795294642460588439576790581651776275557236002441786919418664845341206939887673789418384235379558920091226409169983012212426460132257975565549994582581330194797416633547904471356281670875621171096460087841050077474036624711153118543257379943155170718177987039785657696208679272911381346207140272047366362609698376103346931610772409995265162579069279008913474672152057348756050390440059290446661009401010299183088120596015056660040672570478214905491007433311700298753865097400814769219851074078102528560755359558595715505604474228146522195196959531157161269709183996029816439959906682787177496684409820925382093976454048815707992938579870131938477365821406385927315581898615632078754269849520343191345707417855322971813857559664747238346620816265929603748748037963414045160663556003051613900524238673305337867703809493839715353365191968570252550143752666194350776293634593495965076175113835227032441337919485191074529474834549465053166519951696176233686002294686213632927534586252460166838846665806422871546088871291743636963564037015097459526115358628313310524697542891073857810006030864272176556990733061673182807519064177603266273503968671682999808575834820468293991616777460469995229722865604767919788105248766557920866881026532794109954080017564487795661544644798302133038209683114120216101621847756783833294743924746486600076583989985919189839200772467908654331479947861500856405699497390294662299947632870716674415278170130641069815171675981549630359623448397185748772280895835529556378602909877665936846593049489511190915883703863844050862642143212751820698976932279709018985789356533330464563022202176791772742957242065235711455662359943849226603190376755845266455686430996473871349783422635236730788162907727085968825523379329876667564099001381894490073073778475510495901466257905451201715198845958795449991193598603713025285665226766591179247435543278125599344613396628153207618474527963912099054674799746452786233166269622167264734805361017724140937065556153690290762844511485738074344479791314821521890827104251246239212061287642300112239364048250436583588619267641974604016270965198693421651459767420403846755909924324787639259692314383640720122243320974605217612340191258045973798193011410822248792235012978306642113175988442644488032011743002798650396977280011121635545042102478466555619248399902871359533765759658880273071862300523112704238275167500122964990037736011061768560347591226221018543637576857505887541916166003604715823458519470356385814986480959443661074458911687390410905180795885137529743875573631319104672728982063535817902532747445575603305162166399461538280292626020520152206820665663414056505813821444482050820368511945745914112284085264684373202458811492458414973390259968486299939397609621123721075341597044040864839743202567710678507426034587597563892623751091277375185978473667403721368216305242445038478279540926576282526507726091976158605936342357998123326093360498795659707634512842892872467507539040492074770539682582883034716153871485813824710129466111549841773988402250582223364741249831697137001178665550487052566483727281384355672992158731581197602015695693370147461324851559066461058924419655533704947858997482416689830709788401766437284920966126949343805565482129821421046916133104928271665719146383677915396610104702494962852871293492980407561623469600541315227846522034421340504186722688328011010925337558805041652790403322279364294616406306241399713587464802818701419624581908301313792097811492155566174190893813250302415562301619058407120228071818942755056229394110630596154574391359939910027042303856066052665356561521401417650377196573309415530419321051728302686323813204073283115218885774611860766142813696002432850953917538262019960742310051469991776455431819648639443693638204554989920212778167522989969578468487253549158748320152614493093839395213496171441259013959059306813251450060570059802755389976930648493664299626649021556235463376684391076672302433658632738669009513009077366032335615749764917048690394606121576069248941083079909500948811298320538268403052667103930402039791142998527852405367853674668183430284413885138103921145718275144542611402377867315114067751661697040744134957566836111857557274650289920869468993752902692048373651427340357928295826016966274711707010519237453317797016015627440894069982695478426701905804477088930299183370884871501675432497742887326618073586051711538535998970667870551448367905174849309120604182577610251023942587227122271897218115533295586647945836727428863031460766861736802396213987510702078782620160843035595042780147511972874024623158683368173561960087657723708075807766829458680969306541801017810453825080376831192041828560887225816196130825083008020705632431284558355569537889136640632662824759495827766141361670194287179767570778894500423679888387302681143669014046168637209658475616316525512611591262449553581087965042560045329565603041674403264532388508944589769953132025805262948326550288062884902147392738136843295364910650932600538561198596841213797631184269723728600839707712842267204652391032492453712844016318607837394815378986073999733685769466696886467588602463800280355416192199692662187228133327494584424311331045690855890102307588013355506380094534275453320941566951977111607044134515807117601988962849156894490597395461427769580049644652264025747271280691393938592199752554333642486017592987892884404667018119218823835615649382129426330448855133293497471134278531578581919001455617705719100290524962599551727289237050979586423824503529191093069534292515034690167903137660478563367863527450049783675059616039611913805497037513836481131885622539499489063052091480474609680832995161998462317340197228289012582207010681859805957602074292837175662066390175245074521036160629776404260380315165019886103669634206985756943216490435954974314238511399228482465099913750652155366832644639835779859089722458140550402256514986237693706649408936999901286331093531412723011549218601415701298579453429715302285960571330109955776207191432093465183344826820748366475952432866082107002576094924805749945141673134586465206206407351930519566939934103660278041723780726266572874483170029408868422272481410901695739098075191873792299311712776334173899164133910016018846529180785016019997330028158240329863351521347726414860756563409150277910277496908083994329365578240158372902357064715796860457525303773746350740742439102786113168303339480005417597872677887664812954276084612038018935446336199082549679997017993942318807512194087344519579991450402243340199206169848500838091378088295785028421897961991459258212452662358224248133595094632000460229460930594825701864417592276488722414269960859418420751765175434284397861852110310398180049804689148780420589041299915146328960203346478841415565863009538527795314252205700467149557946599351272679870809822073038853976157804885532628180209854502929255208484011217413066335255122879026481040353913617041138573961310367159230916857506229228557108987269789383292288697577932324302867218363706291655175510026679269404426788020556427055594230759338747159881465702953280449958791257921311846157532014669191062088513364325634808365332830566771964303390116798388001043431958546807935935524455270679214481176223691394091535822832064485980325908615172925844898970135415760597296438970169895020254154303973604816667363344854673129064492908672902081383761918842994918120423047883404017809398532408472329050519779703874882913398833500958225272747880660451957541844684431428883924952737221337309586896547360572690462556202815874787406989095879916658657066370441141956393912254485781554695992679940337692584801711520805331895246551354485942924844089668388653229498120319150031264721061283882470893662023275584278221507563058704113800933605811663450364472686187235005331484619835714099308817878001273212569182765216775393372801971933994155563657067995431547312424353340032416314032458852883751684319990776341336444403718621338106032115972379492914687603641064100591878154470868969119314211216575204512464408759616249025816777659700328227473830984318561266646386243369619468336577236256574896550055649030466398325872378045649295082693669273816295288793659584209863384616365288575218806225849237427494555525237130492384161485387687043597207433504066805163352402493216340742072407501293318324485990863792166219349376470211273587453954597477028974874860528112771378750627169606581285822264766545990832064240845199212344206366358473583092798610510067275040691466898003844879742762348197678548185623885939523774582032863511584393899655427113434911866111785923213417907841311786005379769586707077698773080375342286211051874203017892929565903165290646914582618524738432188496677359717531873089143671654463827265106225652711355139426512837292213055618492150314739963313248244929637109430586882692931092231955153100136018419479095253053891747713817469536487414261544705669588484715318173371180883099579662944894666384656636951439074000061263163081245721428572018039575531678553221020226079676030781063230532603520706597018716756786810270448839264331895225184982597939562126450484588514829118536127339935902774786168030811298024679470465817348920126685063553597895699965261683886735491584991441087661969271592038789072931492001764234523191026477841306278397147991158528128460755407887528922675411202897160318986043225032490313682063375716690210208701941249415679461348842362981942489006317521591632878922550611842012214117973761676124402671174379675438435705314814350767374503876431148197533338806028371097495335566410784250258320712859807407382489192483858992250557446962950928793538347562639915948855522069860865905904997218654279837340996956149128385758715053877026780861566609196238376880648124201098988438718393743333870800631786836457345434275794456185138650189219177559296121874716254458958611627637451271105221289189926489568031429179529062114654661356174544056223605270400238097414141516473540290609667549066649881448065675246536359763604344853418133755518711628704848755930305382454835807117990246936430511325578472585407160782753795221704368826025622643531630937728112092422556815100895906975627209584484385835834373027013384149036052147298699237358422271578262671043273037941198024511317124640350209309614647439267625713147699531263639264295562119280079597900994440733882335067771212358392489080406876563569962760840917649046880926843794206572654864705718745863516471670006677438815304624662747065541213298737244905193408349147692600350243021190660911753628287392060805212535265281616459940394568524466799934728356894182884432725397509665150626198397681663734018292725724034640648442700176453309597525130255850776329074769536017417315031702468431639040920906011524387302779915160001192257122496195673081091929411001386606558983671212887659154948014000971599576467603598147254436809670617048399364149998804096780111142872115999427810413431060183877361335944259291794026828512525354132743349751552047634374621821184382260578374526055057287466199350406580750390207330202242274674385968082589416135936251245936541782748159285522309565489621960103949443098833504769100807908813398528406477977292090942527164601578282841028968592208850994548745149493782824638858909566365608662477246328320960876601649733261412127119304994058209301301150525238665269540791961542469568774407067052723499913903070731945459468022280725553807077679164864020978923071413929061494963581350142406981339803847458422686245046363356765493404218954139812822792438106232039656727481257341136458168284015702338040978453402147422735793204973781724616075507986044560141498224443683782484629787766545727665699179026785768818544696045691997992023880198343862552666158557039316336760046149158188435716306774199550612873760220104289380122775320357538169809363145762758534775572060683700994886694279498394637066737287928439699803847272865451944462543367096445510174072127281712161031652561589927765585204626987979192059524319183340908541939572262189091156796972086257905296714199584573472303716850639312583102536060573470910759253136485586988802830071859975630630215223649009340734331838734606308470888769386000524792224291198442209560727779103453306780630017942216429758553532583013861642083308907665310253930062904568231177842197829116826595920507233620216340554874975758975966728604120736906189066305156454262931658687780713125408586531832226020553577841786206279092823881812162267847072120733350108618005555292237205251735799628681773565975297195853374530811886378510987884955768825296422208125445568173834528036494481177437665065318748360542253695738783596338772129883265329226917040991927782870804365202943631490962224376365323750592669210213609019564584401664722783021985200577085607437197650691043451957163050685941946694844137523944076865052935266317104618842619395497611169742869185896090792487038509452802219513101858798212422000662825113552126903699171714261503095126072329054991390938972884642055284649357508275464235847488815249042238829406618482767634793861557920837670627826327958448983648899016801362732645869278279962038700961893382181015153233202747887061365010691109679247970834977868689874276365638897847648189092356612038035102442233899721291846780748215604800847593436876531670831128195702599861282877635459016009184374978411028518171534210501730126245333276032885353370797126867844032200409536829846108498023204945243541035689668934792561309517047893702212637279927458211742817196022384639019558797335436355185296559384951656823927557545475089423786558618561840726293835173603525018089330245862570236383366796908564817123569110895798720842669553930258527584044494734124816061907695022988936271922109779701260365705294161053031351313501285283527313010381274963356083997623702291891926198029264895141548136667924894267106806077121096877072141957152405786109178055241847881335968500148506946497275656449500407232600234193836080693941382585343054539104327865719464775742800991778808710704572595030233484255031617710932739361784195835514812211145372693248530738053971262333749627235277885611780194860895256116578181789348516733810134770073725555212770140963718120376257170738256586688081599401093934235191730867988498776324566337242768970361731250143450867502121623564178093527651643055150414141620015429311757284666327437286581831962678679344921325129532600518459902752038798877283304867832627274045756256159206145172141900788344165704765491183223172040643226262391764959310357627718988155345621879941753751693152884840483500283877377453200993208485910760053503618145410254065114073140815992238590500770380560599694842516873523715458468422022251856497769868500827547249795431040743645565452826639427893636872159381950329057897716148772701572985640898256401423076282535117304862686209428593944747190886342600291835336200040667365615804275030405957804715248868816519924637615710353156169949259630967720171782591539398777857321556048891612868394833719125469844951119653389901926818710549184992745338187274394154935219624455070520272014552984579182801490260716483916180454941255849691263738499444372531370920099416033174151039584404646136957870391857644063561237429033061051031147913451491400536594170841276735959577971187631699860941400578415538753576528300541065554776522530352906279329883024014629734575230204075649147938102860276335895250117225366900564985502013374823858845688384211010355082021903569576739482174669423065593980033094294396701866373484807298382572667026112169710964599807952071503788791504889958714117650830927272773355421006365094665555669281227353075040427659817679989187152479396634387419407859113836384731325404434027416388678998605833458985115146746324596922502146281462779125683341370000515028899847810198543388213247137871439559383645704071432022661195073020914854833318928152345772581050194398205017677435107060096564275819585626596892098770083782649553006970826843144817186528421520495920050083893059772414674085085187382215534953906178327073413757110397503134240093631669557307411377525208883096072018547474076903565042453118929221411333678760689531641260381213731592191040203110865958093273932736239239463890135300724118842500788752644041056010557989248028931188624359169569372597548639803209381990801314606148397699288899835909724790738313965684008148535330013281344080692388766513835636364405380972219768349334720690940479325524811427878735877652735832581888368622245691894653883607878854386527561294469787049353568999769368802557778285053570298234632051029682157868531832419711527405925126419645403346787180611602002534379285698622295301292581982902666627560052512429971353602588542148592313664761568193642887441976181819903199471355751065530032001212720207483928572467158623049961798387616811952860552700257130715107674781335907918522460632925659120116100204452228132437610366231019631214420731223649665623272772040029513562211978450932610470934356975839602440502157626196762633571838106810113092821057099196452199248421441342862713181004246938800939137571203398567039639998722404798020796847188134439403198507271337102589561959656230900638097351928849233741671351178338045228690165934682856999316755456243669612364352538531853648691697446779388285099915940099009958905988910020075380368021418528072906138689647937556138707310413449794482691529416647110494023828070787857670837101239030653660763213851890744622505848449395285332449254810309702098406377958683321386423883652555950522741679121424274922104885118546387282500760133803142418320546219876825748713512340073337520346465148978291584478214245082199444991403608214487960146916367289283750681186790119616349877898126541774193993140082996868387444638116821230144880321929296339353648796148570825656441919430307055361269887836286396772221772242644439146040373378584479002014770811821507410563396725758466781036457894305524657482249709177159914649814890524036171398818692144608377351959089257169249978355576506841424694283425047870238304129801637032159498653109617066486171603082229007558440162918390275296513445534298112982142082645971883236998039824797965923848184718622667003706074527459917157976001501158672535892571781880091897539627238693164637115450700840244167409433651789286902687566263864732468573701413213128428613155623992056933559567635639371324294221321042426381248232197106952662318969259284041469180859467490926800585530334600361878648294307038673771399175828567784795014992889113762803548634134460412993843221678406801894298755658229332875291636008959602763756690547728415561559780115701025957320822588313193765906262272841377657112535304491805414331217224185425684469532330278866115864886249077668083527547457246422085283746946086455927906375528148729219179498915768383009790016429344511350253306073785292922120326207959030919611129094983505142865092933858844481125499938665548047537306355271735576733354696013515605998508963374741018319336847275669290155273512992931368326868327167418716054737073498102590805027076857426620405282516753073236646157066047989688645747219165582632314736564624858982173950403012034190762163750932337275156178664797176915652636907114300720150200277186306602383949497837695483195595221302185666934762846712131837241043873318988894716775149677660084599498527025397935151780080313624541616045795877627001522031737509706009088584227507720979262853749159953073355249859520509771811919172928260979965110739447595107841019146235227102272161010025274857039632108548396574432743726548541265689637274159576568654504743130219077762710128935905757937696922463788560710277219227944645598899247555604466919413189988796829595846331654313942257532620405073239624320092881210457371724623254014635304126120131786180899584564923810589171929978524771046810328578978731709620349944547043331243958258365568060958417660490258375856408063396449962479548319034175756913319721536159303870248345852179807892262860624486717409595149301992711794018399369172777376579335204150285837918161959952757678892061336343751661797473066714544036228126390444639893819954154582489946978169740157657392517919325529170938123072471603783658902202776602333134036411802989204442063586967295025321306212652891039759658712863801244518125233660000165347825616116879510826026325628699857896189337170205043087661498813610139423495565649734061451984423804865483322597815067930283449706668939241478869133174399609311201790466680831951366331141006769109708976104979188730272673680379679059412363221857638149945569141203505986743162372042651167756140748285425037564591519648239258797770480178152251481435119549727254472323384388196914583097179022733971299772637057884526343027336981279171161019679447675734951755987893932550507395326256443094367854804876940025039876550609975970160683836965544466426513396705955276921298753093987575308836203260621662216069923225675764312073703397611587360459797776549800068729801567253037594959720097174544119007837758949899090242872479799977174787403036032669526791827908980512421669871280257258056580236237498584834575222701196117159008206409625477756746427396727788059153508375809911633393249728809184181831658315656037913548228646365825272126470920557152541758424565627533231600133099720934029509408005410125496440775667798892693133716205369897111325164676074506451623585866881178729734628208532963206922327440564846945077706429180665077632256681181128124723456622999046301817055358342492999074602438844384562044997067286284291758463485713202300028749153680089615138478881764223895733546250972127357335415834164298804374677236181584616603763355100722310112709112893204225150501239094072068388969121861503295111205281629275630093722191191871738420041977970641006110618066972334258920880018156083465287961873173841459520486306588839538009952274757550609304286876199735437783049980868711979170780860328441683395856334004950747153098502520693981318757760907231139123983745564981388519405181326029377614921142897770241878149943697369468717177042218327098316929763455569336095953839871202294726332323523661244755638924626853372628953664459989384605856013766909552266458895514061858906011617019658362858156654260605896191130480272135386129093650362450690183075473332971017314790804291503407993954058488618868769641375112527464811591612338467723314307406324192601609761483487548494038170151806607591383757991689608571005423414942845699760273655817239200596070148129488263912911183064623741835362978750164854666789864955524616186351565458211198258170842150394310994584089880963473706253646143995884401485323104060269943774830956803054764391834237022706211832595227062936117190185285139390657456791511229379673034162904497554427251051340118391184227777817090801713694719600415133783519842946707950425413483175499412593465044434219007647595092149073423886577524450804896088097393863947156874417038917730633833255402436535045274757242471335602554788155463565144385662641342868156165237936539774354084780920727563056348452293273128366092962723972105249245477324882249457450151075681367748648136001313566296368938168787527481364312943584785007275401918938905168478352240315385867115813252200192442043177732838848231560792630707803898796422674406055339569526294194342958668410338915401559356084510320028103356687232026949189207399005228016900535725666295879800255204583327758560475759307094146897690146460388313925818594826895042754117959446916946085892598744813606085580199214391090295946659232566994321197148007494703571097310333319284125408107366643104031799445237636081117058697595460573130877305272123743399762688795069079935776655164794549098265486441525333573522290483197874840447322530787320382656957053443737766458463797206463586732972428409675314759984303469782771797927469910706217374502414094033929205178073627476710214700975910749118242315069891223074852320148034911131316112148958237895436020326388688232251768152683455853540900654305447884984171720659327387898424208923755207370473922532475174464320165298399358620423559034699056460148780105054504959733488906645834909231998267626984735830751596640896515095955868735600228166941813129722954930635502447812393942011332477811642683199948702140942870959506601497046111909503470662110744691174205247145278783588592220792575097419468629116860932298942218160350109200474410750612098771763883075688492295698041046327717557604296341976362689190026948260999838781316435883189980762715906670725366902928934922276990164341724461195861971476152914594081806421807501678460508227473740525984387162612441268359957748934792927384977077863367877629411514758269651580296502858277773317230828102332337104817209292092571094472653190942475463824673694729608195663657728291631492229193414365993893856976984288613835384730347974678409470744881194286810489557050484965020174558155693736895833802453795465975244323985971282117164937393585330879516590450918583750540887172085517292485883897120025822449160056839896867794240862051118387604436941415312980746907407209808143390682137551092267271743778311711357689596531614736182665394314014837213172799075282952264661380703025748854040459954904587584654029305873431645734079001437395797974068339653773202274565065716799730714157954042668771082543950361602695316731912977314956811225603413179596775038588588345925683666860429351728429358944560740134062181605526673165921134219021083034196747809008316445161832275727839090290496656750683544180145489440610882852715313540497177823600853678575381967643801412578870068413194461664980845672129583446021748510531923273038551765028909261918841121607152865003295119189609890365332871100237237222325756827224566367806293706816083401884159817028090873746781348508389971472480907200336670214867436000894514195978298745674015180826671696757972909605134743655453617230266172762630410148491341093795340829105341335270001377465043381998358593383956474632044269062862524626672097048200118723930039666677217751069170804094298058198088683704881088013433332784183705833121392911216282311471536265579521832483628052735320980721037358730491439225701205113087030501667009925593021697457708013864935094447391613596055725391252882620193145557993550166724225781579778966181388555048798109814771142595824042270081380206904877957613463553038690326457968097591233561240060755972929382919049030795881811225429160981127038231527805133129042605393238433842279584017828846809159514855074618284250436285852104499187008629823764243111451467019588812448953868115703350649933668248324054200187941672298611473737657155363179820799165113817915914550365961707895314344304296822645646685853398211985135370753029550305956022451876605392015101547463818828261092563646695350732154737977489374699329465913339684019305949114203642444390602407994765678566811193660068830825729511185681204315892341300945449436776709618783681421091720385259990457608873067918741243504331826346418625307640452425917661968126200886840558025363368847396904955327102872082581292027227403317360341723972221834294591777763624376190904306534997205505570387098061755293504722399569714782567052683734482525941670264791578788106659974721647168487849958905962009140421740246691628045106856635231026257386754678189499419781597791381316677137036815412843983627303175356570210758706881331497134230461318779548325958892712190769121887441364246510098133907405311544139801044458832767286600078120213100627935135125574735241482541885748647440829344892654271909324216744268450496689957794591565113613040426007854718449900206422069930256160349440484223692212808841165190416575936024638428957874086295903852114678606558633840823773487106692743735293965974457666606367271016326895929535418003107005819397802980473533146212370293220893572654472148108248314807640375480491527314692713680895691798565175764467523398057404847250558748931346618473993409432014313368869113941492957462243488524724458709143106100505951465653505076815775445429753951379413114256838084965221650746816390446337295022727131664108573325810659849395598196386828080016610103957124976443690730099439529285782921217615735141882397242305833880742388534854637749695292552950057884696098461662356696014677705770162349460955817333900684853942331285805198789851817278133289506308999860849513106311865718451594530327041837896073692315449591602724945083466552609014106395849005372927408865446469842997011930455175927253057095420285432104205842267413860817013858850792504637308981977703657654878003968819933668156544753090813801476895360858469341558616729326846807399054439364148850939040418993215902750489245649694864345795581918020829832295860940735836285366168082321834878653206847299019295029773516749968982305988803894042347988298467137252958477013218173764020594266286364726257976975991834319191829553690044896071123007393596606089011731295253845583617832476428837988028445715947552516029378696655635534123357648750356707582085945852049523371159903864485685806715087888216801915238203979006761367477606409851853255008470521094032895663903057556929929610869302357996472049213038968810453686932737831970990495727509999917880592306626475172978866662318157702143959877931334139266155490895832040426937733183814493006729094950716404758265810563465318918258114998549779032951731914482818117962213390934954046372103904508787682220434132313932371417871106176928288465361001392976517106991396051432616074127862100134223926808440732773092710756534720749014483055376325263455388772019575422685049429067261367719919469878672428013405235610473243931049923223482774822920582639341028443020081304990313504625412993666432960436910208091982831021236737347170917609105918149336697427559866275947539169118651350293930119318924830939518890111561674471655696785387446336022924936172229546140625776017924677452847750074179484032378410176311698398342640657075427047594921199519425958167240470036507443891073659248163577027155842088728995947330540422782501822002253574048795420693330982494286672787957118818195319338067150662225378346039344302723132082198389983036856868746214880253889742185784519675714950574586910371946380797856132017390727109998901571570761731843172885546443675210022192953688485309735793001784450478241356806049987569573152504151392149310458347831525006965363859531445862807247684786643370418878569801132732011711676254519627057396645425784535856413712347671979520932574153033068467664789308685261510650113996160618494295001640268072660565163599957847597890724480118834392198802574751629158328905143475112274563190271854126241561175262925294599159654130715103316753737526221554217770215970629627477135817499448337525274985486592153430280516231682792853228051062564182459934229606642613280981214714360577661769819131915472641577492250296297747377933686004202176114748007612249238157057040754585840517835354232893482643807596901095354017907345718859939302772482979294540391826719093322274682261482684331266632590221582426138100862338491777033943373513324552783302180833439309793281547036133820474271615125295797533774776174763168522228059081904638680440222339200002507973148732219312828028535360898823858168133015041088345439299148396823765331706805058379344424590628780030992461571004421377878719464571658697565018990792238205850137753296995088709679209400254770111354473681114760518125988384941402791846172448313413678924759224576777125062165392780779413256914978435909897443789359200287016284037124369976968810943243593932988717426153864548728931482743907675108815643662533906091705234628816601209955072858806857231365501965484372869423217718118602395403358925112873584539888353650443985357949106457029197826055414551011893998500889260511548048909839037223921756499188988720821904342831976671230292454678454653228166445888203983529603925297198396630885638633760908694384541046283679838427347027610424944991462557687513929838560489072544435262756315783814732867568513459099698793918017518436184906494785979413008186769860029083283063247356275625304242460625543885506963327103115255557036178394600097368931730016790680497218554880909861682300447124981499061317036518775871101740409543260174140536678357885836414212900548905470920687559955351000550114091675298107993378484266149445431932506061157731613942503162494904729895669050080886839150630960116758718413114274884593445668545414643546225147414356089622297884518500753918990813228443161029709438423882744638339444140849803420920526350318705736249589934159363764810289512349715026866564146147177874871402291757158053272237356587952431408173455800097881636654229412756877718311102301754055213900610453098295088260839999156391736784427994545830637639300604285756173542072183468496436966571432362606313441489313081919363316873268274120461350446261269557666772445363980255551241298055257579724139240174108929191294679774060967758832034330160229457328258349577506839102547403338888614265990914017743791808550186110067364409560269792892178167195280142853817330365603304344939914634919927364742711138409583082205977837635571521210163586890967177539374396373697483721048670916208398863433423032843516975151995791423510334648024138195997695260747925889710619389191631105047745606546925179696647263278973728220766984835217589387861585634644414268573578274968794273093672608204408926754588621146564555825052451642745444670483743715233538178182554655230018978215460691282920437569183615770464599986400517312791517721291168626464672605738318369637347841456618880965869631588189920314465958459094168128412573992516343735931258173620677535977254267626576670434844103044858993899402483618858697943149472242608572226324529263945806955328642943125527438538399810622574550526040180272228884425894304384892462610060272679261768817305887152672806257964878651614725738333043056010109902115326316247241237543849219405408381395597619015868487190649166741863103453094879955983181877403728395544902217105912637627613072132015813623853820410872920016039847382798617822806420617166228991702331059297339349236284195514306610295541466224241816445228609640709612622436804318232942234640501353026251596692864177966934388044073485266369873194664870877538367369617243062529262404790868249154252496563505892084869010135861546885732738958351610428100553857684591430132069662082943203882435559095260457818499711786997208926544847613687532557922004855223950632827924060564568902761966335169948178585703133788919540600789799398117333057664795698849674550053145323803387200893195105018386660171619301364839418066615494045575770935827296392988410216364554896377162607947276811736525644579076039945813149446124595410862259748913940893306731011427341590548247240450436370527363899065348434452393236558647631867404480956951275975408778069983892647135902619932456061011750340049972362432539707167344075780197403914041873763173183647590173947916999933305459753478284084183369157433271625423629216284003852063619630334729526561566597843164945855155498026531774823229683805504355983470268039252492886584397060173878592459898488004355264427922297577140167738484853225763445065975095081753774805520743087922289097217880420251662455631339996193199147674989370596130462733585744374513619865072405346742447283694334215923380127732426143232527779224606828262300477471558613574774441387856183993063750307948200666900364058473905596594755087957342216855638884671476498118607135961386722285981767658368987662630064690756919089283308762794189643730369858261910324681822641235964450007597001382087904785019295576582460014045423317620418777586529693592774665499489402368929761737113064549182389474290014056522835903931056391216520849879742959135400706883973665792607244425878954998026692402072449688828815471911217952654613192996077908659054299275343644954900736273302153514691027550302109654634734289179467238630699200571104384627971652945258226741417362513589021620647818909241356100468059860118394215901416090616188644307841809360893526632681413149388279493680046431292639903068516918161028009806774096388446078136907450398993096490663182995555417469030513715748493497141245131474115580592022382813254675345001401843126106129233513050263910664589092719592119611503392715500645057767838508843465934600809100859379368560483046970272616167682153144503207273011420622836376353658488568473084561337977138615126236225559951297163034043997429758628399083169691164381041718990088101884223528710029828897157320073724173771595565794360172726868226186514714899994236150735891668339965549792361276395235965476371567191043415681716337952967236570674116792799488806352134502805973423614667364002087226178728329712336760651403655404761496378484292629935507595378670971161364659669610852587960224770108539869470718609278389181096975951124788684277998791524114092341035783656451239608335901594133338451120371318886624061709001111345810078799167745665692832862729810485295701631030368206076704899619227427076086529642749468642650026557961764586528899073209504548536464750975981495871706525126225558698504760350972704556759745334370946110758889714409608201646278021217111680466552616088804602801793435316393699314799619491312975512381625098050266044405435612306722764895069926670705087772448383851174560805502809957578060285858615346303542917866902130834150082555979399141372064615064724269260740131931519441228696369075402483712705425195714298898817304045603668947474773631293840972677286852322916148974839501141839327632107478859354315395080822244845247745400776862317491350087262578284614546211140025072219650489893976682354082719782475826509468272864119012019312360152725662868332553149338600795404222851270117618228735174312692549714978838167442670975790712274950328714367083046586000936870748676774019284852264298764794262317826311442638301622106106602920892316507323085970801826326748204736888205368035158233677741815286030113202127568205308635628401715776823613399314186528179858800139097947312499658023049648672701556013701283618824384404331034844826292844912590066927197239604684845376787117882056301691216321956885553345764307909441678491501299284734749156778273870728861098853242602715139168978578367263767666446465806914784557061763656748156495934442054546109071299076515118769294972995256029679208085537868810635534101337853068961528535290631206103683485439740007907626921597321755762982009829512760375891543019665824417024086631597547877983268514427992817722867455725580854243397233223829139320959052897686382729633725831815919196707175996347959665736276070676090277572077145679006686686086130401494293898716558184520971253491864195119997206112830483003853586222859438453946687550982542521455225501619337839874258970025413221234515663678691034711088196297501864503707182582046519175844608333892042836654036710434212876801250919125390199043944852459261637296838580413513726078285036586827580264891726121633701057423836648846673696918021063061640113275080590737933695749672360033823379293071270454843262889926705348311235530242828783330733187780185858757799843773531905368974598854934894012658726236097381600185267097943234518938030372912329137212454878248970847905951352222768947731067100928550836581844827140091930552214722116854657646939560952992192639576542938680566643542387117408047107392192339121267930810763353363656893043646545069788743596885043180982376522057704121140361155410661135540335522752531480036928162540688915763427197793449421604110737210129810118497899854022254869730722226485515625887393118534606509881853105830266569368428066228049739959151574060229604221993246733728031842549263954241716706863052675261561585574822370975766650413867801278872081970966320004793243219895213370528302856883237134616959694961040129541102460121866046591778260532797790026299298493001945785793302802373767622787388663319825242959693762904146480127597321980890987741249350046589658389333223192991802127664087426683837304615520767450102069056655639988408463432326612912705154742670334933827369503601063719855908824948291106739070907705956331067055633866880104478664279213128652776126580017267492361635951398382580921563361295237883872165799839073552625510200634873623172221054138895553280719088743653940497784627216941678574864250447615821098097757723183173768740627982277337231412707653831428533771318002873180987014549769819623231499043800981001283549639590552602167458648355392853803553977916981882424734892162811297689051280305135762022849197608514572773151966422681258453070537536078641784604365381943167395178518222070416125818849308039545139997071868649565650438020538289300160893055614203165433782434698220536845070862138239155838699834811732123872916399172780558943547359312715035910757097189619179668076737721213903158215515060732458292250525048118826693371867332413952812616727180324416152059573981665318984678492205071225415205428967781465269547970380230492705970963629698169446291543088027807106724060990377425862784386900111529715706283528134439593460002393417508801774280593763734257126552169242695916658942260981870209674473990609585711031851176613772371480556979618972404992615331601558128507405543489656877044743873053946291836511622172383138815555412704982280104251726092735968725931747640238181893006043136262446784713945413384351325363929497536926385228276717599565722151699280564518325845252866340506652306861422572461226232773953989976890236578831859200617703990793846507140757501101914776872823751882472971228237041507420480517349276912850241164236179582294760188744926094911366350975634968984055795859700139426846172925912848966738256414566609512463816962526345251500338836189908470070891937359971386461920545035829407094743631939364620028270701286246222969673900921329891301397483860111840626085974166220303748231481171546570013224101652259923393447510956553439437071097326641419354278386243949450724047436271570171629204612946602244110769161918597135697934143631219104139878706113576498745651860242852095224677586147305425133143970281857382948805163090677927218543722240531619816442836617877271869676708843288064189121484581513339349202886997648137916178136692453797224648561477123373245690484167698561858997354893134015050247747917009799221134820107217987510534624909900099382970963482665544038937290310038322200621517571984194048378157265583388181721966677868151886344083552477530369583470551351942461296561432296322842963492186099925639269262904903637261658319930478675467368675888600475229883731190914533965612246446175135940835704067596300212359348681282956180028674461908497236984822211376319194893795701919869005726390533707100714726331471131709370206210575776843950384763438878865074399821784917734440645911359339486675272768658213793560236857609943604840015729382258334728058362027715175001210625010238807190083120311417258081654419752180812395916266616160420732823845738634085143297893951680176870128412348867447918141451990533618500337227566312785188693602530536366553486228733610636247452400443264566980883089968101131383452832322674105873472658704774063687963917777877198307906643863827089467324023689367030183484470092868889855085307901025870740217090705696222608365951943371255586731216480357848611392480896727334546869591720021414042123824582531015289431940807041156468874330680169672754685600617070288556390550410479071584693773550820815552733349853799724826389015144951044271010992170215489197647480503853250785451436335114110174953663773791745430059805202694157546215156676472318058654112886047226224351739038323490724212250707406703712369326895047095190903028690963729497384498067676575148353349312677047296422439432126592132123706715943597711221388362118207165463768590022451922096524621075230467766727641995776524173325301160398904362684295657106532629559604046280158076757149325670240128469739664499492328944162797366750515215404709894503397029703948721722826090702775650508181360977153804649281840268340822788856294795625852574014130352146738039396795601778642515764326759780614297673224978976180521932915979781867904017370475044544273318976445463681276027360987893809192956072868189318891336937464925496446043293363740931613083777246081250872957153902321113412653597019623839891567848563226831826922234232857065249618035540331309031187804400582961550818718968861212576535394614654734968039722497375543482908808263970165097723583412282708642393690822177764432990626349613565467473701941317494011455325858373281376455622305946799549040042575859446543675132915433971285762829121862845882986947430037306058917676440993392182149299688120141998902042523168364973077776985062190058304363373620118994420046871732255639779309232460606175584751852711638255486972965721555235224425226148548399478138068723322033927022339552493865250606592167580130953639391491365394131734200659509796285797734373621338155367688790231342233388578304740392437246912887561005759770658218247427527614916885153877313500972769855372310499805276529905530571624329088973293639550132502542130938083480670166490624512137278274798287788014741861747783270896658701685578993823454956357848295430974910632825550315797779496581836951092478856792189318824551080814274942637341360970952388822708862240961853581412612628634603543575772102816979001692563247590699990651932467608549229129792896227153642176538734093248247779959239374739428676190173670368638358982470812325559723108184065705096090740328999660545391991500195941093360192249698393355029709549487406696840129713031109728842212629459377877057773401219756315204875538158596805474911186013375998010797992142711022426347870309311119036318316463273927601833933338658068353050562576927921398393887216524766120438599696561494364221131651851862002137033442854248714255122124840648078646576733427551427556578787074202278722449763026020781445460999383136278616084521322796142675210186632625103287443998419647756058023767872910259182188648138010192643668077032170146355362294772574545717902135607200811404296210719946958403943376412894580333356650246468093203303198843557211208215239660332693740259240910476358760559020149223624117617629098619821393964013419223973946583775980545615311140831947581783133081619585547559900576162851508225309981112753755700689421566083350554695699782817295514534413724400219819600276730132245753147402981045242534710548186529048428551376898179600796808793236293715248374509591830523806706877920581323671326345123339395040480072641218588434008325500288708548915618728166714164499575840531992090199380651495331666521876426283152279122350899070543066393377252051638510501509111574955863110701927341901415577096119948546759888820156196289698635031104767947577274162653410162357869186679354815973429967456934636216600804597892543682483371101983372856819114090417965619899155168941646391486483002259657194374429067127863555898851593034999283439693334184376770955309880093799668192989275238943469575838628701592180051584393505844562779602386819268492907561801265835154209515811082621689569386013794603922313734507859577980186201610898679176694661248829095417451979306404293936840953496338154640959633655399597117801959490950653791736487230376413181227057502551086284690986227492228359789640813408143650496379688962557384570854952780256243674289585995407783050553054299346656934999584660148710979006668711315251474802946676114604503217495230401814140707952042400589059592546990476497456372154347209345953910286987725269361475320412358985206292021397346858912223271776424006938348207004577333463806491308622198020531496987872203696687459283841715191768152247133403683070023241667515544063917140495283149653386884613301207535780701376541597294953045220457103539484367230819912434823924257825626179731011871297165605254217982520477444497153858177173448093273366419548821785429325037245566500512253747567058236480625322987023886355636769814253084095496448432377840508997707346459575210442511550857193584646977072390963725467253488872615686279366548206496791237315588886112123914605062676647149816208301012553189619666419163922753250978283263482036744526645151961775900559117816510470833689457713966370228958479007688860432412972421776879136662330261782654065255648264126349649808921059727556884809639324392892588833120230115363285960140016609595537007258642451510484820849631341908774632621943875989320970200317575732662585552312502097000237711530002905822960556712327238509441944843838979867740051398595214127658793939009494362421508546097272998708859516023913233600441268799328050670070923699717915744888965917475915203258020001715613157955447668898438815731903155439480900368612065077177583432244023560191340640778256794900633612330610389465073253061636180936003914911612746490734455030539205882115519451451688518757961939453123473660368155490946732963320237148954836771196973552739808799415037920862913583432695590368664255318646093281126693928418621225372918181506437578844183261736105401668930564946816433301856783928111199146545788701968138170746683528491562526411380218670541422581731166531600960505314767900681749723694581972993709342169554535422480157067060095421224272084475936644624248931482183245503750689066842135902137786901854171681929371182832120065941680438094685410622066594296148190355727669231795109036689274327771450037052696800924491816403583059240496700101013646836283560640057296751048922037716733441925535672210965842226021389051782031124382857844080567421393036223216556237825879223967722211654965796093627654138750564996268361282685893983504939368000194666686563799888640881806583301497751573713191163904745662276116386822408397072050862405793097170293222741605907643171383009942273488478716226105581976879467708347944302710706674206673211223723104909057296562520654695939972948620899482065508095538497468830845099440156935948131755784607822791151357940581143311892813082943860558762159435086061719129177959000053674403059305014328143018548799264099364386577262090756123008109739100770052289564698881664308704349984835612533380659489322087061718198926279067030492190756925369547714171046023840216580737778630567089784179726694825338189397065874074799446686994741281831286002070921327337231046297917282989202921687863870839230280793166703642915446377501084939075723511297568926569631629216888600971128310257753554386154451770170122936403930547800202974415241358855807416731655758056945466621187502114690014159590549416524507622396783864163059072920950318174176358652870500157065343924635976168089831391255765434929635611048758679973738118168558140759619436736525268614062056043787781313424132915100339116450762364682240751296295582699201729251537768211292216139578292363822193959419459842533272384660409433003296011047677074367698591350955865868323038435100515282986025051119716225283686621683281577142774754381531183449989235800115010497621175000348848103530456980810297038263805226725742733102322123822067777680587558118197617673784412628915415995430670601433695613618911583350909430705702253518125324149898378747685107234396882362942899696661858847501181484520976378110567310985409768394398253303678910245448384929245745608366856298045167912615679838834982461268073242248055695218295478017548202476066539223876421239858462882099586114615289619515010953505147809631333863024373865436875959526225269152251850007690784086654437886141248918000128543098519724712294394839910580067878435371105612810346764156797978417678633579552706761607870540872360389049636145866522847758731381042638114940675626202882093287518895012935589704051249820067949116437925087873781347885977025344401534948482021992110752872057513514690098869522779589227395356987599022193486980322266043208602342302394272877435269079703760086949083489198253652626729444179360852758486254274930423878244049125376101821445240893237544597371314507369278947459828640351538605297597456268118419914089731452175779516657116911858313476802959627868760749497321826071239600247164569924221143071048574080473811906319892668798060022819717649859479008339420189130824267492365526200226862404072239264639538186890673608207216004504337036195056438135543978245264351167532654065390882894654794432096694204485679519815439643509079711188293819438858974669331922141201569233492868618874091951225088715458790102829358265792948258153676392384523471688202843388867058254246833713765218418795916107785548985094737457581897026890088189512163761972374351824247223578603768008730917527566828923326658086215216425573002809358660740250456362552973127653838809886860841812451147022970607711410101677493779925077570297314904067973935119621621798811269783537677122888855688437077282824895241973482792163965915086553042318024301259768307667731777367655536654839815198283504242623609826595104430131214674439905975943955326565334812417015236622359121663445620252199194051550868116810276721644840145004014179317182219266636336436381893960440062486146523644479439499197474627621713676362093286159752752278699150096895559955227127239414267624310172720206106558666811999839585098090398409025750222848690439476218340741548442882248901334294176730014431182225869713963684942518465982262773137345881595595976849973946676855874984823936855446739581045911335211161826381659845680206604560534164405365342529234704801561792621631646475383000660874474922742661622561120475660054758108726126788684751765294090427074660548455652789987396085247261117618941014000807407905997320259369389179422392791264988488391548191259311797777877261189038143669087004006793128381391476903986396060158722636563567272371707046076569943651879884082262783196534156418407273764255742260083443481893894877510801717568869446907416198036383608459818477943281525609515060482600337238391165857942298805258798081818323072983631001762700564352013376989522203951825701536615675180141530785215878426547759141975064590340967189810439359291684309461225010890427558254451700388531160983550456469602446732022630790249155435019535142879430921756325705436709019019683194977386676046649506833832229209004038418348846682831392730781056019777177551749840209181941279520714731702845616935403854858318069874645979973057435758965334864661323318043175026499118747146949312294360819465774669190924209306143987833903829848186821122286301069139616867199495474099265834303482452889883309912578999506910929604634911340855374233227705691244965678673186340719165894492478702632610617140778382250367434421078889777741252864059692153672331369334773922393593809298007717650289409960331515921569890964520972075287885683155189377780110429588089661303797134164846876173376366328217678616362867771307769990252787140512012171833043936424029880949692461667770541520236264711908596020014940691527800112723826668549775881507745815941643769332387750278773512193856190736341675667056230811321643799358319184905503412224619127066428178118462693745247855333794323755349007974535900721070882878057306816833319456975339315175952059489157223834119301200122011524248271987457683248262300741565785291065757644359720492275131767644168382562114905427259099339651441462183702111484331963033121202110601369540044317760004785545242989156299429893428720369099084669614691260330604400508971529908225855605168120645711934498026969544582904176902745197599513807069245991573991016564314981831969636437132654113556838679900646384835603921313325503132603000763497074468100843116560917926438976899870586012132498299882065966750757741732303047126671128592056923065880944300411002962815570290991886077167597340960161019809641779567999834414684110986785850088653643425149635415851441103041673947502374011865254255510978210986020204634614429802443167615576907127142478100396756454402879470190741353381247465100548096735543248554392270815063597409256329280167023977966404678861550028315639497033176944763276407994755672927665692591398747764728549239586463425445128207619856194505605715504716717374253481405064849985655349269632688212014392041012014114082700976435331028849898100121842985470906156380931073511463207147611067235417217404662785134432874088091593042753437669868342385737790252604939821439572596207851861497812356726689421346520422617683238612866698690285125208760562951572376169491485665480461931007664425812153224106236475129832005961421850198844164597942906432080887453178709944922122973340378000784890076768398626245769642647250811552803344379386888859730440966400384274872394665802659961328909121976941433142161439162196891968808378924387167440915737347546847781598635232040576737315897284965645446462143531594025775001886900879835200562851831038513091477171666635662266611030630525644375521451815599755277017432428727161143829694900634849888706603901868380765092099283126803656466032429944100278987177976778139369760880277687683043165808221571397089492829266285290008152620395444020708411747178514055073300817790584923975978394921081932786384432700763309311269061782415480575898048914267681029701652618672297686435990767557425729894541296523819716892293507488648640325076593390223727808841563185750877094919306151502846354940130631575490730981134831973906251038615217099935678496170397407934901719166480525567368977351342275228581539959401315848198849266976194035952317940370488079263984924190157600828753451395457159083642843660020415412838261436219557867858660928042367371252202041393200884917253484208307335849627905760802270719389142290914686996632902052211226526360355060525421579443428176140048144870532919527744859856696791884771384487500697434840055599775533408837791525846149231849605270834965015242476064564257050571322839233728769808603235116967974672878186066046501514736003410619431118780619930952838544662977043633414242010366048785445415385240547372409062391482966160466938577361102004836430718101566657208976973539623994851710068425118335338139447169222388937563874836064386662823750512403965591862405332247956369933777720099390335299372506557972124018734754165716052703823351625990434303346617441655562482017172584860939015753010788629886649220784365437293688342024843572229721048532392493192036386152316922891255908956203945994628967441329111797842915197734949471754391300007936364362751311032683347344105039103198416527848803588982034269767311231748537770139873153038538544767446759300097127962171434535543894767806802052302580483058284019224188562568910539106935028222462488547888523550191545997498522919486791540761821622211815636931542077618257546889857687487154787316619948089395720850249767754320341974461914368156554548187759340217118723520282552604513647254419438520565966568337750991634634597678432211810719267075679258622689025960850553479653842015552168705062107674919742793157041935299165930467280234019814090414105791349917434237949445105275399509450260454798877820598934085529441719726842968615082737387358650676306926609963470109851598663755903818247116778620685009589768109334629400703749379318364080923506135738461140875920438718237903136995224709666816425789571073211360474980314258679665847518476742027386134151596895452555128811331410692546141562004907227156922424574823605672635341883399515403508848694815945047056918440993961310967747436748001007683190639118597983028618498089658496821148227737396623740282203206806907195639135536374393060822655286770461687159117640962985127464004414073947972694732757762483112909138599310801519502335919611267731081003546405408983888199205177390763754426425265104553461730265538444276905577963514876937795246493455956383485171728349119841618794805922743666060258972316700575906404824063521341401500181306359149664628902252785467619068475401726284407358564235532584039861651764184393329800718937268571649763269559441284620666023329495764482231997469268840510906965038024002940324072152868453654354782278892640746746905267470774937425844630831604380351266343737636983697456916681061936546805427475623694976219782230151632051236982235545382460693051499419199590139786071553739777024494814160515530167454496046785935659465905854936559241070574409176989963608126843138247072436667294899232289273928790107412373360842534768189510195685394273302512362014247663521347522715700928147898839483185038381078721793526887528144640785706267268714002248302053427589320185198949200747175205363051071039781549479010113228073631981370880822049125632952311523044879875838376337304551635202776951970389285580206591238960998480011581650914241668662828594968137477171347906314872779463222800068995989831251822325760226738340832913562538642272191553691731352898168099867587116459421279235544374732361811841654756393628819353203093645404558992764581833361453027961018874880099480348912191977181362614985674098798791567621357725335753342494534273780269597107997796206287015882700677018371081290983991041852480180113028476522914326376232989962539060653359668074976575380836667939112061142706796146868059429066613956909582374642230095565551303577194108117491169994283658510621767794851466615265106198450304696826622637587932543531535511518229686269031565230021413994954426963038140010937662385547225216212141475186060238892183455951187473105817124794297215252643627368305812284907720524266324402564031665378384907814975356855470540853126098093775760408258694115405653510560859910764460630174527033753984992806827994568449916859680002909081190517898134062681760413655428319787914346317036393176246211008907297275206121797444122486640900588935459657543654461410655947178108421736765553597095292188903534938894211212069310758803652470915898823920678031532984214059234090260184134410047419983579569430544536305463588592050341002953498229666125819407418026913531908801189738025411971041479667526681456764655775898228577712193698654710677052410989024430439861066230898558092137781866229866634282422059488364718543801589004992350725052737833034985233701696143048008288679653041108184134721387468029973760525624935763493716237524616333883811743163635081519820835726654742090676714977991939440912750492583003213177745950691286327604970516620341913884202434435725823174430548240656027481292314731690740189662545274253533915263823895151761893052263126511535364806443890428467910201744764822675336108313201992669142773649248869096649997097409939852171776133336847049829495535948151208634922320861312426782002514164076563481300522484184017612293947613854529301061756647778467920019712453173312496831681446021720833397399073157306793272208765975921394187471623974507774772830469200481454136502334605751924291762783122318708557485909979047697074840338229260959060346693358906123346338077041841180125985928769496190835331944649559233773517043476142368862400889299306081295689765684272442538979070874693351605329525572393295811080359666793386389390871266473800602414204647964852915334561975792388713578346797413497668358950077665227149117975472825538170479264963760513557368681703416128114977842436677697512471474977450323381546067128684422751548202083009030576930570420870693907175505791081586493197702357901774470138036957662853153988266292232416153181643223173956774552500443423190058396569402121304234466971214650450839264294290423637574295475005153522420060419496285884129557555255429351072517372490337434741823925159101836833125183510370023676461168224594060953663589663173611143607719220185379036489545231817431703071664973629335806997274527405130375520846050316767625138512283323628624852563091273371315652303915091079739603045985044276246895336765698239549301068016795558471193785135269367503536786130769810336800283333669389393889304255182921894011702176896311250816258320037750785631790808539892342166459355191182726670231517320256520439846369276533840873566940424689045119715456988462199144440435868489223025453353918357709407019617484806482717135131787415150781475206141766824175451714337690996837775821308258157115239493914603435097753966311546351501621408923597026404518188417193552229895398679509704725146983025505176720579556414165729523356800862554768947860147994384710937446802776060452003961349488294738600406712114378496231789956393699483807704955063139128286371037964164407031427605215754176124354152488687210596863083252750012000658134517235379580465245670706254499539106832323222008594465222569284213322286737110866745474888098520059009491724058828063090670600057885983620634134921580872985139958758004697001782386465231729319913637060438106557092348861441690119446148085056723423221217429750698392697520211480684054718165460741459819824882432490669755991752753165962010151639481573086964972267339918518312580471949703037759217806991203521320563600886307486006522247466813816397047971743528529740882933729380449886114956010707821584834121087830343916345182276525966705454500605520690094877025948606083541932321917780805572551034399856444672077080497541745448224813170998735301438542625902996666393928026522584065276815469911808990048053714343387108489434144235587291643280876325483028192799732137864311612788640022258395384249256341869815058714929669021566466544400067581373017192564351235429062523958669034399449015810520733112008450788189947845269472467104415157941674214488413283223195411386281815257902063594609540729594608538329892091966331153680831710559643095114933255060623698204365786546631528791299395531912817504689713793419354430512705063345742579992544748792973947137869384997465749418584319094426812119618352959825785407272065550465025330427381313429459669522042881674699602435204215249133292345314224923505486539352510915046532206420150442704329195207878018207646615692163150091507376153283828208889853979546846597130957292363291101853374541520107015466476951333418253511087991667930553795297018055137753528643916122341328853454497317727277880248438191975769052397365757462090552707636990482402009266518458133311490203066445456679649318308150931740160595764024745618357795939213854918593936677504101052290690258758548950347211710505466304070978298322164505378237325294420159786945206746714392718518675818396619509646956054978642382295286703335461725801677062650845321546278322836278142749206746297395538304076748498492687677216447303260538895498907980699950515472947861734324742940583939413115065137700176316147793349234939678200724610242725545659365502190941289267418547810700987735241894513655201313237371917153753824777017611404496017897829611624487456305956951711376466676189010728750621973475253622939078431842074877776502070081715211805454016661318235233315505393296815808102865845671925269259227124824799216233884532398108976053318394646065776988183840932136009858745758773816943636745605689089912253974845942258272657998809493123864454191074189402601589411744895546174169745808367490444450505935485179208244101702222085600784300119188371514581120026536625090034228887885204448799365803260932621848818148652523356317480792839701860396328638117261950479799105698228865179025435230153521248248009573001005536150566292147299408844452370947405145753591676223616953972879905057547207655749187188216928482622656541137939356459195113139874240668806821240442033820831393098052905987644186674323016403630067971352645985417715036654551112452037260601302441210162691785402554833098887567553889603724672562115362410991238545423336732188124750552438609360951850194659655061622409709735583031411860753725244294977163834723970144377203697203578546368832056341199361445450863436228351747724894818394290055411325443282861567642624437611122179897407927228555541490537788809667012594490777012762816357742646428967438305309748052252860352599841631406757528636285100695655098728845527464876495915528001485187167064783398129018229572403985944451669966730075368113074382478154826387329968007657047461480243445144781984107642513425212951098131216723462072374327966130136355935311912768987489644542727227125460757302190576241619795255912588681264972878149062599331737071930125439715728577914644922012206878074092870800214400765193248958333505451461419193699126741400821940452352058105273537312657103207272419624423265320445534237807150964846846590562586754838865483043659925142393564702569943367446871926997138690433088673750130236250063560445516625789904919328581466987884845623204761112447177232774967179063232724557382138885723316617094871285588601233772559336121079143561995485556444328645859573016016081845733647818068275196715586190881374949823300955705496152073952420210622404915831515953819671045830815204630742684678965921979479518556519077850225859112371969548340801240460888301864324748284835310869034654025593903215963925731791566789576922532257316038003028743797906446081249515991700543847081005796189587529796437491794173209666727153168469008797904730779246146741974670129067449393051292935823980022266491562520343193022570181599456075530800532967677388529882570903755014940347615117031207083303088814111394951045897464157084187733304033714251871667154691093005785631959058314424371497847130479140342387137885425287316875632785997347789054606148928168555060382929535521150840604998557618403125927552191359096706552405765180317872064309257975511302295188628930767549251278034175136718143768141129306911487017261277379396483443323125767709741759336955988651273888691052377631032651020211911977756450274177704887673042875080504333427145192129725097434429692669579258002315329505478048544527262255574231074248655603904462168299602187529544887183412216243857201856046685843612967610137442482003265083367451054072194831019434289636879261106408216159052006651146855511998581590253653083959517074700686792801915467257787715474581501900130872163579662635187121270058412294667342195888589505571493942582628376531291584337852443499159629441972183127836831332900493256695904325647792502415019639801091167302175580797914031539143524842268053838654536300831509742544671951831517227445449051969533738702748437872667320969595710988579786671249621672814014791452998112725066167442281575091862742464870304140633495310425697960116447920457027699564915530707450127419232363448652988045249356101512113532796834613929916102240503238989992441520346993180544331097260363164716389084631225988348616657451446086574662874819772835547588709990836132376672239420653010277818655138117932742181800272012052893666418703577576238162994879159087084605532183331709961927671111553241529470485420655707081994721476132986585798296164838272892437451738142235011472848653920194262768139471561868512316933293932594338416836962814893654096326417211266616555371230548834448568896482358983366165365100175305131161174670505258363889918147571850003405725139135065955607944073649707382149738264334637143963244977620453631187555970613693133165380777731659163998109574878494173164468911494965268417265903777485849635337119542422882388791451470314879503877647184446820345527092777767220812385254188160287786121380253681358951271854046839942408019525946205689697061216668127932854582106421112079936216870655633727991594221962472794611630628133401068294330809085867330021931723842142202068855910371595141742227042617013944994207658163373975373144225106598215371727137710651553715379502861750663284367744314205605197461690615073845486439115198234299838201431501879788132907572203041860421250239754532124397753706760860936203559067259978864197365588164738113534248317666408819363001534474275382323720579776860712790214135965631032161969379620667115468138792099609525820651210173007399385825129043662788631513243773352137767071547324156587257830436756787407727642072794836673269531667252469122359812900768983096011132169324565944633404715674139968619074777460226022354569917684347037531496842987448222311712475418837665334046746220396411776603817564821741486067410878822256132043321423109336659856435865838435911126680067366474978329608347600396139694302111316941257343862595738867950648847793245723813892982889730648430684150553011720426598545311025566389310149997399120025628029148416217435361879546855750721156435608469014321705027750517285729100138083805684163564432134299157812974658080277571144447192640340591755653385519712785802322354686565300550650331438862588949340332819088577123768655792890548317400941991762213596067103867946066893073887623557688198065271145197606344812842762273314775795567025516405926836538500416281496103928758779479537262427725430525216257617704904168840283836806967409590047454153448577697845541605687679759869290489252828040993583182293223073938305240889117404693983233708937540131396542652964375989979917395934127442184588518542960763369562502358593888342170360033881177804489144048016419149358583093060610221272157247168466732335798968079965074765665130471161773935155952254831628330590267063428731275184896478618340714653856787138775093055833180143617193233632552449204213352085866077351974644256981812035714097665176325935430200497201428361459397865425954896257591556186525208159544669130929157081815545753672947760920720605273914879013228475676549176380625509183591525365827993937632160107952903762951812737042069038554097685405557827302121007095886819925794367595559321477695212991052247756658107171463543094596274099901538420042162468551480641063640766928840638334337618891722641321940005949437983161366951227595092456740409385380019572765755298880117364138434897882942116850989377654258091690745662323087178764522707697265720196924323078930112039615086692095531724002573117138028991305241030852428413242355062974546562170933509147417145948468270044444154117108092261403258380015191741865266133219977336709513974116673152259108493641548356971292113823098212440429537802277625708340944832587089966864166383216150430953323648187954284251062011969983512385555362656595065868980222264225203115179707297137146125831126128254431437752034867482822413480980730694517048081703755267363846561308869251651689136767815726416501388808956456561565210771777851084347429477072296341789926598268553712309161962582007837773964205102670398422167604058294401629056089118138027116171445928095393678109230358116659976281948037874740577359015154957873875488778935444069671855925046553015619680364699405346423287388710030898489390868954512414620082186128525153631207575914033459840064530280535477709762422045807968327584537273090897688160885186682031460364433583796297778186914636253718303262540708014987667415509217692096292412755579220729940429176075253383749339725948493658056249666806776583575945286200667838263119001946735920139150121188844584857581610556887397799527761097586170419490650239491482727504319638610497196437879287534027779235365046799147993976800722090857616918031357948632138307595572447433117962554104666644392593153712143044923856519975674892080693297426258361032534719647392280250819244297247191022732535497594213285405252103056131242561168802446144934106641100889604812931365633526543430149939661230933929909560416040647555065968272584433137781446175693984056734937314265318409319177557047597252599982295499659774275598042788534103215570096388415667762245388263368346876873903339625800398295668904214614557850008296840246036288705782077164590904230864176629756120107461372849664014093532166642478553717987536400699166605673541816694519748802587070795398757164963593965812607736018536928159405467629156237941768375074485444689439526919573135796790805090201264208658124538294093102466406054273040722543065596811982762184025773749721871882914193685096267574957383946258491177638554861480501660408719138935209453445150953100673926296627841191954343741939403293219517766752683250319033956545020392743795244117015699819374178150217992603674753174817401269577114856846196503592410030399192867231451334958889159480021452692825056484940000588516164049593313387389799116616581598520117565020470380913128956242256073297814053679979089179864818064195142835063075894532655843700276452218190244345301634590305003629678301496365033469011375117298381585093848403128079339394613912804127297173045541955386456922124035132206762146538808929613968734347063907264470674553872842629538295875860769586867260129363779902117582653265321130613829717296253082901542282187268514948302178462906023265627609133662242284322538992623282927174301872031177189205269388416320234875923575746939621578977595840120837585692063769616411640905868537681404287230124264220947036831780897001339504466158245407577998046969437909993219376692122484346551513116344583112958877529837147201738535100187798398223543627152144014151664907121818101580716107787067697780007604733358812732574176012914014738027407736894489289513756975991578446778986812251326289014706434914836756457542778295389271263856055009345769929328547338758507603933315829239129637810900668018383962002457281361004119984836313001415315307633483402173993225163709394096728963694846696147486164389131115025216524623066846536457713283944309858445631018681464920319391672939609585846845663837704818150480536970612081961422993505340450762263767277729606282820729894006250867652950544330864765814980522046055632648053959452001356243138435339889172084127139128008100929357084351385199323246158361796236406998969689283153194056402035915009606130615433676220421059408193963663803521400875886587559210132422946463162476306715981635242520763875771142874653346552167652977845855093431582893995518185448447403479572171610705909559694711745032229978639505785762973456376474020075370279988192990552942971657184492772311349794949880175434953959495805780728828074505606931332477606329144516182558710314658447192030720012414854510035497890734496226356257217137795579791831701352197197879272366742610968422510148556604378092606824399338168855875648316979583863777914600260325546586298652534839277908574187707356131306255550465148444214828507541224561553742551767364450908681031235604196726874119405012760962928429783227179393765085623996515311065743853227359910695387555460877906367094642725167690273932450834755088250781914290790113396688086560607420614088438207959803352104422878704270341225319411073986412725972437508365715177708679848412269076611879945140500195525205703557133055441220327136308058421207963888564762094950434285379575850571017745240849337869101752347039389704005211141319846840427224436468433387283368091224273995356961108963472226230494683154627421176444506826552047764194142540788241229176474673915715045602625238631252290053267150812563156937833201958315856548074217527159369889476525000525032431858769730594161076100257177654788765404588474049831818536721637991244348924701599351321442315687677919047667464231753677472070990856559303546829455280149564382563450304346164091610041518235418809476884023189880176772672726473982235195123897889219175183263885691821881856433131733855080733110686938345109216413469864790673788992984991432062964266096818446741693669707242609430697413150675163711159706145537162561509572509471323515240139692165434797015084378757011621448772874573538288238472195704073716520942379654343397465815252870685614880720870209392746917142906182981758116838700641103080245898561943032474287125078524279104306535542467202365043478210636114064205985176914734893593749828424958172304154389512439902824769848868806573240376531048744013211952410752801408807416100245879160348454938280564516529716801369039985374709053646990589630290319782906602542529948442623381807572359315225163325743733243381217461015548983349073199001417622712852253521924830956765833473006144785964226637961673075038934662510753110881906792864466040108464470195036632999580864648312848603415768211629632912375813516327368514621972412286926965684355601044764385527982135419493076292608786081787118308668473968125371703070076355589019771335428638571488457020517494549190808610832191841414566359828644764585010684379832273028297219324428838074389127809720908934402368394654810258783941591575454822339823529822780294747176403833460697377840681636062822442545979357184912379420540319378887781041306958204565248747877995283283379336035192392259643050640982504468395506048704955066067719557769242808355458287800541051786370161155149243740762401476268293931982260387313613421878750262113938979917781737404828025301317007699561824220345096210827553761102082671166260551128068411291785891109946715141302469669803731324167519913744788960733307793161725244412170354137370437801400543540301375055938501189385538851694178437708470793916313411581869996769222860524961441124446508914958738663109219922092921936653639306811586919980879798049726604701910183864472356587439662447654164940299761784333393392104611669764250962098499397910161364765028851560344006459005175072901043829442684073685050640549517535835861291326318402885249810515758283890700260935389057438093673553238955944700173258708535388728445044739025201221585661639020155814191671388345288103767587005289856480655537468055800808033394103318812777537376392825717057204826471176493913836415257495761137749666490371676477976046807562163472677804794679464047755094640301227201573553554118192047737757057095880623556380856973447065580428589877127855516793407531236558768897153431907126264744869259216034753284065022702651029281500342523361928962732413238373344852183165967722000670506943105994120574507099294350120759972603868782097784360584215702771052687012362321797348538615225759520097236283901435335585613463528343556528062842285240069268025019171060679927185041536846933055689763808096665017299882334945714442367160279064808851098766049689270798467655459705690717853396968230695959101947521151041354141490885439215782308646924427295443547831925124444171454941483862826619744047986723680273034341406891257277636384485221073796121256851653037683145048825352900436616603135738714349424766047634572971095440033827115747631306927252148703047701717399481256633062927141460316967242151637051550817464819542336543073102621214132906452096284277391485145548808061170637995492019830619277324688268286125194445569372026751646477517745160421454621779333394699386372783921131340038078761570737326467349785783291115880262644778120287760941530475383877639108857046304716015896449357166043254223105426170081491654545852315519157881683251661194560572645683345793365999245955260303810339548847556078850698939046852286293666682715482352386950284373902158733958610993258405739898707195842018597263309761058863096534629278021232667033196356282573027139895427093376356983643853782375758492520972842913683806074050828308735948248463720256127158519667173792836454829095489285189860553290572049017032654486409698874232046712203014104612690050335420676394024338815738470905475477445146261737510880237174479900511642094097965808546982182192549497214233362108200668427482095282970563578296157205357075383941894886264968173770277695149982373036464600506786792264588137522600263916314260172284291057966617837475491586654261699595425780189296317174717607370346413688637127529757696686466578175032727031426966497810763967115708194402327290325632672193811503594090037857607201054653406572227699614482851262038551094187856081314098693808734759400279326322057323390624514616148107079201025734831773754336099903842503466153312330511417582297990310266068584471387999355747785129960271283104125564767847717715733742018578313709268349126718215850921205401241178235705988769630245712821961715218803845275793399081000496178813759504830441411025485722852272768824664931958424472327921154274271582923505728473334264678594406730694402690579290081276165380660523706546648916964117910320779361914191016003250634445381857841004572171563969917569669511048535669985669685401155721652702100854060991311658108358886081056480755635398492769371437248350818061704996209512841386066999674482733543914094371097561049980313364286391346387672201563664257249797289289353011840009549651481564740315553212839676595844199252031045439189027580482984297119354215654330051277473574056290990343243208107425399938733498904821621210189593951582404092683294469498466557891837870807321434276380647509761010758572385546304749870984828766465191987554808932053260065451065843977505971774666290229961293617046466093122355180392520754194390137774376054610854267081686211300404202945261129558009200279436776079563614851698924581298977528262300283803408325734567220159117999377336590751511663040896417712428767697402310458240260651997040625532814011449388763654535276759054249256123800145193050234013067527361387492227548412616397325168284653366709648420178463503566848211828107230741318943658009752942019865323491461934328704959788143474091009526072502078523768804276869581127161875623611154201879600336237320124767663703967806560301075899819235947655221724798610220702742827173771168417846698971065482608797438723282384902819994315056709377598202604126571782937405939837329874509270678292633807315150004694987304495583956159028499633285688642299209257203086861776406068898594981833446128967335151529142452610315823688085003052560910681004217484934615547188302197509833812421674809796889578097870707771385535083269334037470667091879294145991001105584617882161759176241418310486186842450870557535261293777945606160579904823396941261946187868748355040622807907674024384908792480741836470393884531702836991248763606288258279050595646998645232459391997577399747418047535511352139601557807992243472379369916564333426443317905124202627419920915792979512865144556128371055087328751450649317237052574356788242372333029387295935167320592809446817691493286295301840383035533988105447549684008815734095800983299802581049817646334360455637238439552509158856266782442035783405750540173639625804157610747904881030839342058604705702020565489329561395508311120868523475816419777161566429395871103946024244412829982742271718765113486598911172719957794175925835668516350943131340570637454542359496465157718836905511411493636298042762858420776397862053885453078055088773185734987126020020410665300936160837407911255173985447716163050686377868092964363772891569255604728439503108431427312518567545314635842409518782952338574580651105424585725214067675719998183283358761003799456362836576072927676219828884130701702457088888125410610852572877995579192433330917414297149925374499311740385719446003224066736017672913018621256033384828437065368826962231497867348578411024965045268517666764628798955086361134144544315965801243773203452726320328063496655757300726390861638633196653932437672540643605032574151681241571284546506365787012065454320381914349090568761923424246038128556197990270629901734255234955853954995427441354463485551544287028925916799686448510894356935816541449138941010324716095715449432444052455760999277184569423393540451855170772464078176528171288227242212270175340772290982186745132352728725179992674707781312644260335225186659896971079281169502208106850646391886820790734161355471014697554582553151406472609214004212889628034134339439844323546376028660043532522935594332103516532730026665055761680979216286307759944078026206343815646715778854319184974642989720841421229341103837514873346838977890690812772343997109223165086300228659221039214039740508631749154618971806588822297686179792155237493298998750888332428977924850381924501998235083120555774517591084953032917416791031542735656628831218307848237760488798179436070130026265058374277699396651898987991106401857208071542216195099492302590049665854079070765463886334097188016983336787263239439699495778615304632450623932499188948483667897568025605654702152900828256595346882304927171697941333298007694996542998315189711389821904801898686469350434657783102316266970560189889132141393915908552970544653800650194473925733662888338475283026570329349362261552260219616007639214664831606532741083178964805131850134539528103923392165423870321030017352498365212536120440551880608532199008109401292051825645412496687874023568378607327706750914613541865282464137090884694643359415574167900934236098573302691745154688197266326598808990074888293990192568768728905777132219667742524035189053379258393567337644241833017578321267907642323999492706140334912524312943978240320039570475788462905814763408692474520558015606982214151729974590764306980035403842434955461716522541032050287913618067741964083898130979767782942160971591286368927917708792417115891611287062333291313726823156365386930220407080272324862399711974760593854464402306349084485299374077289466556220532308147027219706312999477883552964266129133514361269920327549525221523617781150147100796565059832255060411365972146257054485610058388828330805479529125793619601012978685381274233678689230731356191219349168540287693469785102912818930899075352173974563319659971443565065706483497406521631165245088793226007183300700668927419898420538389894883603125913819817841397365325845278365810685160786410628484857562351037296828490965752649308180147342294420487021607057885284323506707804284672900271807836990473702465080148799254092032237814836325508113700239476255314678949679291819235598371817514154641080765290623723988508579325524142826721839643483759496633840877162237140312502872637999338893205130921927682348581221087330249767065066336482282052919430495331435368419452125411012486033151254917255967624326423022812680595740557103248891673351420132383388892960065648946431326543354159037239377863462254107708505448289902415479318129900583228480286534799961872116355385460322798533547605708962436325990533051423150356803227664262134418871755963767494627668170562890517054522639384487293993857695809677016038316238008542642976725690438398239921612901023562124124885846700530265672625764596414374875614141909345344403667401435718542721538564678555018636338580219828461785410002110019496494632710709362646447153525255144419058578311904700946130254555496885526393359083245993890873180457152701538599311306842812219991766958354998456663862272878416286189156688899701091468611432099021056708871749308867461545425972551913197126051728044319993288930261486573742693562199609098179046196890690284234572204802636240989821682284959483040965478086919139145069131528746778867887478970367553039373630113356572593419183680080813851366788003381543562057115370949325190219516560655151616441892331491549842458431883237980287306300817052665369947373519739609588478645036989890048486108502868398313789037249464222422129835784445550992472261544133598111069993098130801720652168675634416349696789572181632712402275291306335449039142491776448485931532701215815366499230679376099540552365649939143242479216737668331361980173708874529894195153982843707302790130520613150655762705052898472789731567862863423246654622941509832676831887515764525546748732393145018996917963293945527999055484217409686390958713449474570449800566876222339574039286511764919719869741682875636580080105794717050005100933269006336606195543911580501405057492520950777218120611836847391847630264992684621645742796613922030260549379792116468140830496296091144375495675733048527741548012076340226477163657479038404007224448909519739890952463581836784260231420361151704418926156976377976590886699269142024278847875177439671029088768553680538572309257483832865832704225743912665173815462486258444529027897485034490989254249086771291554173061091815080886434516446022010856809020733331912292004106144972433038555748648853048584119296346960702054544358169706306576584186489811415284402511615369156783195025959269201619635019629337507983605554616557116834207180477923860755414488707021852750287263809252690019586150446867588377877332980767888082861166901589167385477928133170682464611705052456847250492956198243421249560563094897018202095657048620162893108523371110725707720137282935961697201242286130089934043213741252649410474087801057599848650968419274692424962309984430533152147019942769377061478283914808925457028666731086334953045886948558360649157929903431309852670206898866123813746469388954483871973836962359678194873844219468883177013912281484613194918623173663769879716999292251311366467724341010156883192389289313230793533990283747290758022004648340685217605253479825460912120524540268980670425529273482210798663681002352563539636136355027867289042505450810815528561438405469652942970573278525481563087499300929241813444122062039754926043472266017162840519315976511110945476486540864341421232342075309677923869477965359044259101566646361190446963086045930899693738536406573578868659395224647209940273055898501443959037832466447612864341622417463799674592122303687405621881351570256379181662906876361024845579597497637109170427905192581786581517495134049490335029763646420322288256280956314915819087229443923031274895768396405215836671986698454043548363793961371699765847989627948565544033683661728307895205799722888933185078719319585287092167560726886960182425412819808456649777460411424928450341445881588003454221455046907026549899167830850679278490157185024541693332943694189686433589749454764791508531244828443061729051303706452686696150898146423596835242397025269545777155537906830174823052253912258374276439003772560136308608857555989896927269937618025964412401008147867550692734199317088905995446834685094657819340471186723242154028143743140004829719481430467401367969003988541594079657881550355925099340190603053687499443401905408664641426587137167056512021470793940459684695469873404324513319127615633314459586558657188437873677043758157652027878288093936431736575495762128371987521552622525242083636255852463308810368600326063545185858441430336140126212458041255670034974100735502604685456561718819347362323547486420110255185136629697793838614635093756305854952031293631678768963928831437985555834386862499986137363725721308572930290004664330434066021724889086912002144887471107999780380835830937125942558030280661332097399195299969257962624470743110193453903033853989324978470297181540574261475439000436818824129703705103101834589622038158228443350322715763962816453684467369649913507557461957238098254358699008867699161576859488526693347257777594153030664449681091423115596560621721597801926945184143031717348204511363907756957337189754700607335560304972666973648895116785307770339550594413224426801829601694406774062955820631354160527665657857596862507653533868499261474310385534383828188789611627194669787701034209193381214768726542136696630537394852076225282603679491470982079943863380480834873393863743370868764719284439321603769205500317522011046774352685346219190544986680351646871251527671960445591935511206582131773531585281731663272622383265656065628565417700699141013627825967229749096033933625693733357402053377052691654885596058985872784142074627029408261950246788489248850723591331623317901235263145299505208012950505549621414945744342333818252067841122628824391099846751259175468379445411401764100128287034552733352215573991997736614979713515097375511698738921250168373340934043111227050981269104010837634848121647500881084364170773718689529286724527161455969007128406848214631202713331960770251987244206030411588789763239532572218544501864829188031716872761014039586379022540933574082417347806474909156433137597903242516605253930350847412679893291176060964598169769185503475823456110296912459746830942541530646431155652101915802938603536217047542937600219933251148196650142363773302553791190363819233981303161107642598501578181414295040019899094088893401964371186101116451364853012851684176313047455896611826146625835131358067863369461984186030993350477145918851627514226982154043172326478903736931316190932509395772242710748214574947102981216826364072402242863856796657527384137550434209469000907276677832977256013435059709604280051786475314680714050625650882026835076961719558046683850479573128921522191800351934255112921586934684291211361361157211797840454533292172051435887948742818908690885811778868153348568201323342259023912800730500035497978839809994638179815138169605635092377944767702088060563453542914241411364797095847308329005814830292817756383477985570092081370976406961609345826554012542622141377085474711813596919329044956066011397830044817071966950502414171342172348003955732191583628005453813544025571336443979592264477237062058510711723896597281680493124113852477702081707076262564227449852571851837790943397736551862696044276805209871960781495971707725156139291261991527622444905628069448252269951051083949203421367020963110941954744276642969005189719667594023095977909764646218168691166258374675376729670822114638817294027704912926124890605851110055755590963586918385436259609548028296130424089951282291857901343535326313257474542835084613226566408915532570716063522187302930758374404257684949350507763743830979763881570669448723230002871648202190275350728207957462312851752127007259182672286628188585903721337808891547543365650397690489638106778338620993667655494599805912602753626728984741274990936751824687321301615420023426956092384790651529550127069349403330892051858508933585438555214073732022962918412263905383387364809745492059266981087167671401662053906059437257960480592768668365586924101698445400125491413749517352089438718141831734041136904215471455945726376320939911855926401773875699822445862755823354314604529895101189807994753097422154699395493273612425253228377466908862857239743513242474864857957428070273736689500963965662876406528835991060650921489676384183835866229200276771615981876836121142650551825008272301370412175423434826599818140768308616498472343555164763046932871169126945283711406142003136722147895109926513955181286247658660087511512099627565615110311569215656410212579451190015355296695211352230310460896312905688386048308675562075381897687464142452458326767381871263634456413129115711382848919761328712539186277853411751542536969700300679551261545950358384826747990874378908790459934388628353411283387058766750856313920839309605042357876126624742068483270313085995161948262185588975614869638373396212066891638533168327536190554004577048208115832169252632667821850162062536471947322282212936557861161713781908117260065279978956104737119405523182800573709902638774247518439009437496219167295766148820079164773906277888381982798592022608940770943520837311339714925632353117421755070933471478590973973157944080938309191590954461309608038689419308808327647599275158821167738841653798224435450594658666270363014637164437885256310210127085239539485091653801867387139716428958025535409169011912896105424736081151067362341320177322122739348141312671998342081634432363345260403713754943608443656394201234649273092329754676655572934454657423716733003487415537708257679699560654830635901851150224889383787119775736729282826708049187744805245394868004435144493613857948156990434763950182994048392066629551947910903054183190814734497638814535798443754268554871061047487099407212254508070294275417381438113804999743604394628980448363198644107688561220319191806043032161175068470883759033036452559777658332305057152096574385108862562926301192794396556973123703282513176802924870807597792592436994269948454367989352485104691901898161267864599753285523118116045469331495519734886321511025813949799431614563987209246084611818234347270001762699170310897201018413061742518830174689018060287725872972339586273445193894427508138266023909993139620705548673243417786142104006845925292463151491339737965926309584881444081545380134832088110624356658321404113195977609868198946696592517279737824431981317994072821432950989049260498135789977773207276376360519185214110315557036264701313124410327310556622582940135166644905374115465907174262267990372512005289674425830567771482031993830312931369724646148120523509388971027998862074635633162257120050585267207528674880071082154554453440744844693118401355460553797132578517033070847306426963431084907956753757073819869538882683253005032618603970137742868588606261601370732564742112080644500910291178954871918677387590184357171747718582323831877366337080842273730828308399890746629596741237575109662463687127336917048414355431824118280509951456481578326645261925210492780790058139753290349539979858218388199282359881447625689098956995320742738509646078204623841426225995667174859768716603989391895357665393044351955031994981692632565090735965975224645815200102111664385179566204380781273477356187546524595764865573501242602800147384025475491680237307508519966459867931762327028189366005230060091021730277143375149574235711372259355498050865645360924847850089007044914825947898497775760424779740363580514264368535574852328237455561948106716059901380989454567607095961158876552882241834661752836217755053333337585580003721571337351779020441092760842210550293681690658093527131608218278926935138252299196569743348808450008843344533253886774793730852932221586914404597678979604815389111024865881502072223337393600952535660099114794015298645393305919288776286557674930109800710530973534253764783956801093769724896492669174083945624093860351066554869436849709072678303111657024476386290475967194647533000629131043815688331601764870151555198796116886157446969441814278493965079209387311068959499114754453170520989571181397571773210509920590521010003280522775853026737247234180580884093142165164590556699585030366896373534311774910316922973759430498536866980915884753725995979184567893778500424316244569064123508377983586557846133337187946597499985941886587996407969221641035697144869562490518051621250031761217572958240605756580196945854900045759481310497496547314301068464429087841004181757494655694088531885183088427029119405497333037708455845638047002111992938263254455826631378844970822110475120076675254232889403901346078459946243025596899729214279248723691486667757883341160615423150112133733240412991074102199158592585243279355032204657304848804921717821441391295518344175604038275539012668105612024111743969818590137924357027841786340036065783718338256107629476023775808465017989484447652226695839913632753548335337589803340666802301362067779667417978884705082192879432034356889184971394440275034513446530953074595779706565351196629899127503711885888991828751229019270304887817675097749129329010282953540486031159675339254125564555733658822016120593178979316178622095071438670059261269283361929876847739649021067478825153137891230154093182526851919871864702133089212720872839686743467392196136410333277092734010308054803366586031694907262497202408268940276670936766362419581208030240942845594832791242911434040017196562357651671205333908878763818429573151578831428285160421425905995505652518136268134481971611913528674453442918917763020506661201702403999626936538994449960058762357929458799424058117247479149134201452689711194883192082237296763708503216389125799752757031861048291297473075544940798292452612851438380320599602550266679031411723889905483369516193120128793635726766416628149204266274125116275805649356491872741262852571254068617606733248756592419410907437060585795063601622606339414450887171554941315554787026071229843739463820620606441244706130732014369185871827332158773301100272078456006976936712180286800019878571259913383268695980971481177395629489790718167195333022909917648391061584848027438687849112203657188544058903614417624155589493024805833501752963969162593559092323461501418975899971558067006280166617155283912920671587646566824192386015821573062767610068502657411940089985711335103880828541295109107756236839486583235087453614911744185294083849705418470323744983227665877078484114300156578186102581265454921747479370580774492325166775951478904501404161726477953087853449222368537417667469883698517981816778125094310479453777620356075816037591670722828092699221586472161708735826406598217984201321847807196017912889341623207742881374316720899082219343243520284137949553099495956122080540188114446784776380133781539202444683946197821530245416093995112092066950498637401393887396062613086737228405901965673955847799537002717587822597805475332553078192391988642395982937608120006809484927798996286318695099660148912758245412972082624748926444005613016229327926326842143823112595904388028419071388895893330319629822940082457191711870803490113852380985373801919762179315990883269794612846209660621195843898444116321804441347407210857132809292835848850364599191890703683669986068582313975096388275506475903763623026364378487823844495785853876189507828688245795050894174355023708474261745282472650018080092872345166839252638615755714317580910743805784807114704360728142794440279641288030421052699389997986603884665176725962747398448840497295930679992521092282438522919176599870968452662610549498409299691580836801678819702164168854784616721465888375943614465384535847627655053852564519555822058941564608766784876183188677127731038355801103995597475132396952991731686564794202016259778469703486199639649931653728786258539602518785493919403049852907422189333152645931392487372976622805505332754136292516034677898388361822138523536910781066707109348189335532399696060685009588801940882988526899400188672586715879621043581438575288057381486197376508990473636205862712729929643897536199283526615511169512423805668908349389027579110764975385489744412428092747205510308142164822155159398360316141378386322134996044890638832242554421179435236138020600011091220737978556643777994133097955686417619687449159542828403065863744168697230060638002962875081863056232825158475211541639372564649638855788639085613017712731273461707116348418319339630999116925863891728194257740570456489437017923670886986758826245736186173300775763431999170024548194656468856824623752767396877898080841839892035641377200891495232648821050957951311085517601139645765050144965448163323692211747800846925390966450400020380749341262543054853541424823267002823181517221851706022190140338866937029386582249339117917465178946584670121881331758515089463206144331379795516792852629113388615749587426563147998411982886939474152511978620436956600725104985624101498395531642763249238864376432353351971870125227374009749199390443439848437319929122955321012494754736306257625445984650388956661063067432914254068287824607510206344268073549213158163320549217832268045063063765267667935821830341422874271683667317027398037589936892468169804200403251420866024666872558449844173779223046113196962165220577454744531848904566457548026168351677715412658204348689593846050959693727989921360411598385928525580866932033142293591160892269103777837256123395036248885423783924543961944242920501167520426370666174640599075042864180061776603946838224590476942971313258560844090338676184722335802341009796135697483084322655410641356909341392673586871303708657687917606551947320891831579016197876085352815735008118194251268373001046258813045056002524803988924288226234146509850324244510671802931109305820056069304139897278822299487998240633045397540570492112366080123477539426614408470468214375639664516348369024969523243383134865661979490719130811867738192191165409859611545965200214541742322263238361319754862582759174275593926161047848482820645843521274841401728857185751923238174866491279956961426828979473798469698357849299838017526153555033570844784598506045958006406277709958371088149777108971869748105746874372559513059686809725093056708873712803575000828592970231006210122125436347343716484150809401791094700018299869685475961219280064173554935999702372205664039965816807247740614998281765005570661023830640008646231187199313837536497961272904197553470881400535175845709244940034987369878774793340508915512496005715179136805968046188456678786597104028963391695809155968269007876848567825891264918833487438235897805666764220569086084347410451025063371183765091846306118343857742596058026910616352815868561183675087372526222926641432835600267995105083899052121735325142159455144159106763367318807527376882377989679766532885347923267118210837962958490321745314001982526792524240725809290820919520883339943826840215486388596916699962385015288541238757412891825989707550517108867463087540183712069448589619457060812456525798230803658800194688641923883039732171844445263832381832031830248426273135897678928761801414292483943661908447329939089683186523926396782256763277714968452391341162942320489575216284919989020644288098272290262294914843527047135594102617883252450660925034909497810340858427608419687798939678450065888321614697814277770669019922241550545719505771194562146526883521262994957751643136619122688129747490946048964478410662824203014736701500411241078018849029759751823513165454233805072840036616012089654883285280676683660403654607928509915759413654977605307047657546096984334871750739818463491052453283954133094366043742092536987129283617677617901822513896913681016134666164371137725062366671698701034906952761228262986422973270064920508495822700255062700098039645548483620830354570280511025343765173936437506745594699302664201764660093345558858800793105057759875646039742207983619798142621551250818988100255747205602831297171973855796632300120851014647953453525390962181794559400896244813767105825068824329537186967893376011798422908116635481152151049882368050089786236761363083316874550043502176749503304190572228658274939058832296622325358761190510189079985228508492479605248582230713136636650145347838178511041491580623333289951944434780710755825042743325987880027344799105045993057149773501213431701447998665304078548730020287063721497256352275334449311274549609606122921253438573669019768421350435549618805431804810647761318672256385811985474730203156609639298002516125392131321820796719394977595941213304091649486217856176315965965063186077571886639260091924372227475032557462784174613499671240502933826812042381504023144851080570672076627172303442011055024777799034888766328818386871287430162935048119474992160046038103016944522652497847422517497696793290637095851789418965785371341329515137085035914628033386915437799646208172171069429583745223499544647113530543684930257844623480222324228057086840936572427951614930153602244340867393915500840519296490850163463650464027168539553208250648884575926135896078937288162305442258166176133140159540804581508729028997169989784115418539450567682731840352254172568979843354265360152361323264563953071675505999478957560111477102003964663331092206054117575302789521034193507960539709229835143298701416595568750850488741244363499421569923063995612877977232094876702114115141031849796143397819241587116879889234910933756902633443297199363412126574915278147655729961352261980491795285600683747948076867596148844075960027122314924373555855466946190276856402605070065367736626594416748433973261304620875407132573035406974948196280321190754969762244301341335930870107870098440945830286117326748031184554510236056132658942408205071587045636676374119885687822385697073988546227859951096682168615412723350952822670927253609681942036051773992659918247450034171456613642158673438816012868179692554369400300830009051383891271061734834807989542966824057598243944053947293382587885803935301347919348393490773184351775348787061687763481806308637127937170993921132541046619422900463152234014919967540475710480158262806354119527977258642051571548652557958837428280417192298719363974517721549475414134565694353967715484128530461304777789615091425983430771595042040927900070084938090924086927821881012831439842456413617875537618293460483831392563795847543658743259498521002459873399413705378946872027957918684656402846367428146839289123713510993124788431772276023491037539770734804056214467842855789623180091252363514473254717995168368313918095890720757542469970970001297036378355440975688394916079531060733610247752682425736194368541266820338994690791008730605706066302011582393430235306033365939876219407034368869651881111073083612904433067028003179832584980366295568867633352145986558905448729324213895366832067116229636683714656151974366311711916610519381297787576005948151669115789610661526591410535082963177010162026242121538370844324598520424821918024098244227291645756643754562708216266172932824537483998791996639284204932934893412276372912856502954821446111249104107790075246012392919124894373834021358409073234544255104500625111889768102418576397533318631143400896503401817314548282358173791451648743601841303427834242377620670735436179668023125701329753267207171602961547277425292498196991147709349525581166016791440805266217109266140347207700877150474098281895283339721375234257697290555316510733132153776393371437955411377745462633919808648916294859380796841075637550371832938011762824859808238207581395054400275896254253280316973372279388628789963279407027720076140689876815886672729575165768042381865341933066968183065163143096718824403892359253813958515811650524091882951294159453265378055373609364698907210498776098391164992788780572415152210191738723077791166252007896575085395596704312646164986047090744075791090151437423436861777024500062144835244628358698226075715495128767186130845576100383154268660405588135119842269286787660228582181268025547956021315553219543993995526177869753168706158054466418746359976873092730624826907409366149390066480301768880092446981137968811907483745277968125746073952927931009182811461813233401933657274141960889988636355402619937718237459878356559815963398151419183110254990384249252165489561221466519919824672322036124028686281616061793818739578553206781070849359293850556557101603212799094343514886736814777295842929597999138769444456794695547533612209063373879500078774777537999392991866636636017261559556263722481448344726897459719763687907230085458509409766287244226820886788598480576946778410622663172343708111100048272556257168567790555499212911677756796751923423458500094058557203704459184351541304826399656787127677685061692932610210624783115743557273848753821083705095781998218769097449767556017299808771779978375929815343843012423689592382784122432240854644304217238751211534248351190346850568954639163491701396601226187933936932780044463968241737914513334929579065917372119671732100863945331407852051905041678650335648574503775168153249775371054050538493867033159385251662408483311770970866491894498573335642684242091949179843549154692903622325629054118760760588312105467231780848599114725161317544856906517648570047460186278254720035788236028594904813406694946892809267881051197399072566318445690032349639331538850010770111647204460777297143199838956697656388273242757832789437736169943573457113824226176250050296070040738580705249239252644081439654737866651823789226261886105396945989984032150278517881209186301299893446100335557008475015955072959187028792166878939300369629919964558482845109488315134644156857286975938123783274522013396854508760904967916777620151359341466804383203057664648771723644564679791052406466349449034959818592715101342864984418335189375692124993856660393314182828686533982158141077330197655900549075207650786881817524991370131888818391086577742859129584403044199010768762308979653491452692334399931657909725393816542694689187946152134949181090188209031820237172476098312793152759941760309481386417579257761844742015951138744739615761791890676124059380345756535110657381813098812237617750402840761152142205587158268553043479144721707225093377517826032990804107682571162985900079987536983027977755126919574130435768179650123301692140036048900179412109076881116165203743250527106346092308552579812393569355551850285011158655638673201955946357855302687052390146650583690549439824432030230317630055811309597131165582410371604691814660444021173320909077384951266344493746814670000296272920659766163407256456230207103077921036122627546675108115856048036619181544277238168182700569962625215763553473419921549052379954550345923313729642713778499642493081047198191647592659709369031163778195795836843895791357920840231438066094062270274898455304578520622427624460773669206789639022223346640094915987412940198758869246417498976248776225377467205223796564273378913505990648914076884472454340607995068222198300805822816001288208345971944434865064735240197835465081327670072052084537880937782622265898679111686738368786311531624572735819775911223708801806786347476994136508630928840199894160196849078794844323466444101641535153132334810914743906281103911383853888408763042495920421768852068690158228369921070037958714232730132373448055514370688469768811623171295824393450744154723127722452394488815642227285107960155792953901212253874579652038099597222400650840659609613858494719208946952663218360701003159485973448936173910291961236246702789694348637780147062474297561002388181757332714853084179055383064676710762905833847992808620032901156268619015359092593428753848917676700827465833910056563431189081318090235373420382301856682171230625123856943143651503880359968837625667667171756593928564679373144443727873127881277311866381804176129338520643307886782509498964117269038241607499041894043350717933952249364566221841405952252395459434477353260562462624741258692844263909875585776007380442735172302269030094766751895620464061287730645708231426497650621371822334905761030516908983926198449668628451260066649186233749921347521995111626910492488263764488688013765929135318755200646673691870843017741803882512240854168394936727913978966813674928360586969704811924956115103792067283765663347390498610866874857891437441145012973760795050126027002263780140076408763708068234120415675809092732129878196025246197393141779375945178138644144876460855501155461013641485918346015944889865142832366526016909281675975528520377383716939224889028736339160390914136813587467743700671093921460252368208131003546567362151641118327855203189241537680771644996654842737894827364113882875662673089972072273944576215225424574784625528793890544659179459890258785807172689377754426699873435749621817317668200336584960379166849847477325784878249506280716553489697144850353875465946758753804775102103851457162159142631273502661471910169938543431139087259830488218226213076682611583098201603315881741380174294616937866723872032890201116085549470032705853029860267611953031519305004133993244873505514504416665724978556625822767022079805701824278714292377699826378074260688283796844854949748956670393790294669673999424213748159403715799095464679157639523538760506149890407777433121878208507882122269425039254576813761450282751746321273709458780665613906601474177472602867419931626875079582505819212661473373621559946405581723981576104551023540394028978021123512387062276657807507974812995338533977550495287558979620129882018257429057824899008580068224071774475002717833583482021116332348608560033773408545417340950808556773428919716798987650701994362943038403962978008850703178505911562304971762221327349618295475233181144868229330622235178297260283565621954079239489202701105943330112697764712384228730488019759660161900168717779561735188696474938510415034170662560120268768670766290275601448192874609227091713905970900262697519160838741873743239375875690033581710405013539381328922448619122197625174061591491246133163892641939472173673429833043861739600280081663789309962780284947912386586908259624208531306584133842991222255326851730663069940374021001239654337173467495239290436866865119290978826861381446553632637651772588878734614775712007181430943680862619832352089478133131580312183713115204603218014961607514677923085054154434075438771763517775576919808482646831758853564241682967690276488938606397825515770381367516578247300951948250810462729755298483516384386917762251417430842867362531075935850845362309686725265177162241308383031055331994144586059435077994135373652973138419511925648107704052600617034425271934218962786096851735817492334858438662849263087157259483575336113571798644484191510911954299688312939275612392439800079981079210477280947475309339543775025690087439628999705311079310043091180784490409533015658630545723901721194706804325920845525290192276213620759065334885019395549845737817437199098978201337713942285793166801681064030979008016661680093791869379453640123870756289760340518943241764789643919935520742637737051993284646265727081765884669946885931835885071587831725454028627530235067954207967005706960693144500977195316221040963961099592794737625584720561042890343203535944927754332521047910664292744598138323009083816381011458671721010656733226745877503589169873703528115553277840512512804576787664876645414724342823447715825478295956999382879898513243745230667734247380547292428728225653454120421284237118119051522053324033554612770735373263948657588397346516796291808136395437377980220906860095155198937448452680376379211509131235955640979312666769273048781094005953584436397159799106799390736520164360327046226495154979818790811252960192836715348095683515210887575721318375804827024009960449948534784469117904557867250813646054753710754181573953759954813073667737054617082022644255114007979598059037219348805379606711458201457382757435599899320738664763742666732983659222451189933826445239201907207018416304165093748217756329492680959192742877659035014933291458730317783373392252106926882550584331943274753805440807819447195106820938367268215832671217793851353572529715052733509767829278899637056785534196673764588268716123783476091106549141794525636556942821799955918582907667962594103630950719456036079019553928472482424961656569791399663553724751027316573857632699385247702038339654998392817387113682439396597881339306376773954362897907210006952597097892857285988878331080101126694809155330563707648767653085055107832230565227590649502044265315940671443762793414385751790150099473496430290814669929913389035507060317480194307393241344129620802738449749386193059727620056454502457413080559974532037113847553320647802632363895715987886907075253095312371382395362981990587987030398588853574920919746725448602278133794324687917685726970791399951987754248372915965831736063572271441139544408095727842639953253401210274714572248470622408081053716071649573704761636054714900359709533331176150618658912044040263677450893905109539727468703980553878750379530013226556366900950593612512840726707117783036109113371001420421601538676047963444948555888835690458708393096395001531464042833053577498022249419809855846262262227618867562290933318973584768326550072750083229714071228445255531373106295964559286692425152204994730630291675244082630839727779438019923428647509413251648068969958020540041679820190887096325360776049738259866892315157166163948339965287812856203037029996664071917023865706848487959023824660866478503299450159486251559936437757724133123347356949122410788544937165165800218080822866906319716118737211743377142658515974534934700723543286356310046500174782472959956378269823052858178632785135522168626051503188830003871591933993527884243548903826959057533089680203869027194941900515127231868003447065504486660019003740996072111545495282665841255666253440301588286154968842680890480721353261327279651533181146010679505443006440289094972233016385994106117930460146293568267963244014391452988949979873984069363395856856521446403069612208642739296591041954729889990299037521715462274034907724186754292255036591216758254363749530135242690381309663755465611566209147305649318565095218173862427029990480738172748060611402024800856210588861590457272054049719051465576767396420650025516962648287712570686898814759537625441895438841669217278223393846607080078308833994799345010517418169262479964667811656081792487826213249265398679373054677133636947334145567895709034274175005713634800061621933775406643216929127578034502085686976263123986355798646935238419041999120757628311170253897069908652375961361796894193788507804475837707317158897420273372672194517119802474858077328090611269167235461658074707722547637189091189596001478085704075924064877502466832721463419310819239299230336139379344086309881974169525559911008488623243976709713856354276669809461006392464363576340032575461675584706664418746963029352692925704538720044361180510651189344378906222854698607965243080352121488650222167927261673850971681669885209210736003938395953207956730195726931299667969104211367801407411022969985630364325409959756958763319340320504749207778432353301854842904403931300729855322670395682461201912950914633042886474374054728550549383048065960319874976289798334306282614226696147514922159756771859151768020413458491462806357460782058984431326319270831236703369953689807058148856727540336777885094159830349745623510870831306543394104779486530475018975817073334165883421969105661827552184215679581452035227954770192915986139240914623259161647554225674892821009462957627904378162010519505517989885348242718526939102521719420682359349238814130163534066043093039446897860826135976218541634580266446177460712706992310891665776910150372210901788244764359643726136595356281144953942576786969618520577184440691269500172694683616527106394547327032336437264399984130780279227532402200435983820121590952635413668967508944672748279474976893065245700853336630178189908577608510360053250929850729007229147824443442580395390537613420768465375447770226580091552720230386058199603774582137919453476203116659373820901131734064957912146591900076066692546737568844682606784246647215250539928116457753617435247579032244647347811487820773355148637910464053825087296244906264172400629414777223124272357983476348433557879457059180599195151688437198936281599266766886611941373348908852017495964195229190210238426480890862465896988915160602523789470851078046196382309666122510728400833641821494891741169284564533519423886755559953520045777022501861548541399326925912425596223147393735302374062814834339798268387153857182230555488558573042585244303078859682521955459675520835622333512651621444244010010768033973902404114835091921115546513227428777436400662064974003357798851476131371603712801601806302783235263435856707323332772356579703410406509393522220000717138668985610185867310768015309990076066873659563747053464465832279604201562621510079994095004123518745638031147654985844439830317666845704960120081955640707758607841682545190385934350850465529182093257483026595689883276177756555462343379435407613604368043339419238627822955915200355324190827867909442419675579897947209499000563910216893791173186979695810600405395542398234781485955363195859784926200927854579655225534441327401040376341173956882583338733034038143034999339156934072392225750217515628443622854813443918150969136979215057871595264587035832669441946677051469146703920318086078952400122685736385678716372472265683241222847667128723631150758729451434671022901572469438706736615825648506248384074403112486323751858359290877922006396506850882569959867105400908638736343971211153079396939693783386728821360278327428116799011128361152766619798203392988049753579455675613798024441713274141864049860990440290427427942228596336440148267762528551969564413117041598475762990464261388302300315821822579488819118585897978557937138502771748014672108829302287183780975799081802971285552254585232400521545805763356189747386288610951660330755094596014643861348328097886883803845821890225196902914756860095246763608608325219301084071431193689006791597655392158819922779111866411557226365617744878965607041348953895284840133934328615180459834683541537163043426951237682675312237288600051903784270119875765809675087658745462629647244233648287436429767087273341871152144120559980483772446484384527682405854595052719408564172148485076109782338524900411055106246578809364925256586187400333632332397308674404009227632959987359819616872366068573686646713080463143478926170298911282006714934436920685972440405170338632983792450964627364527359343227658695510192565243597599891884649507486764100865154319037883306872449058481821215392637243453384821214718273430975484271505371319909267128274552237910028853549184498150498421725415001804898092947277705642064175459067412792164069989702805879538039006959929473805053572446644425775524020155890458473388953794984158588050682395960682282229715764254350048078149260683633859328346790421452465087648485744676999876469575829027841241267241935654108636004442617680569810105736299695837319962550797168389859433501857183661177138671439259142994423656653911298412953240160034072689658112643601559206708150004478839044415863879480134227147186960653180208172511261006754665745118810794532378504833438487418177455843943099964722989150440938223914804976825004925191398637551205834255853244689862865369705461902556636660169792141325795911704192074892337164813335584817409773010178419311489352983879480491613516635687898361826101390250475728763724244593747592300249969013115169184749518364006759353609105203113799088970044856401989471053598884686413009975870025973093523389150463884200938708839318070441661284219948053127104294353070444251848346693206541033490406154735930829615911948063028876534887321521402464881667434735758001485961833484509025174676814718204611539016661419060816834730999129933338084024343158890803176977869826840121524794776112159787768450225982476683089445109237275880720405353506222509780053715893803063553779047145473871197129670972589331648902859864789244534431543316444097204313399025163563584486840935810532476656025482047693990358540695276819071900300663868082533043271722107993009077907328667494304902451910224975550454609457741268668953055094278106133313993714967426124627580294945485070172965554304036932518676858259233572740127578887862902354578114784357904830938240182335089305173013641092667267891609991294492137924406380149505929571419433918377003525650967898993970614399402567736900728228785887798921323070735904863181917067289076669786776842057419343171089013410017230510843356182992022159634167257248446957444117818781616056705958947841543806211379392948154048693545907829384516260019623142826807903437017046603456659175584386092973165075050927744422984611301847440716718101204648928477826382165702069095082875756610054034672208279738813272191807638913700964067304563424442858039012479480345200728296601578196947401274949127291629987648751167294746689073877044017086713190852763937880086326421529357206455672520504073348579326203496555453178579953774531856020890431836296726458590718529965307493851831099364741279163027393084839645203675877136122224087736537185910523251699105122987232362541879611661431998763763165968951550767557585774188458313751017270608435164059011605729466721403254680905298082181979299784264201808117513279693724260655728064390721922819305494145451126239981074826493922914608358164891736974530360662141375037682554845631215551160809884328993602015538091878317222200803231084044865599610081751398926729137608382502572170530157250273827393529774499685974962844942435426258011020633462489933100157135797877407216067025620571466101834086408175403977786570551579583698224106211178718021239742083903693640964373224477543178985022280721713731098875413790734283040810542922844179656157561713359840704929143801066269620580259741480286053754660781932820533147451548683991643035164377806659220417924627299679255354014785430275784779200902901906395572192586315807162235100285936187132719757282040351777060490377404521525767347613081343783720179690311204236623662520282823160587698762691479037134195737020406446656230376141755965944618317826855961425463931329256255079290130058988301846135799446174727386816025030934164671092046128785533550629701465941607290144588061109753025302268967945769668128781246724055328771699526495618140875523526766910029959840877474366685255452558386398445904484221182332184150536952171889028973419874832909914081743064046912724567796848766983936675215157279020952689538647866799123103451724870842449546698167296158097534140913188145798967115896311810342168273313684314991452599372549173247335918339473403708164119891359728673997478553171109455287204813896476899327152336639384692436401666600470976186496335914065764175809695372151608428216010671724110438535156233375438540391437827737908259658119552590958185309845969166550878266110814884273413168538749853606996362724500692519660109498949949199930862636078849464073686931414676971905307819862236819279821918924828113792495396877221281617659319799049458629325852749416215312493948280725057845115018529273441663090202674229238748500185680936930624274622653939193904440655459249849657301427872359476996815433639302073428654470265569633061754042734517572163431491675666046380910374004345619342249652011724094021029966320042849472208745452343263323812498911908502659947135957150298232062249185758218477551368967579926569010041526107217349753569781099276043940583560414006023895281467650708931369748845306818888602870826440899595398023936770411167723049022364363537868630450014114576739557794477434813830283014771766432182699018988980997746455401046356127714620215125214969076193444597075226767884471492894216949353964279874067936301741887773494926064679842016984250854898286412991416802431404837957210352245809612168764070557022922732788908201590494474725235576631834544755164376617018452508062918009279830688324618797431162464796136476841093869671044888249886800388476647763472980928342445589070486922427786343357236864585951049189123424334115445723298852196781187231398074397612149450770373855994243666435263762368971851714547990390935013806231070139803015451427057485562482240372561382462364929486255870723871984829671790941990795810533510580442937300720693652095617919237758421067386148169185700953403908253763466915538376794224882802588163412936721317064534080921020504325995544400007155565783796912957651385705412995954811660295821112482289568827898965843045721478306954751921522527071446291687756278711996248469014841454196227748279658378826112273912235758331748134894727425696289194366430528673128297382039761334604626367862754221086247096870376074344292075912744061137994477566905147867488232941370768481044903359448049387883002688573814091415618333383112065326627024035152470037604510553146172172058658232574060147655019935190909707093715011403744859079326406668396307826150767575349979151883036392644532025182921757787537329476345019532545412569499491301598361449980286355904772848973488566172445579847736023895959606504537958200845070245873373207507503215023464601224054712968488614531822578989650732731105983569045136397031373775570521427877954595508515131207603664558341924836510168380035872087839518985824501659991668194922022500972551733966453347531454836535518367877955625904328933497787523050133584831821402473881424193233243399793821068762011039974400738868652036391873553872227859744998078988540360661027842258554885953399330266995048945651465533809133215345920373547524397405615253094156313109836156466476793710761727510177834322971891582742030356115978632064032625178879282420015666441950212687567552073048581720904295457760585223744744276415351961319673103587006114552275947561301071673538699792015631080217937845809380552591266080192201195020404018273083187232437213342007812099175440666362124958455154202305878654404522488765277728297744072069157923241988392282232508227685184330343635524266402690260506280858032253901549512703798601662444937619725876215682454208902671375975851727244440210635285358721667216253965049540764087049135724910509695694820482404824441438875993872332248747523937840941431491465097574062649051603100744886976275052000231649849563272848738255380619366060878063105737973961317022118643402399412192419840957016957363765779155884895946103616829122410920476443854180228206411955438328599466171759028395234224162869073052974602137655628855771959302271085113760408812984005694361829574315837563319719843396548235089723171101242080637742605421798695123061951052957411189743799362676141287230590126508996589641248849380488310883799041094729244454391795552657579501841354897600330873534621643108336658471384749007342077269332087454923811586663159262151755094896949673607628065451516389694314004517608593916607736620630261710928086892224124244234001123915610771286374671453432647153367031993370038722580920225545379950429545678728458339821076976562457148005010541512718721300814438384358923374147207331651003384630040143377022805658478794681519218921188429502927844001002250693218825775828024520207165605117358913827590387082264998965274660370415034939819840680667086679010134808608588938339109471076217699558875004209319681694747578785555995829973530498374800479321865860826676963346707673988531691526182541667177638032042883090566429136273155873674583647034803283999461159613395882916266549814805900271472603930426709923408829135499867177312820848708087871285773208178632884162204398903842975532385547076497417263654342508313179470804206754817029431450435896819849317349190217640772663612533717964456212443934569135772775627421862903032792680966958729308027489403125014877926024443051962453124458608505971344216400462519119578980124837698067286684414926073571509378373104647438644332135132201875046083228264851645194587218159359306137274004762358128412770455334564992503890945823599169586017649896246978518296332516457596857047614749685641752485462726223810915449379898918638487230188717923754711972731228146701704700149003493833290725129679461302722214285110452306779574510552439306710569276444401704239932930080572942582177386685220321650741041292604714933622754019574044138256254253174770626353554557471355855650828808206908890932249766115350741245026276408764840253384400756094911875833418020051480850257677192731634943221176327011743802575630626678782747231377656540789173464908983682702640754903997198369347864928074797541912758431082143394778216681799357158821063155904933544122014975469552163399815775902429624005248081681801227319065640980146562403478109247975767755048400810632008524666120970362170038994694709776320640372344807549120451300094859725957559163091170996648981858392214599898217155290577697009223825083085693758533154535200467796636912688563477365078920334212864342079873951563509663078476684093055520221263136395053552523236225566340067994692403111895837395227761632319479861086825611735843291518930920585254222011498750251717923548508235020106044494467198877325867029658655932511652103538342023460458977881919346753695535734461333794234570202066139357736830923472366774349627343936317590786572013256413566376716434741302517752714018724950993996442468037631262083533533003747560256297857428749445755418464755082009150835282656357106525978269645487494462597401584261568515980175892584220329360521675656607940963505411554555514370817508522380812812160612481125366772821142718275625024396566806934911807095118998224849493788566063240897525579817404963590518398248015147268577917408784623736802180756341242244190279475109159534057935200470972773615885449032074958934044722775641819493214662076303193106521798769390147471453266645315553167754351218541025740009330826755898764644529749877419424006067269702575075458639864937722664286570374528870226064180584310439893761061081868936639893926189868434720357108640637398400114969999989709252754003508129489315618942283817820067627190402210961558911734378929599637273261240551368950370962789199706791252497398412476613445260957249291247601987203578444566449814314798609458712052416184338764705091702667488422509323627465173942407490006286874787985622042657357549442995370030475955844676181623143376816911558710177528066588269604631240119583238441284503062851524691995742333570650370315158206255425626158222117982657759247576243819617850996793218447754220899259666173946897083250732818023472414760201379368689698254460016196281615714754843005793509399477878969711044640642637830118872926109723945511945513465283425582034013133989866168435622424575922880264842302745965375765009033419577056685216947785497269818862879090510884895645490866803043919492321118437794486747407297318996672582111275508750227623943042227866534246933909866515265678736235463460873999451608848064091861206944701126081140809514603705060302400751680610134847102169264192380529637259265902199778861408074882009360539931961538055794521807172201293578111244533326906508357669803812054079716673180855606558975093421756843136345088813057985955136346940488026847545249112260705588992700409237589944512761575390214164249469977600192001016534781283126434293845280479692872776435205967727529256836672902198701837654309749588917822009333804496023895088070895831102851276229665370435528452525676717643516604969049787173076384481660921733058896447085259915082321641840398536960663771112089284168089364269474852859984057374251859288835657498048452843136335606952859405457580240845438644948191748823546367328578922137687456871933297729889326501527872521041344991917525622264279827625365049355691472815888423796813009175300575584012733873367358821936172742001962262447502467781498766704984258922578419451714452104644575258584201433747940857895637836249017565063514603711344164080657832708424074322810627405228771265199437880877482632114196371799830084001533403967504574873711889890297479327732193738663507884287256399487394164483782853268238780895463025192427967540508384058906527771277877069057708142980811293322931700395896977594131703323291825541829704761908790570293224360196532485732588400530263648549762740291622352759896603498538059862167525996974591652922971509856621465732357566356829082255272299210746543941675005387433307093048846256581512903980385285961171618801280448336467919600093603891487819212018179789207918220913832050509591373260591168080112809671192191188500303556672866231966432868082838114829944054430490538445683401330109224964701345037967881690595711087458449629572734808706656090467141842534351129236265224987905013088639534573030499877692849559543821464135460445139430713298084186718012767272262765249647427708133542698007657859848126091303022220150230958684466684317602229657257155076100443013387976349797067609540974944638599703883475651883206573299196433277192503850471881895215596911463162719193046346777780197377987821759901574076398043456164639156039292074838219390313549888268499821841881908537228115564645874478401382862576144479829213671686175803629062871290857415799557457547439824061575417378664816995452554147281108128451345845100627966643739902924582346146420962927050285192671840015001568782911936480030217985519645871543056355171289199740155352971502014482273487707862651968852188345616139017065231015303428130093383809695951988911174108823629581957199443686681910685423182582104277955436842175278746533311280764779885755996960418409048924806397987127170278391476234785695986746165031541428828890083677116894056878887298525666766538547405653010303880894354963566812884742205345766836251949330281157597879218869401671687007306030398501167097241293499736921286779693302615459408566197086398204177800372870190256718368292337323174071421047757191248040321599012933138842210517435212841506118216631676932023906188124467122834939405563121410911136094840059966484335814081816408918331894058163808331138031202925124500890410536822903101609660485327803646422041980917329759101641098787897636746961988269715827372203506690338645933695843992856396139471004325769589183672090028431349525423352433710922445623308593463231723264878434745271635420754973821944191220148843991151051302336417892907882233748103281255595316637947274874207616267027264952185732257978480312998314206886528614804346464647969681195499051339933746240410893849192716869690302378879604519154352518798863390977483677849864150995992884884246104300596155071082574270263397920240178586118039506806931637661087056621591039135297415714412030025057945210029605511826058736801106513130116526103458919620720135010416189201901426374704189913890072983532772165957083384924442864515445408951694166541819862268869548506263270348490906661880475613241634195042998075870361535005382043578171001248477474528264178728431163705020820878813140757579923120874534514354625448893101428209690331906873802527999234709117754784859878889105698094687680003286807080445866048461240276277220554384506619419911621804934126474406222338596563863816227077378204063319160714073886646757649738649822799649203294137494664037851665305331880136959540350201099935229456836100980911168894656175416602811400614365940040004839907079011929467431417135779354455643564447843591383601751441633646442058574909732057074925359880884361424750460365273262641450622177361646154344401430782107378560857810907308728141492322557738000775494912335425121113700312046573435572989068011969755087365574212910329781642232957483187546732550133163318198537716926596541982089545212102100148609249614262574824466494890474277258586966051992241633699694240364826727238242419320182763597494666514316501998205810619805707549597875578209281830897131960829448300716143721960336524301245354353026597239114164594246696686550289556185626875348115283779594318092202128800254304872471962702062653502436571719774380478889646845060664531594752318820853828715749163793130838536945437059278081626680412144238661116322796515804066737532425402080824234759017067084412674884542505094412843008176787017063391201123975849196590788582635290533102863577251159875304154852856492434799099627780005074611350869369037526877939084878363863460777547489911355442360588966288120131951165963269613927834342748829896170417705153222902908977427589354390479595727260656285260122710716215994382996931846686439105275294184342703113121149316046028508823105384870917429741370243017984890774102172450774135233501412944479489182297557278233045837337064494994359419084185628520502518163965842652945454897684647190398004440521604652911893511859664613037248784609798889960338298938630773600168905583350525963581327591209026604149235596909511476413027984491163837969079145875614907968986819156217875237479230339712426932681751551232539587100644915344766364921403466432172427699015148706657577222889110375363602687209771548543609434681490300284339874850219995681627057199414046261954927873359719898243767452350579869385133992780609105376658805410301992181314999233830975791880847424221645579750026648858972511610109611427422200631780106070112994612110411473818329968437493190864419667544226823234305811254074013374559704627293852898033544310362083375102471073461503595022064610462127531710575798815131938984198629784376379181300187790447311292138267236121553056129168817925148093595479598208413290150758490611274918490757199819402630143329115821717929686809160932741559764944576850062500860459060507239644082372304126862886942601813422755042859014435997190463257272865118742714491941528163700979944410913610080186858314734642779045339290246899729418362966044131298838862101022092332272781098307250063223462674476330508968935555911406845845527395821548938241280386300961761783599075362263092440551427293371260816252144067799042539893517470762498155505843835908135516794868609143692003019933692967171333307634673726070227494127674202077526713071339403017725211302053021377263933700513692218779496075127023867583457479314623262153572831837031432314749722054924315579811292409486849994826916014861189348466374610991148785604154877773271970507729488145646624239698162086502632239510781591525287466653391184037614940776106172153904636401847820292913825955796738955538845456261600759538714027735498597066135430616992097387266577055290689370350532900917910428452750260464837433462749655060647898424777090728728775723059113897959201479014656381786253499922077492842404156121290641389584810438474672862448143782844628036835019353224259651069879938994955510826944759296570791201662914243284927880361302513412628271525715622715623010827036607892665954914024232324707564103020466238127940536718526263916907967048204032765486772334375504852671788623874925958617854967354867630117548982054153957420644801939669237956129582097452146235808384168068631887942098404780881208904118464909122870961255976788508079419837001962804311214274433053929872973817407711529677613988291269297613927856200411467213444539065063756162958151598513759979846505444076150723238288102060479321880588694242936325369431368865728091284553048801346639479823669918809250561445145937116110211925443374252324905162189630748845001671300512241897116363504950718638714292885958827592141885704141667894103851255905602116344665252028245149391474753901146236453469749321939171773802022979108302187881747451254326394177765290557657429519217149443324580987075968524024204339195830580235577899669094900543978968634864975843997417331229659395238456739126898644748658473742352907382178399962791923835401985248887878215746067239610413681696808436783467067194196114096799068874659994173619923075124117057804147809499971752573424978290738283794177182776110419870548373318153837890881247343614645946399796273432745492784586044824184766977737404008861906891258993780644961410911541351565883643808876230526938518613589266563562019344108858064607056027777100386239680116482711899203854612327894055737381618783232832902781266030584240494777805531988857388343060576471649167634295596800233929594724988550348880833413135520025311823859181348068670330278538192326904582415719185160880242255626383884870209888478594132081969962709953187727009018389728964081605686316305994985691570173329092692243847209384435799576532757246006007879701027400621677090352223607783798715003464218433089978664096565490470407819095595887442893665237212570685608970243565391091454892015195703203897790282511964899445725136979810898345618960081877305451674601616021260375197357976420727731506750476769429350929433666044743100400051589389948812073595578321514795000499116144909557801029659693351799419660507174036705655950701479494217169130732725436283674642012351723903796394148339475049174243494439461371807236546844773192123387194478898655823338488329034770832490344404954861021376768276291809530838326383454290397032301765667961411836250207253930766080445812942635016726243985433611121700604107489435451085575103652712727592495934162674791964495407392042974216890945284848047768880211310478675501170895709835197369008861198625326536355870214118401853887573909121512859223103037721219335429045998963811608020174545028544496952248224844459460292000332906025392300851861891876027712087988091540626769417578218008570877328023665673759245910151138627712389875223386828270687748279044033202309949794268279562654387518512473618212824170405904158276776113462033261489721130719889028833244448616127208334733677593361640925006698564927568659869307143789602411284417106024531619550282222927092310641973041314874529358875591202388519679224437487734709487451148708762680576948081396719506020049131515972081325737835262417710697432555656423441317729143225337123947310005999170783567559015077380701255052504727149141659345098160077163371465330163363465723400806792547819717406512189494615383755875980348545788367720994571902998836455035169463081834041104014411272459679144956452618546212801970072102113626554110602872815185121956244376354363868003972082834700614926529445080337244962112191819145283412753681359737209155409874899510836618606413770961245976009559898981066221060026469190759997401334213307226688435638470192234165466424329814185601730417096385691340203832076304645635258772837569694689337115808030212529518452600966531046862103747997275857878882027714409837434535544604068693772953567777765971063266306962285179365170346667341718505230905628706193809473438086462646357306980351467568959803234480638957312509317069865495629948798820580277185711984747946907367754131791941758360240143296063927476689658495553374666200529171573730464235619093140273065268535768604406767261817530333486649091692398970101048508933647695127016504334646458263761958756501437644046698354587691417462576775156569322203844704580580787605701514055694342559900772684810899780601521190745145327978465319715548690046546526827697780204660547617835483258324149377352522755020356468612654678820884745911095201620663109861283625753300050847098221797240814412395998919605330195654910949592302353890615952052410670683357736786867362939192102612599665581376186356984606566048760380731987413527478065015314281361449155208740760126884096805108424276625423721502736281710298178097260268030500161882630982067010070709912058440002324242227535714377345547577132140640920010373447291472604523184834596109590913592294577846818155893134506667777326644336919292695989453000758265379309709080314387729711868356475524178304222878847151159062102635597281848690877429421165473398339838375238718717807114622503033666050929861417156560205093954473451709144034520744170625976622568334995657214711204836310763878865937949440774018019398766159821950059062806831526114108538166534179419810954242437069618081028085310789260982704196568836652917701056195501079182531833234064607977170113184699066125681695610133181666250767172697787937879232318885885011913486775384999942443951758254536091770235890971869396123113395690383728622999385634914215111022202288655943852689301016254159161725139716535665934911183837505491436596230906669157563656623462946828284667640653061509123910182519187361163238832422828090579523299628310299719907026859496913264161371520064699856677665497574996134285420657862335055605252012656643718141742180452185377660290299118037408758138746230634484873911217883934420779851361987295128559682168973951457806223544339741564468508288644407810432155117198517754265363625249406141914275319514811425589468368669448759314626024464900360902880759863172421492927751422792827197177250642385244754673203270692562955823910141895989971653708219804488864829954396200179656868900296227942096483621090354837986373488975143265731795372074109946957349272011988899493463283723099536247856534214779580199314628190499831221425593689531559281477385197009165961938892597508242047620058419860783567654502312219539607955135365278168990918199728446589785468988197965312924241615143716484217576902045963446359554053939423074356030170484482433838194939782551749007311586492541052438569354367435656911042114497178678030450319514535369044815385192304054850520570539818675030480333849277516182802792910333563853740818847016644975998774273834994782000982961128900867582622951269719364269740681836226180189101486760543459745778751636530988382190270228977767137453785834360914293905688183744114266211263438044822561998545751380161297872929810957682672204110057917126244773117241709834861342920333085405839151606083494737854314127206729668262684272676764155123466456075192118321626120668199011167032371527654056108706303032949492498433325503809909051796579910442196413610645156610690931162411937808916457388817737681802640418019697704539147502989542896591685238849392833704376805558211527834955778870227696122980761891008994708758029063257667492666409038959155025490834786666672694021685449766978593885366713487603527216645633343121126490623918206985785153894614166168942814325606644753557829538129507144600649320733372643259649639279428478972938342368668878957284252961984043315348558863682949273922546088161610246734344922545284230784534775486522260399317751094402835058029996153740180578516112315939558928428187335566207212692214001644926662388417574448000267741110117993730693713505393274079079284298775286517884178841182474866814960693052487937351022184977638313912845249889764440758131971836005046016759634126179604972290677826409905665774130301640383878225836551385546157207218997940495337564462787383730383663465290818248450522646645600946554523283263511962897389710401287163851899689772684120517283507134737725107928046949904652369861391237162253619849974069039172008365042280830986500541569389435567943083273665101594496513152320621621114831284503510502886545990721556809172457699271209904098349799734925394988743960374048402884286548382748833310479542308741841169443111136697630033301637288995055417936957683114068768852345891345396397099240823405852777448511084934117072291149911374820235109715556146047295051382950217233260135320996107084612900667639547281349704548702544361963016428274274532929594180071205542467797742983132230019026573848274906438138322869712592000398134006894098175253987768396287052745086972825548397888357566992213652440140214565618954397952643983716258907958062241187105599844984706091305234657690417476361051806075283958917014901790394780207368501919563003535458143498143470697649516422150330957613977686865750065431217139545872450031050150476030199088962765251311048290081234753165711141599455116965920093533419261663769243511817416488557397534515852878334251469848698453124298865516101461320336713825239264078737637415727589464797816134683371642206261593446910896875198947006659345833468683874307619893648894577266099477163297493751760557410741950975970734923500450170137434400443140061342282669899965088344346127947439664608809905026097024198814399230249504602323115552974853481606174042025061230741297044309019239146277781384467115265769097980495040967743700656908269039324745934072672887291391638211413901707300184826153415557468610787811670436681952877554751258312945609961903728812627933715560957528112005498330416426347005936194200197292046028274614487233391875681674528707213100831314141820500488934940191974099016795120092002228199154306800366490624526949871372697860344922652191084042210102769223143584132849328385517943512502996734961409073055641117457809328015564478115014107101058702163487488333327153960648552121882826477718155489261014366526781340073951827709932034130735129969227959473776142698323825724511064568229163827550793722468136369490764566926513137427519665012329551723877874059055094095019032073259513502603444624268556533295344426352518610816463583829973829768729003756598635487277426737877310298298201770626978085327399068873710678595787824724127192990249337869670498036008581830527319791146219020959874733399302782175575494941342218885824161471579028565295356171708574302512182365858951298737120517274897463853886784272680724550704902374910771867972898542493584839718400902738312937383277344649380688157278087712002871831245951960040457435893843327235422966321649556445968531809601807778269939574895995999174087480260511391135742573916904412643346347592128345091142200721213708837970964209925822098156600434653858266589666323479153097842187743007017765588789699884439283993317514787529848959218983871157233300676075753591334681602856312390610414742331718483256941800461493308967540324218135956968977735643034510891309409517013735765918824443150058312704612690063242572788667908192690625740157665533858183347426419078213735987186505565935374852303593631844674972342725801136014239955573953732836385119653799153297319249236707099730726325574925516856090296884982495258421150068206280532396797894411557121169644358147429777316015885122180774021906721508178612002305810693206746962323805979773662908376458019202971414062990897500679326573426631801585731822203087688196634338723746452327401539572799110686024208613194790510091518134078160173534997682457050262792645902327458268259165256825733250230918053774712968515047995258678277843684738966289946034971806089253785293997890125755070489257737860958779718087359060862991753721813742066075245504170516036764083955989912631001240601994904387639861057853791843738851156379310715904282091254184600520995926787660813024983171879283545033314306351905286073974537947265172041919482736412444700250517044624217739339118331049138142695533340527830312645098928223609231227271125535611113743953760021285472247502488846611282367324182256689008004939908960382166561240196200461022029736448954087778307947822822168255242049687477606161439272441989412837634920405057129507351995209364068537312574709015708235960245130358616590675125014776348991831986540400069899552800643837963704643726810632724677682538037484722028404925042317479784241804813523930234963286903231779299942438324964241423551619778813205616876251021874748031330633372329493132038638227743633764752621234822446638572357070981912385360482649802435838704274932548532404752155024455206387814036586545543923608041372229760228724102737063313794871646711074367276536191191339426758520737049150290988363017459071699085079150341985402905220493390906168249267104048269152371772270090561854177274433354793995082740977700935347111356033480117242942022933012939191078075830164829200958775371153396203806488382794305057657320585409122703790271702952495066634115966890335226075839349307174051034954380967693042337832573977395585727787553047984568364026688125948967254578951460708594507657953313979009261981533721805305727780615052301557221238658891907405838041954510526872564653970208567972379202491081077466746228600227359941887198220128661056973010655125740372852620488605430940689120229792776226794102873142528018233086804574473139054721517608288245900100239789613991769333153646195438704533903594573159069938772519211337300363521681004312762661807442816564752745344373178417020378331857100812745056792629572647597859849827384607621781697832133890303758784080153318460118025650457261753492783439619662620737151615272775554092908960380481764146985544422887190824012624397771762647271500712498614785986306129368771454135823359105208277149351654051855381454377809354478597687344351188094117608576085605380182796902773237086500898870552582889662197145162892954754826550174726573327017577229549056678654010853794320089646583906458898878788840641973471279518961435760286221903378911144408397316269741112767744964032554391840255524729237713343729101200276826323331502145832209082131742833242159164299980945515957267191317470769955624789773317016695131174512639998941667725442415867824717066389499264853089864741715529104487699378142292071266303643547395751831098538274575770473879711411119189923220288657921369332107496184689611590802889398264489292428298008908476688846754888015245599759406063566803019675903697318442515673904633369346309720336214710035003139645479201957382621092628788811399217194322042207360933190212468575879103167997043214755254748691615230697575730868470680381786012444807707970373083121780936966696834615597603153690859993987344658185674505690591621103728713669726361328039241436905336714521024706146008776369223876411737250827003956038643609976815623252965052853344551288215103983476821400034593381949252187347862286318938564612250760295234448848106020587392181654847768924190430872853240774724559020492184707287379388096846400642417794530486128889517176928525953664473470938265939103357365763993480908239321813121608853660991202978935127028803768442998750280469691117157129461700985891984314342417423645701284161653951190732255726072628918943542597750851741824761967858906092245126950537451564236420800811880494334734327555832219439119066831729192479671944974137626868042385435572076232921979711954028321801382602654754029604258763711061729016715871832507138296559286370188135970499320664180737586073332637231930210015480025171290434121106353016024310244573997175705891181123153495655805825769157782693990169485393415483700420677574337977071035734137173591753309529190737706390397154492014959647997471717550337744444745910242562257600185203846268116015495015386701363466305637717234805643234516931461171530600188397011715192042362115803625560743989365777728996521155918854124061472916183146229498268648360326625626708904055603821909400352386540037394603055488507551914729376409399014705389124902251293256862994382790493030929984965407372975494489816462370449104313037115078870763242307177733921895854839483923218290756716209618211263101616531595642614422132557701939801546832775782755630058842747412886033595775844131961992537694730691201870732913015628645492438439234254746255802602590846642532419222514379925528571043655101781552082713816936458561866212883220077956484982656453089068563876434932429984339936763127447912674820459625605838537158576428287179942695388939304612792227503205649293007593120356214718172048396400882431914344478197449105688726449663812239226517426796726965247743043328890689070320679639610240566648003009239345221369299977191736697446140902044685774023288785850472513284798576840394430198016509899498904507092085391922656842540607639895198069796299520946992752149855787578520161594284232570542593057490551911620668923496555600472941600234662433123219619241787662748287211851083070682567524716359969176305821881695072634522903117555452628232645472566815145762386068736230130671455654472283820424415262009466052712478214572991275497848409833375831807346834009303904455617792687966717651674673585862886047520630547407449011406709459738964253016066521966331467997736291163623369363450968253593398639533389792749763605106514464999304798239481711843576785075136898809393984243734826266813176528836033194620578309459001155478307516071649250196227213619876690339495692021433212936428769258841792568537030657046346699764438437380273796072362069512909616510835574950487131299234877114061708300894505561908357981280077075507090151162981009871688960370783299196485684342983463135666209222930366480929597979410968810275853207785675092973316854415739244384547898735265381222485518070828127757129083925440300672278764414445045583451331350232616624072895513572559770585403123883023254665785043905150485671212674855516517642270635201461748299430943964824207218096217751717294216869012601966059900012816126007677711505601302243407963328879489631951623853961717063665939310577191861871974000333327230633669540220580732648491862709025817223708522905237490015380751396329544413340455735421977384984528546326687167471690017585536460998904209195282626356801370347622066527749012840456653986779222635663709879446537155101497005833406070738780155630909571993971240858083936928113014540020798204727782380417398316338497345548349418851464436365077308322639539439418318738173820024411787578092670655583000472014381069982994243192885818448032226548805957409849921017384928461038344139805098073041157817813928027236635382330163017588249830882627859355047603617221991200052923794563883056088095356531812462547380897051724962416626458311777056174215110244499986939374470091831983731177868094341458139546822879213997252487745729655382225221423790590971628203702021218752117534647245545867964958156755265973674389332202768576163257806661208633245195472211568218719545850682242424523321565521058760006320055235781716440785113935737143391800776385989744400250046154855155572972692325521631848933001928278732492839747287466422494261271533733537469487023505902618399160627001143474848793048934343202394722193799985122384754520942813156115970939721994697098461777608654683325043591284900444549844306393616090314038766318879984038566017610421116406967624121861346177869111007624243965746630649839728946664667699257174790207102516963253820797777405210048233089363654691950683615104617674972928877030571642470667874799334315555628567692096850607290220957642241143744118577318287405451238021696784923516510322286781844155088292224878495886104446224383964571305607792468390288337834441862199647168251000591201460631617983213901025422474979108058186428826035030626422773945013856886317325842764103113259184620143349468151329605755632561570334784175021609401174166526193814674935839285716315712657347044105847164295892167444853434752574349092264171804363783507070295291220223615295177883441042007831550706773665700478474297542624268704838519258643846991049688727134295532997674105572925690860722429464238803801197205980974670964381304176997518882198058632278782190921198073234654555445293039174050113089301432975933559764639301184117476369920965792695891470723584143087262413261961333243229343008266543042689099927102862291651557768647496428501085505447643949963983087757462702966996153197510482647319651180527064676601737506061967925507110201405961813474577481644065240533577074258630919926104162184309504970928653708680911161503314277481995661118730235945400736670961870643791205747724682902235413691328603303806521865888788824973478902168876853138832035860276396897883357309680892201452907527134097701585704717567698732821698378691033523724886504287647446489636022021636641458466456544088719900250985363972444785243368162193251254295075237407136569375675329585777545723592912286888435255589934082950110916691159844274722400587974800699295506582249931660108865390535864599793578928712924500921328245539314065985876694439356025239591149134162129299615910204120756496848256452866389862048217425028613278029828351452442979175420789648184145472267371442632370354811304972514531013747483179818773643249273461427688153268408791771810081705938944759442251662122316822248155799604854241918160329898293373403680746372164178210045932745506895218655617503316444880633347069931443542961887698455377960902493310268315437029377712424951571680691777692221417861797162548496895051130542770104047564688253843988188787709627883915239943759996827784760820844545490521818646375535628148092547031860052748005476065306425184250114551511185004172245416172746186562818305796673627076212565754284891975333117484018161234396359438341371845363256074341096943214542361033834216153177829759277568298966770704701640755880509902524504409758503296656449457739407505677070517297745698872152957916510479140814466244149466967312617864590600206042950772705369657985929455420645297532420861151755928166030814334491036585623896314345663732480879882131279864344579792907391174717045096354052742037915641961737767392314797158396698942796504354597181403864495560012547585799223490101195629108394571980013026662169685337711170305198658215958711023042418597996109276643748922238180314563865419979492943309137302903814633497866714494092288926178624758772233210416824896339513059859801121889076407207724907869647546739014365046790105659917216759499664220020465362613884456152441112192738753845256932310942913396502780466395274416773544930332956812114288775623582538203680769042496856209613953464022905999737031359924180083805584343228716689073466974032973929383001600434830377345726098906741329746022802861424527685790552691771396839959898995626067476557045494707113909695127864797022442494439424092095203204230059501657748700704350523522714523328261023669571377958807794294115655150948556133319845986980375045272646668121423782768710780909841300817335523295975304271473026723347273611567567187531367621453724734936372482694562619018616604122466940910011910759473580779990193620386207252751284650084171701028779727789623735521336864436330860636289335026807683983480780725651086070468312752947103068341857550137582969052643712129486012735032373439535859986318464276981484735307998380833870619628531532812613487747965503874436179158515420906661176407253377948059824304302048762441759449291670959474907534638292482483332770972079368874092252981027317648505137957386745372263933026304254359812068803769171820035230084790442958227299179943378463829523611999129345884988241709967837905690053497707939186360170566923488157187596836180499339830495546621958364130071515360113237440554547963586558864240292842522626162726124043796303024584116886511994824244291868040197087832254951017608839321959639983306535617415667652868729044586030948404026720296791360667064781664704287355180784023367124393249611732863212542650980336524168315705625262299489705980274492513717314513123732209419575387558914106976610033766719854491622063660941994878401205759106832040517375977009608285746195329957282001177178012931514996064973287730998382195502519338397639162420466974975566069209134064561606967186155152483624975083706994801134717426174164837398840835380465514986863209795953611615599264508106995559868061821174150023967730243898891799022917938818947639645162778403049700255608156431607350721665333789612300884096279713051529476060662600582012007504402526157350501493060484812642312409889561110508483652227836693211313201609766685297416503173354864778776008296317725269177580000426765474817048451000042223179412974488678329312916703099526901304496352422321025017405857380034632568796528673351955701066878710798465046753127942410497188801404380517034836277597825625783833328148061381556087668176116382215090802587875928071385292688745210462140312426867179866032456662459721622704538936582048578353139330777129940909858873933069393940719262468558955845701265051960429783881980899085707851533275021117728705434041960033641034853002614883953647778500157909825370128933972574241175241894852080046891774152790334278199369153198860561093472561525784146363066292879560772414916099338027640133832080592972728021286577047785211032284380818192461194044806217984551299313880811073038010002441049950283464275382725866870631357404101731766376043502571635320249078943620043514618032453637086467894731480666044474823240168583264740958454091837267248299336175644576594585481321593695808225853166018629596792769283303107618827398305449204732966162930309993446854295878521325800951201854763466817838353093625146607959507253550279755910039172667649296043698915136197522225325206105062473716797070443133458500526610714782751574111127662989835014161618361292015890402564481559128621301846268546489541007170563264452290777947947964784929861609786503804510471129237837870249505725834254290140024619073585815011802967825364749566029349437809815964401808647094674720605040598764065823576249196586034425471013978053714661499768937385442971377767756745179750906843499725307342855870946025277634934473961226074410148781615681480375944574829607730991158606031255624435095551666566200064275115491405810762328075626136267903272339888604104104985138599262412430082152482274574935429708048355183176201604907201629379399436828204986799243622426061975515858750602718195543801818506732418018913807941631235044717732326009377860024410107121739508495489684802493947657430758240819006732218411320843801493361849690459044159233060557023540668618253269688386784202381586220898226265894879908911603279297339774782895520484471328689679440339531610280178335958118016598636579376017596605907215485271677505412278381376991219402677486382217785212889339305690433652253345212550704388114227086706381315784707566838463472845926925269203431657031219914577434319059873048286012907708039324047353864530640179648235408963231554744307909276114621720597441822577720085526567422525172737584523324270984629667528301722868472675089085163722273511383961323426299790797934368777401702456595957637393144075067601211211450414605146904690110712219128745730891155996082792180241411052984845574046690245952477958471616281116086048573473293177986580167803224091540842072908204569744957316759035167833482789002926855218039060443937634752415321223708190910320362829994325555147273594944934354803108166419259057414876779473353745250965861046753819036292343584647071537191336847793498792845350578648230159552390785951832946598912374578384413202235668829141026853034792239358459220124245301473996766208998992459046079922873877124285687176195285398814252278853777576966590787891609768639745157340963722522607623917067385663368637325716927876198418163788347674621548674882129930595853893314401317762134439775316970828425784142641187776272261762972809227871395234308579808084028167383664092531721175603041066505904938168405958687995951984176525583149687214169937353790779182195706684581115156034156559114253557187493151170821542370331704615619639427939983557734024117113158488958905972314437873802932096853199895164830868371862434944488120263430538653223093775428719237732440051137694831617004568896955828928959525638348088905783224922090436548103849773959038077505049347869840577486440811055423517922077462253106792673688635495178807202922918562065757206670881403753028337199076371364662012631610001791063997508484924425640625756801909646322084299318097480028893809621713742401741520184654166070307281494543784419311629163200002037253668862916313413728892938400063755539610873086858368230177370692732645940698927735620089186185686875645201407863162144600371950202844493594666185886915756087929633915199381392056602321894965686170859914928062015203029760277121299742514307809110025377479599368602979203516108296791694560050422069142206702548283305450775372607337432163880259484922410012701844024651209294041139135059198311436515011736413970371974859781349537160967854021376233255709620809076554364511570104082811156252293763378399974437101906227141105250662686963377463890693164716769791509361337876946668552577529438494543086324275001361942740387138057300842967564073895293726543459711402470567121456671950303084778673726514310437944297523054731192227857256625613963197650105033653290595738559895950270840942014534022230324321604312438243330495772909279047500815103700572660388433683752152608814714977150429347521745367191715659328016473587087134448664497907363861266444025521328348978332023046717518289145382347398074279342892009592947466167392528987697126428722883104037749596179932596864364276391280436408429598577642404701577234544172282202825043003923636756882373125735083239764511477120205296692361510860236672692757605533428553037865795237155369781475979010899829583011264647899867491164899653638623650309738598897729132177383519925673435447572670617375735797451319438591190002240724613539675178146341228571489531176774323083813134829104586658201921526604328711828634795321657007453932083491938886108937476392614224567239974828060832370200708996308382853117472250547989360410138620489666163118192371315082167364835316418079497451122421935973326304638764117805695018799387269847172915572907959249727102125142091233717115968567870129717475811597919091027571320894299934683636605475754833223745192033907969160866147243868572493863257555052325930181262503904604400759175799824164662161190110111531410098595104279942497937623952379307615828780298197474075545493007081716986825804702178157010042412367939965312187963556036487759088776581764445795716895935400164640226251084447617433551362730627843696912407894240785354423233552034886494711064935937332757293948143539863306503207447152480236740086883902741172250980064363254148906149688489934581806118715236517154141548419686836328450999708126527528291997027681935015466891900500115301235391163392039037190336121342809450676035383762513446181041110701774912743070937685138608829866197878903904984803561892288072108609645598840359202564245652836872158451540555157468205418045454990776900954023204686663622310069863250407226004593343192859191984279206191219799992538455428963278842856525632926448340323193341760310590758247492816219823510049376392183985369921573992998616109710682219562933321234861037098376019856810772823806463230324854589976320976628534671545409442530909229161485127024585703958869487626410253355615758213962124479270660764474001784489017566208659505684032129900657412133980529397219393500642233608701561728452372742031089958122111137588997051124220509630646680976521732863537204867261035847606623558367666052077276275053507854420679904045889280500892406705340723701574226177844340265262136108875370090536488221538486187450881909587391725293637373950726954108608916525877282319954875882702769949683178362793459685700450926471583057292861225249768291528816553262371487015517081047955209280377073889011515287349257891322533454901713407574373747791066180665300212026596235885339712459149512950783104530927737943200434816508333266478209187397003394398527144516985254445594236648336560900157298405096210507331400600199717098201740883307899497779801837944889360327444577704136371252524303166450854722392902662811986596553804011424425108014311912352496917846284235045423195001848273994039391382238247927145646125170203719583034887958510281582191449598077926730389350988083310612661532963902293595140785337583120822315243710758689031715606787750494733409930038044522987475072513744046035834046067224595366426889028713438761448214968588319427340988553898040011377350836005626379896355695040246573401950856027213987637780636534527576591861305006355329129131103155693772640641899532613700292542662129557085772745612585194966478185473083191896992111542585098035349417138715307818634390324163221016292402456354009786338167004439330904216911694678363526453495253426688922301942248353886108256546894252620127446742109964143441553956851730449907347867957627890246373233223923843623570361777320614906628544902573916464899243627897139982048278005921887591310915702350009342483398139306940168033957874208738597636740649944895601364116264442450306541847344884295414378069251824400594789600234571019760703014401628882527228196732708941917556993444070164040356435659175603564529548073246905782989047570451529518648408209388324879160548284464475586575445503447421747299338302997820598791912304246303025415399451922379851533830619002168074071399506229561585412282352313734292648187113806295861491148765736430558037806155704369764620032159026922984763554998589170880041016477315995052296181616984189634924700861686952339632860594349206512903085559699462669982421910547876603858085828575681521317904346957016477279881916811666230237240126458831309310952394557304895493734354701528828425218865545151914052736393946260501447437897360457992241651021569467988505762978403803951412878843974901332672149283397953578851776649081564615689020975300580890627783633981470203525395386155608915557717489636589425002934212092851743944906051168825103825506936590703454407357267603068559050496147934787866212029152134415881572155480820559117103865276229680987200659028874244768855148999016445538026462168838488322850521329568490074662138033860623394654808914873436567074091327832407783312081917927907986336405026654023092405448795170144294002176133462218513473516058374507379244968250474522506711233296366234412761441864145968517703361043350623625370118071101821355397074016272092264258991871054104871610909841632511591297838815627658353710104391579925287729875022918225104916342774460543096379283489362994296278198664906313705576605539318283226713292909714417168580532196452600315036659270360546147898720643382704960401855864105459550590960425841214041062518660507753393273998869685632389328655511519531443352384717075571461986489759796463658515684451326721538350192453915827913003205198399213703513831077306676189131926725683797046756373904205358310036050674083742645201339247551979880885479341625264264180099235662636808961774146842205376089394648288944955796926805009453554574371307467664015144171670151944064719479052950255125957390138593287552657720381459667108311782302818776649321399909127484587133856866726810717840112515663384743669144996971035020598893153250150562157680215726068642160740633143724206447249202604273037677321099382477495963664068688452621915761751974473906062793419121712606590366022406926528747525430202919021364263064524604555860370027669321432857209483871753990416559268561840947014914500192275186648560425429635127253472302822817592563538717222109324217557175784716613851602994599063894284816021823312051816094310285040589823431984229380672796468257354158376019669863080356291684013831886689273538686499226647509789046055276712070641965107417134122214366466513177631718801888150773712569406209631147789598296793165395984979297648539081458268116555905501472327007057811354727824944646882225581801949528780207899468908630711425478985744064468461212909261331135941750458701940514070729143059544767147355532255457396271234406225831307859927428266036015617281381360072087205806509347265679589136547432671537486451065287919978402180779639822820042160924620250624363435262711163025982607985945549987279964670427514402849691720826344659336970480097357915651852971266230161667974118382052340455024824488086816584341391403370392818857918436597589695408101407462168046131856976877649354441806217618631310586611030441989604019554894890699033169551225668684425104533214337256287848508886352720963164281952644248986541191436602430412824941947505615367117526183088936493134298962022010475571683592122226840095925393761496916297467183504859835078975978639416893523014219152732352026150922588793163323803561261090968887702954572037840430428311232472569716005870496249830740008289200621443404806562403295194550214017186164582384533228597424238571675944661766056728872976051365141062730015612887639737015628802259797201954558986356036826643231615860590161130935930350704947508036529501488726014806714797875540165252600479704028983946349149067203535602683692585593288521995969041036752989725322932899514004134715027142364871567337152380146406157390590865210869486108903892756197713640786749812919845944726593534318878545096483243499798356029717703718489057264667947273710410801670730007524835776677138700821870106823913863399324444107963206165431046086667575087939481286739954842924513870337009440151151579090870371474240428584412315434967506681262784514326663159794898905761796785720423976928598761245995246490432348073988248764229043723967143486556736375856428314905773387140855991939405600619441351633384347127186492157940990111865457987396673013466723551889811430521183673088683878862121216956835009501979238455797654424263341317955923258019862186275440324537525382218592177440623976467200376784136049178197575718498483935028013037122358535250559809394625986615842895622497312129920246012208219351233500314527912603298870007782970572663770041855997303903621891278720159413584750520204113794008009611055878354220524510954134429259071769614947683897825289523682428788689079539449950337028005909871727965045076879621528500764746558851022257851263042132615550371046540522238523405244275186614902992646058704937593306867462856924041491436644067698293249497315155038925527963090682727768272936054509696825449603665026638227685031739538978381294533716713204143469553320625970730273413012186117054107123225278600957304294985300823730708731713109247585599112668331999466743084355058449616623817401945119725550030257800621296698859021031309065771291596478214479632959031914342792732929919231127095722316908441885159513956002862577978610411670874583460987282836873224408244053109686900784996663977091972396008639210987810726254935390075915760465082967901264174412592085411302906893278478781855511192418449914300769715093077919616682101352285522309905726050436719313636311947549779692203678061534613368233073599659502442932672512282265787381874691873405239462480758614084741002321240243895152012081373847709463248387895627984466466216226952738248512780321653015773221355507841173519403901742223957828447819274554131156382620745040349293242416679576098887727974986007251879363690286844297586588536097327433805273066678540110814883792322086984654298822153830552856742156222116183736143356359244781419507233271598259458290614849265900563529702203629960133500992566899247915613601788084601857666084807330181762471542098413962570840438751431559181862250686295957971807618595766443303666875089123395362423780635739191139922725986528278691782167190686769760330227092639737422724598583165331286086840124206026796133392702738829850183270110901240247436256014798412193645323798705880959538737263501637618626265804808485526432583161206741320485776250847248145124337248788812932965027429876740583064926630199845100908556980011742124063286760912148580372945081675260909327094293398452157695430783691140116467800512460783057902301371015219431462672490482039459489140956203610081532180334304974338633693692221802258276457159640207672715462289064617979897230613314990306312092340976875179868998415093961624900984903789129199528189091118331854398761626311076626510135650014764216920897094729602675269676290517449453786176178689260077707169248384388019219132294442614143705062762548023417303868782864436918361615077982447181444931368460628949044116534984254125177923696664611914598909599957912704212168079579100088071532538374387375368055061897097989474288330174097385985789823529994090089994057346077696570270874187036116999342019179758846995168080484962052779809867295067895769645058117631000480656916963570045042177286398094845383648797167116838181497875070632674086408338498045748898580553502292879863296219141441770373070166241970487871655403723326820390877758351971273212659492144343195179722576698786404748167404052132199598793168752802834531830932598076938035511358405369365917196957784424492619132875068442880545955447271784180486941650318493113349835872124732636377817930435635231958341511280371787500554845435650155857874778100572192264549307721982313365619564223596203422357875621600987530199285589001710313476046321187316324583719228579135269562001198261815074998796657948612624729727876273302789371401600067303075869359832756506344970292128748612566382082161757885648305730090115503198602668229610785069241351276104037751205206005443136733546785447157088415504186703243485447771891237659717628299952002000596235202791352424812175358945385194639308480881255291589754304083515503261922588001794164838461790865395999600046917466627248874034940842569678420255689611136754839342103181330240393341433694857164674216103167464024433796531616295304797462571514339516383916206066287140186159275479683020437338004059053321921746414846525987773048473514058830426571539796356533185792188846943124280844137540072561722025721617256891735074324148780300698440465897629250208431884252291606135961765939789600068480716027485985705279044992875338552297269082497766319566101066927083000030003892600912187055212645754460043838573117935126215785053324107190349497584987360764904917320338848798413030676755501638303441748332942552895917228256180418887939177254169790015419591437511246131861776299933755651905954210490320576622404493517675819585486157450790026471723381973478899407424023445795509505022892006439207819473326865351814086051193979129877825532443169639748381726067954282511838670750193549506369697877209249600454390946625575150740422733160102333478502198251516360612115804459587039701780142344463718295203999317980479004352549961556152742715360840010506729352400824948401485892382205494853352596930420356096003692223344461259472863058357714359444834441149494194182707614061927478315923816757783599729952169241807583906585081571791399572171893480979879840944935187194598254314128157106205932119478347795287458038516078823079689606915066839879665468538775878627953612616855987222066268834814988427538429362199657959496922788865265489664304139590955962466345098958072112687562816392835558250322754963378303533506173412365927346205815157667623496406380559064112105444491789483048561993976164786971652204254556497017711638686493560387995964160997024822142030060089942478913581792240698203197768258940240340002429997331057544566696712863710420133257378175233375463912693127027840926117332308816632583810369896486957305059914112729570160204031063093781156453508033780158632169889379948636679689009035604268541456527803769616413333204144626074222327322753422086789423374816265269714641297123655522487077277971030270595875839421493693200311523463487287598967564417686416359893048558050988177099480009822286952416373194784218720712088483769372411961986053620376114680638259497519039114236709805112021517666136829194582513342998816372819663522453656044593757564180642802187211728908439470991411854725735308061998050423206982689061521004828904531091385075518004135992638826321463399987424922041094560649893488451289562227965291278567342442834659503273317330788252985188294673697510841871241494701624435078964282120647208228963081494476589723439090449018184198644270948976392144992481615846301154634317011250532605643040494566007789070017766722090787358337001406934190803206427256485068513636385460480251487063078161573511908899718371319059880477846445410535577711229412530169310588241043602662099934772762676315277390584188063441674199344748238109156784535849882941691797171866006190472078625990270247457984724053171813223861823267496127295378392026091679823475286178595420867103561022656813450085171288888742645199753771135785690541892102555285455439168786680635482732276099833405855013332075964942694748229533767718240513976853781338762187924690019022676356641369302303408178453396263018464567307932159991598718635140685486502022256987802223505743308019763429462336026195673989989325935817489574288356738253601162182609072382863834771304171312914778677851124877606359155597048377120378769177241422365931465392725085785731921187916658685946927590250833984481492400842190193067057138346196795588982899160854968960569937003723955253856506442428277631509046087079203401032699013581019522749052591733409352183582778935570683644484382272383190772387386450150466212221369665314479583324500388428318941961337777718859608379526152186798101568182145468284770106279914318200556396681783154617376940955471994230287571531058763426567245364410265067720350235387456359345510707482248492335763669005713962983442385372487677535228948925445641333702012495390518730198852158798763977985059192951216007917634269113200651826780643107267539770279949531436443942271427653380856886123096644414682839258061298521881499939666477025962614778703153578461998050430333659358127505449493845934950506335196440722175518268834376206903961378830202619044338805584639896588310733477224831211208350619700299789027737475001510187432012021275286462547067228239822236667511650972322475313683703476046361793135461164310194478655356812598645340057682238077667242769339970472102681007738729094812425728168298162287333292984957326687264594567381278575093744083371420349551130946422578269308679336320422879437392076372430472960287947638955760533898008563969758955281608153292919763763830469729524408046680267528191252696236598482618761127026480842322704390659724961914366436940680794123168696300322983762120200531056756401272489450934909952255014497023879545944982927225046390483861941035529291863233208431855276398449329165241884075227639763318387052810509582591185418580297094717938184915995862527707705491330686161172393688983617388359309080032367257235956284454582797586959770766046826160151636592411740314622773473542202997793001413247938059096606649251722096669189394174377059261110480382581842893739758475982456653117540352243092883509816982060260154799098051090743278410515497888405748406130106075778071169903751293932615928228435033084524124501920725645214634412709990387914030324903299756558834512016945672037615657220853966414929015514282597462870472586085309096953726683933077206301721837527234800525635599075550127565590276992856777235370845796004001277430527125279076821452478279352340059040612440819641389456584378989256011190019714259872546474526535370995384899568305890311685686296718296171506063660832096335768724419963380896272062768421219632652655679316893653576644501579883583085820220587039565578686243241803135511518590969919520295454694471441215071317466501040070721827746383870859489459718136599946272194818877547911876370976831189383592489870389645133682621780367756845346216617030417062352915750139881379020383361417252159987963817247977975462906323783922831771018949585005090844960981604511693081719527226717347878582298239203507158414286127521183186494634913087495995547144996688396138162693811307785541022781498061930018874218945065689999759014931763368060882666638917669936158703514552579377111800924174419063893958015241890366239676164614109478974480096114776124332810850971326988914275873920428128505499826939998136234289065423882562929075488728903333383736809787680090134842089918290637856691310705162383485021486131219790663438953977150951753989651893748843627776547916782245271132061523434441693868087785339943572061219743456626967981718617160348168227661874555390324690844418270002276317243440232259274544323114979653615578427636956725737450986808703157740782323396057451373903588764343568640930754357434877459096258485324740735665652863024830081156664016977576266184090011217122096550319551865705467627239969643140696746807294831365803211418072971798112065129291064028880147366609119692582746723869054568767639154698605629065950114215087373886910819373125615734474495200357193278737093026992922485330387730809570459479215157632641407169912979799500620542387156090907376300518920901519060199069406470339351972833467868991044199743973965780599725635979931847953380352185123848257407410457970539441208837991691147695479301209582561143542483969411379253755418090587997734625511743612655138473000739433366041165854220737538126319014104608675207095241535380069485936352995733941381094886193493976120110363217311324508012742812362460202336450583554501317911615176711958455180402443847892229373042721614459796351457627323942832865526404516361375259480538872309943649566291266887444136336821257610096515408862117248375250187062531049655820733162537031662311827866552172312349347044134336467584926199538419543597066024490200428710326041817283892770165807612894844447053161813433043537987823840735488800626340793660735172801814220341960237538724258449704712884375244930027298890696022147134902377792381971016382914671254248211265748815298463760192310620349670917917113476129821399203900604890058395005695024859175378925999051552117465957162688821039171699261447610623920134038949445228416530937883248334134831544320138863734313262653987928863947371443480798187509606178850412532807528842772192653505499912123420974809272018931842545827033209190159984108808828509530992278037945227079914304863021172826216374906498100971010423467731788681930502128938413204833188836944949449593562913548497010003941520940199613630536947097526459083266207639688656666144698958917809124470846349155426544606536647636814637961717042657858707861202385534019556238106462389913563930675362197346766435428111177259774591565495331256857981092179154438052205946676425968244663620494812362616702875018632564617785942320032217936979282276295219763389696300389628448841211538046308402260869423211697553736666884970407115434307536407442675918531811338768264075306977952941867077839723760127304279096809879170262918592446604027234836532588660405997824310247793330635395219598679934796510723400951650930131263555322792735094193345901538818648161899988456344719004887091986160248229987371097082717647167822136356836296979451778761737673730593030966987554590300163610277239806943860304395373535872057678637395231849777518160940304278818507336609215372291820635328497166961376054060975211364349805551358409011425276367857334621139766996786006118823079400132042068358373107416554816265903879176690135671584228772241643361374195495211278135197940011627367230259891240769074596673967918628669770036023404342526616171455776738056084221217919328184367393498821338036455785315120271658948721934504749129964680039189207485199202883232011857591176140093203469380966803293802396999930173843083124448233289348887885251238652076635093312735010345969017715235536479444295651239496518872896515276935312377027126201252061002468018207814764776712289623677755303807539018026497770961865729657659592105126150840942367982649219319253409835933774856560651055846664296679072634213759262930721112947591952848886829722193530363758483451796772419260832617472734374520366225996121244872092101285278017452061696214962851067674755259822133757455905894672052496917059653540224711323953373737199695823655508555531136335951239538262994635944992620783785088277101230826515752282432577791743622695034424542829226815830414432564915519508699490026080004987498840702835472372861193068740205505763886245321252217304972779631757834827329696490850514764868049789699133419280401435246113008643236717845043947148311589960852015660173072325854049822603640593477255517049840180669037425685381810887090636563225323392710549307143623005358453252877731882694066760432997090188933248776380474752276242869416550640087277634831510781902116022307377886519926589083594261505620331891680505994746101325071269231682225157382414609798373110695966197337797661328221895331253015403518115110610068605475182905049122822720663197942467084210111589109350723838583172051722863563671448031928803046037485487605075703844646319089354186122790062037430646554182944566799004470166311145476035827578302709855822391731887451071663448700440683434966745131822980217585989212614053151128644248125468480713215218490991998227229648046912304954825427269559894068109596856535967555471321149465027369437116303844652211222961828243282199802166762036851711144426209355522294185987645724313128186198078029838671669924870151654503329111299981132237194883067994404329168997459597105813511876895923623747942018631196654949726139653539000699793249686063602479785428977833191418134682196560286585903215423977226129008984060474161876305944572206318992722981262373714327610204155695648925586466851766731813403068029789857515767682348010042187505567189782139737209918453044234606989281437445779335985232146093688848683562718067127641760913490247745314854228025042295547680939953510468074987348979527741844303338425996454978788517641912168216359294936171631279407238418213378410344102237603718245815596575292596424009774651549031642221926094244311496804704350864744167965768496157705308857953609865851011358072528108125775340135163111328189725633754841773856410163821179595526221562754283794963755315672014642771569324843193731493264660049882269522743687960622424112441958794936241666733204219962885737427524891158578575194425384461083560937651946172567082013287825741813190356480879201986674604341402277851912303977580730844009172932628185884973033778066256566273901710028293316001081593059567331759705056837906673493263031553410088255601940702161119462697092927367268716426773069889630417656670250964496597425742797352909858761832226058822287459879163407884177404947755198959857378336808249500686262270651760172649190703433030739416387190395939890623846709931831404286770887524881456829476175905924400626764644901048987362152522515594496108665477314035841062761591396889025640175838857461147060503992768937794429330044815915753905422033955375944432462727756181873104879063854860347438590764165133990668028475860818882389821023596484526517112267696127586177716037516337236930009156302116741655452144466946956427555188715936680125524449878224504111315146370971765554541859557440429363079442125765546344693861143129860075638904537468553728514230178355683913033013412250978072541578948212810514061364801461870339127153277012848569712396515433641761637074459964864476526210604470684592126985050321301662884179302554322673617794103079505260042237463786529679265432533982685926137930625085254833731162939031172676118356899256731465152052428085712542214337011104566988137017884442217082332207563454332857227884278251700323302079079494606775697554600177553476264404736192946012566176143785790437015562471534648376137209369917130180301621875673312549080001093333262732589842013659418809001687582178507127774209216860194096372536812401054229767988216484731534883952482229134892749081104164583225240693609777269769107531219640201155039917132934808908985470518655904776218831150449963571650581701010618649425185109947021285768704687252667992183721335809863825022454356100880127505558019208930274873594227529772020985969193539455241686884950920717814244517156387580090396865289009612544284518976305473132241678711366825245651223055130283610033030255085585427954518672511747430920755397123556910790804264546021385397032633080022138708477031418878336497768126344754517810979163493205450259046613215529077289626347928375777056604971116734902289025749675602787368431911413180022304774641289786492146852627643032659023410151775498534050980752333888299488557992269757519666461119452014875390661963676704968728800738648800426460653398190198101017484553777828132420972862203828373314634711618568555106304934396484106476530922042499094742361540042213776129316505328219360119281808816793674723792151107698236948624063865247035402049984734679229685782800479295315459961702363880896363616145413331082145639759847626507987250979367478193082632921748891357477190048194529338156575306922103386630710580789582190600699172905016879904108355591556128674044118127808689083058428435077909107406338299927827295355096012521335368436935150159718674162351835693006542885374876889962766920951194731277752628003799299079310814244696967665849801375836035496462223668288536433817174515048048722887333088194581121420708315813011398334956037704098287667805353554643037678852183998090675666755416744483387585791252620604826816514624576804647877345729579617123499186488940297424372705773324787204853571067294924701406636418149471557459629500609840318041919938610221481553617183215841460943446835413949938986016763730961707907726230187315114088431593328469570956481385817119363727364243028847443890348424266712773309803262687803214046418011912716455842200777146664809554291571146066104653016904647288511642662760345244046916086347668428704985614821305533365180345220190186401544360994481714019619951998197364690912290303783779195931220942493681276364675094768245943977944911051798978775578729539438752558900390634524454455641620878384070821098663400329480668226636724095635368373558487266821168596795162653019190804619874275718818399400151943271575385944845439874559396941561484332232591001771124200900399289728123784108940148548886926060781163043125074593087023982785291205525335497166642954956769610568478464764782913558425824991009717548810791362871278860261347261833895696420789351115057702036084208168127299613587169751624806790810310693901867094885641896032495782706693208638108313324668917597661299692936229331520676148090296581515125967030298183445681396991366019161520960970738196877403540545216623819919245517342537646419747647975922915403127335074611000328827356661720026909075664698665841666429797819797902945028617594362522169377328858704061571594743222769792732727652865360273018143299924702378299300006481655181773845712988931003582116434036921539456098533068260118807144755201299702975322587859545423736232303243638439637255990969980745377562311516125991596495273970264003850122899234423552710926349309207604358069639783832272127355015127437264110452055908600458990279941921176396655950961467734989353027872436440658532267893443892559722774655905633791249950625574472127531106883802331843319260453227924155055751465812310215522090748807902031880475598782830998834741094870961661668596404537282057065049190088518266994616997597950943270607062645812347195905498150482000947527337880226303725580898962228700889558184352861466842316595871351779116090632636584704839488477497741606984752285016875123052478571110135839278095723837988147277328388460932526443058539954247602145398033665525738509973308609982506453357423382632448978903817695436499701096192159353319716519843424690883130899665997253681780878421633871602894966720911008708353584308664088859777028780220964082155140491196050565363816619767023680034708651862685393407237253477961898620938746312084075979684906827663718331075729957475079103152916108575986513731737821369423215317482073116312180354244228257763978329656070921184087246718168848414937740665949548348472082346366608227311728503540472347457369255664703239312218356971824784122169149383565134817371772115353040300562832607643850651929344201728141544452977438202882781992684049712853551547091216980246159770806645053747574975034780706997482208602072426913389054864633903198643587483253950412666599246597018166813191978417134828759030108857259902288702678023631998975258730294580283343575503107079602995642620452220922861591393109469317402741382785294866624234731536989976161977775099105169808186358347588374698841278994459150775223680969923421395625492746307096651181215727066884226950450977210370164589689273104174306827325555971023537448146003971607183140507534994040058880405224701878998704860451503229750910731578918420427900370876504399343450100018300457661768680040908030502387827431706832202366850973419089481993669581320597578035171542987044038341474020773874500531032276140079913321446955191038621593798235001012943001916122595877914498920357758138961025959547638717396418941583336617148931534332806648821120649200876954307510947313572230918153242036582529696937576103101198443039573571384863969910922965079026509027583701808826180403110955170617182708507434510821210922797929408270557232360789225582038302908579989664710464830590315242204375219277152327110684633029015602812954860206198379079198858030925352220142442970506592879097409041724293404461263144913474417167684585234747873490979650433967069742673841148000659251663845422226715084473263594924168372945437268997711265989967324964808612556438666453995797033451481061069404235453714736051907533881979588786450925188379755140533920297013298845214876664303799411776838740782426625578483868030015495972147173259575372152658730822710729634649814910040226200304570463038930649109823211931156312023430822218178348380786560950658456546749809071028677123377672291114069030599061573086057561348497725633757789582628780103048840905513653414694103766208226989725075481750026553258895030153478221735391930747385507820011942951988439171228370321947519206139410037943642499196923203541751070432591811142664174548502289498281595944393123969671950481141659364056524826495064290474851102123067053465335769281398628548161799689956557695879697519157511537277559581057066516801952811531081190853523336455943243689371564123955182706597577162540851406464134583484848173222375935118888919019187645764317670140096341741946988425661976631144950802342809297250302725771331593338079125724700210231230790635403707396546336113706406144662591114276842292460478927649750251969236266699515553634244780545918658625992763900789643926855692160693623915564951843163006509250613277070274062011615545806582280276526740278751173183648441872561790268134473495699796988312099562392178493989796953815949540277385915630923072005787121073185512844590776298136289241510483414066266882060356936101189351644547681241712671000160890571560067757101494756363872603280835686360975444622175579067280295212548508665203054926981691354707446895349415321606244357681346151251465906035999269358008718693206855615103317079554699511180198072274173237326542304558507285379225946054885764710093184856159424307940699685161543214270767726668715209860083889244504805884577408216213934827780873350306796269676986920408602869308304449039065664856542359968645653907682894935080359904746046859815465478076558749602862412540678435947058240108569742018154857357322256419551642940594445641418818822708095373366811596721794549433983299369199829038354630457631458806246474841430413741513549151505012020665674817522851358345329363389976101225570591025481469586719455418702370886119992194640441084166236138178177940728928480741775860246343915612012459415825597196457285094264800777074850438718978811501666547455030468532086892505649631091623565475790085714994691096497664635847513430443811083111434881948200329512984629826413250248090742518113704354984202488393507762520533123739718431442215233790976409330005103113860477150533605076336518803377558010209917366411859555522708780339824513472291142089259132478870294229127200251253476307891815162432874799914678965969128777312922467290006925988783203110719414663608789791528760347919092370170453048508491690489560033413457654811507878154627022481625069113743902582834307429461611764359853156328616443416146086295081181115803865374144468482618077611154309771983100578148779384875757176806556129275601321595387265082081254113278469238001873262202047155993556667907027533179944061339564632109716992837200810580146281105099105032616948452085056736361236254353864847034749297745362657975784650764256255334180532187988525348179305934158398847252752716484850251032346415541930559908551145612600983056548038638191499904160117106051482947873435146926797092498501971538391613790214107500008172028550789804827303775009418079426061475619199982585538463980785683761134340981469545064193449324996818565255416605245950566802788118107221532214419177102737399127683986773647698420481922346096855630112429286820680167456209749579963117055021976184718154732852900066052278955778670125954624544894363580364559024383753499305754652943650888229050423768391617757247982171563156099262167090848284614157831586145602075992625817154279307490638509651932676619368036605172517279724001214482075233346933857314929234478795602885387435264350111572216022964877303740949310574992668920893163639079832204142779174062371927091450310402017052504065777134550524117294994914333771854778722551141722887258303667879868362039376661126304314681293667586724063994525567358355177689116860766171699814164111260076444695840053211305584531971228438361638850242760886857181644862666342952977909982827127922261965306688931514937618872478729803814661505344385730437219484041309769440622097204485336222590500350896564463304263738414397547397070762904656642552138688002846942923273146339675650331466316340417173850323552693831573170576417062702036698394806062258933069851911727291873365886136047291877984154206593414666392051061539702373548525721241243587768716512988365604561232300366669431605196191275423008805235167459487501544141016749236218715956801772107143072538480873500182752002330892939123176727421130826725880556588496127056646557158060993338893307535290321673990683973893566533273357691774885575420785255184365479276302357396357421183529128114905721927017375279436458064849873224089466835777608198065148460034462026790310421178311361400772944365339983363900782114475650753564036338201166959743115676020354227401756739331592273015383443456052218123768688047400625472139864234320283935308941382076441183040376681817985517494905954226581666847233008381252709871331953344919296522473060163575360790433340214749103004334979399322703798390082350558468259339477313319805981883714947699819914231707144113268293001177093081164361591932712029124265851376688005392401858154079610668383900607431251415477840357776453934343034000282979999089333185636142407540075160103394513972731068753457064447834496271720504399012324629218257174696983282727171565860773674004532657415114647246814364511760230704187910489284500635205009846887729230811577478154602970333352621323003681711239920422257941142233837305669035341131187943049218627548701752446013676180397029260828753993770792705348563746954276280310997644666391600861227142514695300252276283935861555583910648831163022674188306070122090942291393479702232886492712605035878522184037201040916703671887250718823377446722793723267046860522712581693499434869394106060457611587815831609219610018681844097356467689055771453239662818821135518593554558622077037357017897929084120794097750164849376489238379079841268027586828227743542886031318469360467121610425351045837496120920880363386409542094939069257747411459206728166110270311801936781594778752814170149410580371361453686561145864316580884028830559281629465350355821559699359806899664296780931657513737493922864494069157861656544279767007569177915135109017455534901854513924908549305460656914722695263782642254662919976057639358835062904166140963429347968604338124698595892546235979069173020249576118678155622293284962473707693003400551863140780165184994754025556508343516308986465338381171888193062758490209249522671436518760142399510915663187913965211613467578230816036447033631049127916881307401556512125831083215826606588102346501391337661563477896652876935933420615444709185124483358060887934387384302349500238156206580015750027029290914790554766379785648063588111656646732248210942578474671944896398017224929491001447908994705911642490248582050862071868304506772632848328591996808691958373930804713874861723411926784923257467176535618017512878324900620311895840361767544266339628481063497545723608087260221395376278259783577185145607597827764363861312345401102582468332942946966721682986004479606275432429051720160404633865837115328244427257420982273629039059674105046525960921127980606356866043353741467022204248141394293624592762734413135254717755723671809655654817802346058466562897981879002601045401368182530719728740926271207368853298782875545173818936296919143890978472356784070479708199857816190287826968929981911920609028866433031164558341783076802492902289996561098347881603061954437856553820611707312367113475655463667831996614550967527436494238497582377498232393371877858981999234220998134222772103037473081244002707439579881322821455308321483093404120294888604244486940432981725029440388038357088449049226283565135314523061281393068917993929789852181867081413043919822383605818494470377149954208946524998129582977907692428609266547787859087544569040042420992547070347288222711418400249537787634018826775945369828349881340376352635925464956954462156840815578226605731634656014893045718409453654173841862698430000967020512670587325095549284343640407706118312123603254774744745028251718467072262662393848589736389981020110197609387837063236961269410777370120719463760906753001402507238803987389906682046086763285657430540136113824986916864932760429390350816107637233577942125656449619136810011394406322344280972025116020478001567705977816481006352941358400835466539794537124347452006589033789597504028798588452217908159866569895808574164506775232741883679141067638669876599395023737000202700232000531227493703114604297376529656235220701050642394075399649206596994642287725681967733538082011451910686533464839937598038945180691548405391278247181844421460671624359945077882261863269228297590602171652674111237077817017634508078564000378553179401366940102241337055650040826747999138830665933358746223436482494155136016644962801769871473514241162311165517378153255348537325609035021140730948562045436524587162954149545949571920060322740071781040750946401081794326884117270670759604740893467745855340223743664563987034718508255121967903527662846106397365645414894807637381840877269363446246072788954357360488987026318282287847539390477937834674936481463039040829084302858061645424317481879069007233260178925319986050154906154874414194481391237202808311535838641377425678422146001530088321868286792221941303076005260587085462744719120307285406449728425321258841795863663192360941708269271528460759011689068216460909596161244964099543123007055186748666915531321435688063538334039915420656223219580476974154522656023551845370953093395488366379504152250456283631409462349174115636520312412645574285519679844949164951017003824889462730181409782355880853247084225151294211932489740570932970049886705215913152352945231203652275820211492430827148698184453025208113013072254482513502052513916245769505330766880400699400375239191052554839589185233686012190989461890117535788468941114505725913086371551360832237673576115185516068687825550098028860615690879757270615315824846076805318965321272395382414853148583283966744179965404916861259547478956930393264225559541990432048765024498943494659906304743759153031540513543895507121212242940839232763965886745109156893974196504000908193820721328897721943922464094020192315692575122171252452830508969687659132409762831007134907866755088881379030801113524860311051882023542952559372008361550582453816733246717914475381371836649348557348423423618684574929617923806007834974870725594653475307262582624325139023319915661528491084301012723455959565430810574956513781984397985074466264066205431682455558190783415409514760220827652112897128732703604102810564223282996371114981743014864232584503090565435084743557130476925122392650447373224417308284585243828244527110504664202515289831279034969580836694720974801252391298564920991876928856509747089414975944187498731037706098451565884181916043307856535218756103339712755415492843679642904604697906946526303692278613720313394090080187337316826199018360758178615234898656935128494589506416560281248780537558727891994200843033109829277666723866051640894030688336488693308411086628446134463690468412546809106089896525727681444649368142734923414087210873909029845381511500512306502983391626002087158408018905951452402061141164236233708133452007649582627491587994087814067096747408776451864662293092471400235860289147715161424900793931165865397241185029169785210902230308639730938019435805325213813551705520341759322156271453500195515094776162023304650020928075570065208772227314170135175113398672232417965407337119353711021152266748083069075400081510692908690924747776044768536664845678589019750794637367652730207664169717128189178173751598062245324400322763015781143936252733014722754195979354871316779067380088489588432646068018620214490708885677432650257207410155191881420619869645117655217996121004374628728789774075991836842452695653055402676989780829849893467406181647878246439246924736975255834673803644306820803802257672739905506245195549783798609993081658307570241931615607549453885951165699511721813907621997851407526062475987567669722171800173645647881051182397632836325099613528017047292539544678187833365774502848395034551008454371133305497719484121266487082560514663200610360365561275451847095229689146041987002614963960408447811794750156201678792456432803104176533977039908246001018855868808440943966266445825284693146628414420754423913077498242020168172117314691127814473760918510035183037004575495222593669561574943809116058610427336027802999230393591050789054727122170326927085140816246659109072330506581215233734297697396171791457328079298210572951425127549479764853547783482095019562732135477769096006772400687368300489269215869426433179024607410342544454977283594771166431516560688968274576362908331998688159792161984327897429084683329450253553243834704386226458303378807697852340806799183201567582079902580363655080574348644487865916095875735401641036020361691334077116068424982068011801632979757945949306260284346113393532931577299182284630389919284693983093940754720384496601639468093548643052586253494078280518300242044808584277036253009392705600754419262167629573578038247663134646914043766490916389288719362436440184235805564392397417014477230642516965747507809712822822770938290072965255171980168248243631559046758362808178178931132858817099863550878386024126539749431384782461382583199479405435877789452908488584543865010204828622473316457572076220428938460222866027212611439576972577181745116779160139283750083208648366851642279670480036223315157641261957129339798877116048477121609318426116565164683131021615024410108961303895359538416768597644048783692446680704654470216826947115326188961126064890164779589337757268946001420238994416428278424313003446255051584147856548658147919006926268834909066726140926586012151165606312223470100097189239304908629920667208640351945604398128414804805192932532060471622307315341536733274941267929657027651909783854327934370103900421685360233912235630619848590604212434050801072900256316846313046088609801429928953511375014636518938347557827006863799646009962384153171755581325680453100420063713064530638835549703403234223601747968075507072187284184493845248756512830008611809944432045653568729974088950532020786479149247936147871496802358210052578856584129651394052618807725376575408136618014736968704546925079280667965594008359049012451024577714633089023865947628159864015680836064937868364167189132267528228485203023362330463724754227201386162137122385908133784186940586025762226144598894092812581650813499507067196192198910340938884412583429275061663777709093200699883461727472739569512417045681454361337520661435928382245899819645089109491094676588635177874640323699815151545134460232866647031802142811477137588127195431143245184142121466986628181532445787959677113542009649938816994853118894729510428190255847756887137589204213369680756725404604742414766653614017734470577494292435213558698102526131272021304741271054107709308274855594294754475533801975776219369816320856226867207623450481713967579493292733372090581434751531790247611188138404124450597935685546195837650518529134870007237597791701812718737092727330927568396304291239756327561657575376572451255483957268116299130609882051591591278814952030528231988059847925131083637882634634437265178277339353948753865166881127555252219666090738215345979479757403489886774569485103077891797924225343300582986314183674693568880418105091780060279733174703068170900821830566334406179276178307297478615946780509485071601399547280340598630588887866901927799731516180424630195387449894151857448634303816997696830261987239564793649482935868341120836605373312882922649177098123510081720292701849337723619348884440155939830677510329184111375522550789504151512421080715536496863021538675759272741939262694258194633983078601402259784703961762190295785526244348357399465920328557127512668442059021362872149503494359198679822800290109656195213545053392671571975780286938472151192009201672431085425719373660668796499529124417968325319615203076220424709100949211215971834207773258582492321598015868206519609060300293339670518892605447675364585656685503747202565815175981827296076489907460815722784023016186524227376241721891462734472227857760581019138732846540271747291210217729687618138890302977811056138751037968701712894508244582489948573916185877632363440088912462768158538645398166033256210000093698827947967381598663758647772582989397473935948877094421280698041233283782486006785390517428001416544902932268334025547962962191584091332435693000952559592549072493888973267660044657966205421868583531505954638787255076782424271722979609688460057591108768000315577796321103867892324829311741639171328728075706785001362192130977995004687808156495792173638480232962349194659595648027598359733839510085067968385840827260699107350534477145946160081075008859097908860389295914726185217763341410997214423171618641545542501475540774586725658615833522349713346730872504838330249651270905445116065111601846348827272213824175250038531688447212258428657182587184089122731081648221585635058966325421891582004621080822633992879907132413296505959078763122572707916348670661210811183732344449855559463728883740445835045361647946852612963100861107312419055821904781823401677034297788628232987944118934855758353733287706855087487541104732770718356199907863178571807218843546403166571762882974268777760431087909318943528267073474565693334388829345904738880247614769603298274372820761331025884008696552431233329049427498262535269085823451219765775094839738710760022917646726058772644874458294683845692137794689056539294263874736176528096359070968568466860396255679256408047995110890109970669639036429225880398909555696067732218295722546700067494225135666777722893584641904010348110863832842961743453007078000634358754226399826102464527592017055172738749845524939038919544802084343144670254393651880392702430217192172615332406386905472971917554018417932590772262124320670486258034380256082320241781527698948696974847941931815780131828893446108403045191796056931431930175824104864212852036245900894835584126970337070831672652711662838917115314817154696811593418489918236608993893600286990392095620781090866601804310736730703773578863253799872413737328618900070214677182628739525641123031661796895195663567149083689935310553819412965012150587485855890699000448533652198939999546909292677831281648362463637287980244605811408485927455406783758306391702098034322501358607962279025217958688076501528070313267292608563615312149514247686192660147469458470069225044985164886228537152320848550979312138151062895002079515637056328101376507137879051948848652292763561202697243415563564772919352250559980126568579763600525465223197991615311533993478673405594776649074703534113107521091972533729023577819871962583948065031894762356868638478848826193436534469942560705807020114454578802230426818133220202641432755837849687140450345372100178445655584293873757753842994863020911064618009224928515191833036874346448100011100154043525074645008561293899966102679771057220171438809761149150760486883330161176303541455063508071880606295332192532113734345257645915184285089314802285919152934721333120243952427287729250869474632675215620691733093911775920945294023723928431757314186263921020845091773032796277287654175300372960904850679513933727768322459591513921265102643973281262244735170941094348009134370817532966110389875044585631036474699213006466135864159281384147085448353329499644823331886244550948472788489367342522831804029992996961243888643331256887279092745327304733087673662933082417303132935927130401698910977310010872925406009753245378240502217445453749027076120647701163075290232828859892793463920159842277784995018769429807661235971365873378177903368808814481089066161479625002654274569598401014495476291705163599427562508824338698072331008677020832702617176871216105174413228624262124768954177550385764266187074009697993785185779157018574288354954970728612802523115676953322356082292933336116067835693122062806307187048595102166651685934141446032697292953501321654713768358092923475983746947092686719530606616535174140890645275865423296091497626671411558991377875715524778300513990300050547279529646886793810433334675050607877883924354346772038929913153112585240525945790302588302180365789220924747795614349586893698571417329668060823246941839298012995516377305172107073050435869816524294369355369352613037435348072434128233422571241509989176306446558392889610580860077054824032770393577633641419111326673123431739252252042998669885339681832612707769690428010040793951056356935806221009446292168149874036329085227007228139738006792439369831558064782456148022314533023527481993139536624130161279179461858951747580014228100479743902717227214187580113237802747594433332392832487542006831709928351366231782724881791084277714821922959591271114122622600491724153530135558644447385388915719774900075635887199215860091471207489063811597755982844888315268637932446181017727860175519649398050887520232104795968050472705063037661862205193925823358707616835109162837465933691206517614686801858477163081133466190511181922326921950938021452145784048174528887211622053500683528762393659366066225443948988162090823146489781236957077429519078265548011336149670136413608958064190299299682770610634151645756022064425857640594361606528643226474407020196489255077661551150161754269287048331682505896900651780896376336941214749835669912313424864551309916019345942517280184643946980827923081258653335119482736306550377838353687066280469463015704003587909940364167185602972192912373992603184280910385433405849280927654087593607668672824736135651858587221537995875255076238881557638367778304961157521068915303888743595463997026455741565569278593442429640027931232661057631307579750661324551946295964331735179988935474771538395837534015250896415594232259195502635878507868970023303692582633222732616829417718495903609632852909589494910801846748199015887257042209443596169079275933362214285770600827044349667442217150190440557317485575357094498637214019243039668057607904931060262350078791126939461727626097291275472975799124062782503925701722566002290032491978724332407978438447422879771054135762644366098717855821149142506030427449183464072439839583672147732611811184798871830280338870439288986031963636952696111576407454266416828482571959003455366020470456436528778729201335588465728379222185264146314111370166820307807745628920719727340670097323332790400699794629606651779306508393166068951552944796297181942742473185178997151963926953092809099437665843913379471399804204365202784036746646183175712578928316285959948376958309060569213893792843239252901331935058871781189322099216238933016239138763904520479337368802280430164285022338603212725614803463646382008506426219007037042512513025510983060155578250938417792197679160979029311588303753243366604000721625634809455532557317552024397277263554229381011773504148020964990323336647196031735102780270751822531399029054880049201195669891303140641918043380419945411642862568954481871638355736831994598127408596805778690166519622120627526775500465328241033748477664101979223699195979252649186188824025419550231529812557373292000796445387779726125291368792379280163961172812695109778966557500982207022989834734816541050611346366515171990402986387115488043750606710957089641530469062832250067635419569770047665752627476838961777527149131654083088985809433276907560878626935708910218893559932397980869289373535537901260054076801782035173157841546376549657998226282271800386089153976026758181260892800260200263875461534455288554918736159443872239879743949992953328737125531684632120151646203603114256274006297138389881418098143397146113255954444748578026421447128073360071617883060334350837454923334969066646804974082784514702072092031812628467785070930508806413525563666327893904171909787189327244376393619542472397253777391433036338940218193978585499702406742170706731733096071943107010834235707333205366192317027900571916628113110421729577921461921122450058034930902037077535165427080006685807885437949701216575793574288171654754540916387203675633604300863841989042889202302813782155624249500344031309619947121093240330283872246170864408718089068521851477669654354475258053551196261459963490813480541664707346291650440232974059920997696859591332102867004204112577513577454592998615700046592155576473384194138551921876628398708656308840866077733677642000382607902811782469777499274573682805078001697441405656015609703936392834722328446291913049461561662494523725315621637524990155887027202346293224675172269568759138301999653436987881851962288951932968867328060894097302400375183494893807272189940263526745963027034481984119049411254395725550857365486542333970156589216445299137619340377530309640020129953799960276391632953321274068507205596415306663256845655245582402399576040049669789899304883300945124093933104707728268343707803587337097794471284975651998237967718315703248802059696746336521955193376248560296599078327388137155058153980294228841919564472434442648498313102046558178373004348553452489703108816478980390413937761923241421088295884126373479035838620841995415066759185907356400390707854332198840714039671776456043104087605670503442533549749611713163725694906557735308819183464797188759968625276804851245523477224246486693949745923024740067567861872728994836350197321876651023001610455032166197778646091032385456900357424895419348702884942416659726778855517721776549047795664155481558910322659774842948986229051016863625205714536085511641877703653427980824904059414949322330065005957051770533717244269075218780252751250039336587373063795229421794857180448958969591549467638619644175802822141291188863916788550513261119528720586821425175958557790291764962499901890006204889710476274027423684037471785229457762713476942715525398546404944739563675208260706913748501910138883964838372829671244132146154021984594359843317380152841597254912988537105811089582663455725610615486537194074724261880575510259976088827760985786064911641556222028163083040870328365844510033464107631150341939278600037493090143622888677022181530444493124035301339306282690203126012597317542869342838860052069826427511773464053530032435651662103844987453431288607468381899682593291350470018561581414844911280870624756822525164640900141784028252272834119060920442967634579022080960247091534647791040057443365273961455327366691844447238894946390685311309581463124460360878258521477768848106219126510254604213418154021959147224036554989774239483495091822879070169070017522431098091080256712539793331705971041802918131554640768945342077589271152005088770242823312826303389047924325914108060280635901189822046672168858733777318360698847923297344057165488434646253205277202793863426602613496624003278817069060335092088153630134782652856139562520630348226756140908854550786548837255299273793586866600368811816340061267233871934986448588721467407972918726304781691833546074958124949649077700769674929483896741320489314248553637760786374638632796437083813417349457866572377289163980989693165189087654081392291342160589744669779686336349182092571106061669054092820373800437826604306742311970144925449503053597719533305500894003655265851392720307199054160420589925745895924502554856950126363672514313107300965554486145531287386923919584089469773263350241231658357723915662494231192467916930659833747895194892407761641960318673167802945630449863631465278167447543454871293318524094085166426358712004405496985849569006026175299230980970674913284476516216250296447640809624700542286777108981551266987654363359438675917107346175662109612467813054195828244542447678881497197714460713891331024216878242734435153731530478068790703454043164168330589739549853709026113311164564456937592276493110462621808467588600066587229568564161911807919283991882433676746112341260080504948572455402355573569722288960424717514484134727461914940266752996660592828198364131490899357637949706066826758436491759918787915866905388331546621095593780086814928432442129654423021046009741021404321746231324397323808364081606412365846964724022504757191627144735340843353840944151160311923631063185322227574160716439966017461926456470135705967303882959540434359605293754741855212006940302413249492132033107173938575675510603452251358470274160568159773380896720297305153522695472685683300954857421512308955260902435380800832659295900093391560193595655567718853867368853846489122443877640223630126864331170819380916472914741293232514086824758279772002237900895321337289845927656794631515805229241152028996098799958288161901538801833887372493851181068684880157115021667413892253618356130912676218300234193242719505956740452814286053622006120728973941911313196859735409863027676805594932426269952854661763126616707869689660917892371990369885610481664974488756345460059677526950084844329829901853171654153986833015319522410247618552550125878359477624226666478759177989063078322705907865969481545346675153059307204923509784216404917615650137706892704181217180636176203740889543877515177068541050557719928314846361298258644496987245309253138344670905344823893874390136621391763304237224787084009760467661754119429847141387488283278298602900459129895764764665152546695995973655740393067580405457742170631213023101283795831038905256389156057781359032063093027455220581906713698418429602916953005206037644371027969188687801218779011942999137935439712692211233122730647050692405906166746375197446654108368898672421557928093302690812643800783206667816878897411581752523054223421948103871375995874164424682957187714271215527875516535254249522831728371835243410277988160788586891788038661116405574359999577419679691611076391007269994078473314469382736030491557650673284143417365114543613079545145015481062056099303678878833063731387835136485975679519325740719961340334595266584170581353413881553258954570053819591041700183079382044873049497586785894349719563597795651224227937253110073420901021894459625526762471684425156946100447949625632681204797967858342349874847801882435096137376630258674541423468790019791238341994325287475956227258845981880487058268803736217280657746844927459058577186595054608947424296406008986497153522018904340117923387821491786106200063492724290598010770933669073584510004072834095391873356488683503811053257150903365076462729209252104241476370798245481526206248339100379238260522172602907281326402527819988279642082004783510599590359885261256480241788704153093112898902147369261748297355338907971066056469548158669278010561105922159990483916238261988138424809488247907454529294486576277825288110533421307699358969585722251738163691590612531851105967628393822805293327303750463803290383750441342950631448914070461170667842489516329288122992093746762532190052268678196225301375859666660091611394107844065396188069963988736390829077469941001071711716479416636250038109297814973663558506348195919944303150771071656271479727396248230267196082448348522651346381977562919309073464631872980855464610217277498131544249449544717407452286451249844828871355139780013347334246757578905831793486750031085494813194648242701008958719161760137722702315021010505926716827086649546853150236472703265129540448736110755193385639090243319067148913471830498299114798134440665246346914850642752974551044134028582658766659974548580541270120096130770747950831911698027376666747737263769244683710684276019075863602325044151041277386337585093727686834675900461231673945412262698611050956191346070247194782640663519077974508319350659442525498984468954945705136999544934560483781141619972062103084411414365691665674197054869432685509035570968876421465557171037467966262810011929473163655459534403627427923721969849357130792497039695007588862626323569413708119788704143888483554088671834321194191848033733121988339966309045238837319087432758567218100137007903834350551085719203417122687334555179840540357774341525677174265955953983507529320725553634992545984281433543393815320716156623253306328499472979157559488684466946432635933618442391922800097623598138265866797292206702292413189881338768538718026912160312654975433510545192217827529824502240997788455997719969557113458112843245054064742990544042541172719918119841290024052575151343601791578187191166968948896027315421041526863164081554515414283156633623811123023985511844584375810482387532245278695639545252299219572035153779842128158980902836819727328359411890133454129544524468061463449112011254634061863451705511291469054029585309971587846402626094808305718442381856861402092653107670199030173517325210452589594327376156026228832250855880650042778802499347582015471054480022097002998540152342262655509141054824933051778648854446365242032535289268493895210216833129971477704572436517215438349489633528615118257441189806745233929318448131045663033328930643083788041076485903652905742509603456196211007001999023863914176605548798392452271633339517996954420751389869007302163804456266704147128760375046343333145554443559604349191467161859630313348370202986305034183151731995582284497610537292746018744389105115778391941557659040589517010580901053630874088918402291118766759404295219487567393891688886993448536058077991106922351233336112259045749467371144038165210870376845018598486082842080253112546467633467485216753766604398731496354914991995776430281071654420415341853748871197339192560385977778662671728398517758878635887934123970768775965973136520725661755596370066549948671619671737056221266669384404718213272258175220032660774053292445827989204560597855301126082972105517032919757708277637167436551043309287054178672874240415162731979708879267691975398169071790362731332515731322883480857296880324789338805860194510812932546688007025766803953130200881268125439017423739360365916638827873841061177530603815109305883343517427111276376941171560130563078761597631388001638722185831157491950118935191349455719031963061789209331315271057318791914163400285742487209440055653861421558181583296519114623586463586183488049320266630837088149606144326303355484039981392509339854343398190990777624914179556868701583542489255566285472420190347839577350759570550532332475314638113614351321131355030178235862221787582865857703071138184524762401851470196461246157495172625635623621671322110016620882855338973041073968754764572733251546405583074588433861606080160856526000243280659464970643992334389457821025292625986684031861890829995258562879058640706692099587459412922967142730224714425558975721474337851050182487786757160032552396887718031221296184453174474329424389283007190932567926014971869648368421531115937213955737628487983270660050584969702409255673729448435750604410419030540364655206501334810049854335248979016181680397548687814942700727808577458691204467079192450609375169590832480883180149724488552500975384169704795596857476732689445986470422338117280806367610733737971549526098833058772830270437629996377743392158043101548904247412758501709576903664573168988203314299147328802604008974546678591758937336536252890445006619157731128177391743459728960780284020567846600811179228117918522346815259291444998863339711077343690634855048946930932665732599076464649268182112779435598174574924797941814604521348300002212203437375690534514160393124180267591653741409897417328631877420607284476547501093007410669700735202749755022923469788548996454918441171790654271099586990980150010379668985748504769156921865128565775241925403569137370775282018782221979534603668311830197070351095603681367302479574544062033416525195284354103462340582325966195364073435687453386984327959642283304185584210131658119605328598275975249773694763389447459072710601332052519591456398843152635911970249270840474958036394573751287672606915633089887398058717659991293133193943118031547583989369913881345685575619076998523322571717863393232396579010987263618620000398541193841858882290301651702323929648690002075189717056704735554766433668631158877331011349506167550750513400893557836968412415235845173585898865927531734400399167269922761597113154311978111630034604745779773686606016164864074732018265575650274569466891321544717000000159086704492985859815148055553306658969211238110341183893465827732184014496667021908928974471437654874471399549826355828899685208680434850746725176835610752134514631992616013158925430728142944032546853081205279776602665271427259493487705871011737804474029423749608865012779687043168915673144779496219468283773808243764461903676713780545155709266327477376361440863803117850720166033436599333068792361385242202890678056439818818159539987789498775837202770163901564507078799670497980489566105097472633196916941874247318333928500263544186735927932768218780056055004592262887889923841661644021422559026763972870428584533290719546766681074301129706126724383165943162653438737143062596574837968051758076376231407281475487866624371886264573727327822160021764679985164322973674199927079880922919442967623674466325993259677867866630901315166393103415900389006393597991446810484170914492315069425187992609629808682986265871445832490011964414984358729879940655784212359352979412866113322073082182281995959247893332617464950816630429329136990942693384233219075658550788145173436108592606871373907520847070415750448276112243920323241935270586525558269702428220135847387497479062990832131727420863647413403347420400629648260803224033630668092133492178701119684063050770500012628676826745145921472846162967593268236782063411913696241935002255312836623941408355004221841270344393566951961813059999683865882213955500959435557384663038176541119427297697330977916857058559521166794677364844179270621746303102023640338103784863665230958245482623409242528659305137943267637951028199305154907387660968337035964619671556384546611502532493332692138002391676703520359096167606242037104865185965487152851273297273622558745313264236373788012241809962430491733017796383307588533876464715731814227399306748406091395777784009031485144323892433199587072189923783479525253533318618541766612733807767124383903299005220585113511907630755519344037692982342319615640395531347579947615039003049930547729420145443674185600209292879753453209746879320483466258470876541943627831213560715774864763039047402497091198974534815905282571705698169128107020153359659176978503265635725853976307528483572158316760309803068732676686315132023569458149961525959517704822936608364224265915846131334764247911520786867538857048927522298224970435500640301175999711338459375170807539656627376481392836787767742539537397215694360350504310329865912302375263521116648485317426121563788646438095161686093797156332433413007553250350150632717632685335435763304549011890861779803882589864230813871186851839788075101518099313615457612130706242658007367828283624852396430421812256076528189478828826157888242329347024857299358721809668596263955166773241551701905128227314450849711122561286027561138253566827440232488264949615051633902266648009976932997714920487384960231299116722619864447805111649492500842960779364274188494461329640237969760601407134744333104034625713115023386014399780113900182392021021321737363113704874398953989333581597023389165668535147067248456585672829029637623359893023248456043940442935969831533540982506130598550940577905972003645470150902943675495171076314236818261523054526203037498037700072211099251831346395919459396958896554264084811547222305373536275142566686962914294901521663661767095179407417159509630120658745733591066952798286770315091624926462384218659945726539775763880297513382794956648534999498179204799704407459775155416932356718776853062177391253127467510957950471483870726972344693800184503664448480097214253155718478312050679569364826369098378761002275638418897582978608205859991682227131697695145486294228439884592693171231318470357574900764089245640206472437194783480946995470150044476205545157147923284709365567145556171554164005621288112361613574797918799666443510060938048529971071363088193056166539672961337205219117738980530800561198384539891408222329849759792861282113695518520810301882223473363150758628253314250646549323574145784840986890001905749736917866469906550213645848801914202654665367919508250939356505191394154858093223813882569663853918819595357326819778634177828287727636501212862423579511783171495673650668484892389773978561453143613452309128681493658966880344273807755698967835062241208770804087562453696693767315728421729668831187237163070915001498561155134346115325826522216808542195066780987230326575722737746002575151850528088586121418801075132117208379857283847394811247359291184912101130268481120277578670490986820385220598111571393953194327106637830684485289384188678829591859064434038472619552198617091074267921841848629358709584192833107877271289504148025515704433864878251048191641106353026052020929589998145602420933580157299160938917556753302894662201644400466301669809988102286968676492161123463181818100526488462021021081955336802065207571958956221229854839719944780700679956845526377712778755832556640969378023912079627267783474150197487068926436832960378035811470057462343943689402705826791581996411964620869525599872025077442379268769472851882884835815593383725959202644989671996394347275120056215524198723127231847419521805976429633374600911162785904574971316608625781331037050446224752463071307239255738043947369204146297000427083650291947239276716959454438663950556926795713462427809068299142140081694951520330622799043543803104159272098610156436371445458853189200648729920419241587574701730493068343478161819474313162570794302130650956615630786715632314813082207580658231383792913176760276972981799900908418563453626102364678323868780402783404940205724892701112048243587789779627955033892658726637361647475956043503088825282469444956289857408141149922748198683596445008085099620836381697121836147007543205710464963700767994277472590198798578623905598374978462146276632789443693608495660334773758884682334493271728250076646128289935218207587522307237187708806708193755026684203687502560938735306687563041261869215328127818232759921164029515677238381588337690912502196747820905487291130233465426657558020876017706073932454142245788522292594013658754741263750202915528916903120659551201422156843569352626333393328365250465671461430237471203552018310265219399084094534654143976029316087626845830954261297904718795713661607519659554595617152964237098918942117014856704826873702850611801054963799520545869988935633778083453943585112530277190027015246472745322448040468036789894765142886557779374634506660572888716568705930009782572626529924834338663974377578605720695136234286848023911994482556242257439828342227737496764534642776595998358578145627639897967497265007508442410644649082165810315945443322327246622949651229117555353852499317883420619269288401788601047139077076637670450733638540587985968869021690473399148190053273531571708981868284164801470592976968736609520574717194707231306807891932027127626922352669516846412502334040880338827592864933471174533653810420876166942738806899050371283393934030248268250229346296386694936197941575792229462261174290101255498277501295831646988440134025289778603314952257663255804776234524416557365298146279409073594330592612806824375757641541364947119313332753225711365111192882404043163387307701318963578578885005975563448959314592264883859168842043418363048392759003180279097080397832603379712041269708140405552361774308940440404346913488539000283322684780059277798203279710285279521195538019868626683090922744880241183460411365264773277190115049261319456143519741627652507934264316407213099107734341972677045724477116739216119139684296354952326684328879790940097189448615632966865604800099300497436033650356706471045327468803330316314951840092298457381828267194654290978878969272723407520665487977748484655346097585131533521395043792857245026253389557717211318178697812247607997740313617935970919827669820307642866525685026001323093967056462077325707515411960496819169443730206190367258072076486752658507530550830945258200575035609895747250216750709390124394490354452176168729086038031074625509716141235936207453252555746786888664936704897036091286385127842959772685026908794277163362096726025023439621727987735288959181178345863411179070227497296088947157906647818888386614286271668556129858385178522678536988392758646667249385328936597075058673262623297250170705982208250379205942385046185567053366348117715304670568310642395132226373200138678903243362948087565466977522430955016041272418102859301157301365241130249270222989431327882525299411789643976353223403806288967635965675872827001484155537342286562878362486281811757989157004997281843486564543643870856385776312033479991346735417959362668657347233804767992527399622642934613070505749377599931975284813157552464666687689072306193771372041037548027482333628376842364820273869884732263397908098066847770315193170413712064512921748409299259981192324454452580693455824385376447267790398221731951027798190145184854522175627631245168019468211399466346075141171953319862518808026090698147952881760563159981386832485357329062057080303904309265966101773645492278188622348846317657697519133095167970342796014396251922436358414475623417988703941975244368840707495621463500445234036674750957122788600985361112556157795773612336157879553639339055814582450089205829883597841045695050737569252864211516027776959303199530673188800896858806583760773196486792009915028168579677579092461304932719455670469575152009928952342206365235295922790619090084148444475634612388600085600280710991190029970507825025112368244049338670687824589264947174748325484939004188673519042222264792875047368921154933914490947922772916906778295829121353576715166365682436889124176632231870632333915509932688340458716846533452971480656370550633878098354258207386138564189971437957363674397584829997528672314812123497669188500177980321299432254216690887253410135639310215881709835674606046634708465647993359491091329850177928861151142203024952835487080548569494697696691357292814768298023062207818626823188802952194932662561563778195153546136770779202015970528254714777076578970425372205405094098226428613228152979398480574833123661828580545366742588722105762241982899143335508011309411603508811009215476173129844921099600805052907210853325103747020207413617935906953096488470301873420306397751958658261204678383068822374311458407128596889689058595385233411966215279599559457762902612918490983830959006197722157306152056983560262251946693852573226168496026857233733472131319856175884702281037416106758516449488252350211163009155187990477990484279569147118798687629293590883244618108735570076587604399340419510966687844224329159407811531872891654087250878696945359211575336052866548930499956713995825201221671534084709611105974010298247368823174717437365278526549094611132749028436747023829831790184093318421678488393211815024171503090677866393187441975925219014719276420024455748155318151138177273299303957343456740258662825401982362215272815177442666018494254321339410590927568043879981905997999488633637669959977422121839373610181608699307832372455045065013007312556448290623647243839541359389308941815508059409975006798850615933491555811627883230235717725192731354942410105308714131144541609187496612454056701257826743314815647858910392975306097322562235900592213410494014217899844879468486700407834895727621141098037555520699993115875501642955495318413543806740173271544786220077540198526595000334703355896905948436385520959661382885938448836991428870236444341812749420504998243664407154697247178458648617640174905563602945155572643603257525540094100942669297117264359674888412814903027818723603702285651578663161493777654661812964790694137507636718672400802029519891119694910874136621928822966892595386759660364956952751671250735651885585538333128706511982888222336548489072895026597084550914052403362853685540146255276387111404831008812204661557677502050205357325791809728894314125084819865503200303724478827514274895967590856928684823588312128558835045761711909450596909564859797597376852141098011579107795910871637278411749626221627840315048492836811584212491077840607055883751438953297224600261232266930716833248453575208032658573260390508026879922577321965468215001102487617762747455811336922108517232571507276041776596797595680026436190630614633806297734329899185428757527000878056861526612831622077162832873296217817859163347400093077728607021269213878215239952312634292269637059382743726199800714491833523650297753103222483584964026545318751187506360341083364131926643478600630387752974029532234053103665171680589327797111209330298360517723406924777110591436322265540249513111716016605384327539072264016940411878970236710914619408154116636001131239531537446166302938492086787840711890271541950965712464395559217596967934842813529989667031591455835784099844830424659200736139926637707532467604527056567579278351084584911480339024822314846512940483138960634767846529173822889392167276431436212150265999470157139027172503288273104415274209927360522339035340936591874251242197512472073088010934847193538406744220288433164069116356949213877889989763244536272459943158273067727183921227764911373701109986021756568647606343908913742875459351220529973361560079737826965718836746012116792877196589317134452805434144695545074955626411918672470665122570507341655683822687852201213915796937012217306097830783376235067986171019618652697887229537484890130434123510685948682683852083113722945350690609277955155525192524393850713951282947660946726008443439586804113993056931474807338311540795116666666851221849128111703422318333611245240896126869095601017162688195480257771698161509437094199078508920155045406412483230830435574628331555668627536414482356578973312219775457844105667926418244752573520989645577355839357674085034933784312960483955676067077120046802465136928010349621977832530613810297511803845619743617085180319471232734864251691938441951690722982580418242804691764830442795509987795288653878211827124825859772695929612243276892044675985190173673292172221295223609504436656323523992347136798986018234905109690801091341239360958557945646885516311847558854428343959480175027584422109133935705915931312932914013815401107421869489665027671930726934731404409162340363959003878370531370564022905468559726950681537933519058056634868575535100302120561311918694089824132507397276159185038078663449668515698420268828341047124356749346874233855252910534686543341939645225026634682473818279608419516573641164427599287629821492437136259282793807509522250175027665982892930775055255222212403496673716097816990408396618076877840422179033837626531417285104438774280544413400133816864707275091379600628675912902608895726215117068736527652589271916093654519978949192417166593622114334329511051542927709487228476478176134333221044223244300647266856590560291443579376698844604228391685106807492538698382809900265816717546358742124321439351588758050354299737807626207997907902450307616690290369891535030774360391001356873092462230689288001376801374336169915990821972812374368494234137984553125769052093475954537790056834623199972492411298704369367009063440082143446488772165846078165802913937062563965560348495951715927287795347940737410144379799681332223521454474601878596432301586395313159840818596109176042611426277312596149306211946455991150041492168374674365360681704247558195249031222595092759825609140267805445614295828839621978208205604943557563288123745311891124156062369866740766854240167170831774422956353906350070955574546073964632490866600010878118940974092176854667365372056534280083222668878651189631396185996093721079418223466322435005432997084508173624204700243377870488491256043005845367690890740582381149044254298511288860248916629943943133253031994606886403497417500065441242250608607518102963606993671587983508709730740704313924795744332842993378004064389739250501299661711646824637360442164381360738105261148241475178217872331304625213657059930616031883495023589216775743876699503522429622787250192276326337386851612870160704970777735662018603213638460202127647662387078527662835296035994078039381248264850841914477476940762256816722107480200215827527642232676835584687337559069245470515913552343430234281944842585693049748444952127453939537914841598679168452743657558191493156297270572422581467464330976428861205875983669951235735905397034250032280038599477487418328617068733381783257519117612677055407196586476509103381907097795228153804286617280421679466973915275338378281063891008443907157784266892913032943374205705585597424230957323602423497272174684790635330204352970640820150319851785071377866359132088351006943836248873665864522379962335199478196217745221239037257850576521939459832352951151052826821112805632994831476894476652679094575300941797521455129098872550255434723626057911213315545558754646621748218902367651826938910357878148611984388521930962314121251367275688920861933318556156987575613627959563281283744246817388217680023121206082386141540550468812106381217927541523004073804416509054428264512869447508497180359298644564133490086488992018474555137243865123405887418860436162191849934023683975593903323329215160379003232518645025072778495243057452742978564988973453422321657463829927299572346457962435696799650570181393260938524411642863253257802229528695107171911119597176368634681849280003130502272138301268957146716942189773790283776969492573119011213205938033092442727458497100217888794998119732124580915032800605599337933047180009346300556785826141319843001722973222272025712239759650398465924203331350464738050379458430648858200247371468477343294149125255148004227581572334621706929863222048258807125251977330917435068029457429201860703899796012433943176284485038897302132771828037756272522593816287387104013887169105783754504412172255754345377998035358265005326248000235157863360421239739503854033598247080495360502978767996760181600358061166311895909677778683736829903084755748330255140989002020398754098193574613183623813511557619785278906740028345691506855571909185536605908238872180062451617233907263131895317894921627066056707653299901302280655163108018378537588979100285902821131272326137559544109686235033428600789864505311772476812849787896645283970927455616420871036934808358654441797829924031881276039857033490063060968940497313453379079142267813474397293577574429278474546900805505220022685827127700865425662592917333064971725655630072210254023620436554170155458153368235373549439294148895490896274918463772597943473598688318021863856285553897203295746681722584679042232606643678132205253952980961131062435612022651947683643697573168407440840937336277722495793327931446612982336849547891344842372714475080564185279303628437366767889193415721684583217011562271085766632577017666921997723867843066678696959844440083287264130167941628827845837373409383508079485897394457208651987176118573913415405028659860902279771018035335311889193127478049825486081034533453195620393743821051255190208416033148668207897481280944995383578180369020920052197149596839682637789124344874095220396623793273439582813342943323138185796043994883697131496246127726478465414464117904677451827146791942336358955694515605698741387011492395489930637408144631321462333583146112064176967267093088941069843480286003430075259359516239852778907544322777721429706168208133026462566122734967470733394387286382568123696740612799858114722186975964167430681437981941785780505963568337518915244587075819250321924687162552696960611967690618438526602577296246434542094244988539521050369564511546053701748464951608201881606739254206051056447515821133265861450902719847292770805439303951739357023874586660269215053522552494215122211501040958855375471631373327463385581332050358351054094331213826963703403680414292324458248416039181279752206199536488564656001112419888201158696962210181631593608745966567808975667356195353299771419847788658249979440838680636347066884232463031029471690842145551019456381507812932822826558857095847102708492386235698858800089563277162162943745847239350012868531618823308196555536079025333735126161183083187418244203141605825164722797807138293176223576241619136308490440306759661391619584569310757343835922428976515428056406140713585931367575402011873757580110363859453318582995868064032612131634235710419890332356582234888963647229703444398024694263293764927456701801383818757716194183394157763803526801385564891128950786523553420749159896497325367674079347621858583430769374653300987555628596645540784500141053813356848094439430555638420606415704863512764395783874832909994804258610351715437721091326557505966235613792217623632446383672349685624773986856373153304382078766835217838012697523150365947263777478252752903766014378297825689871918530948028168013108654871830025121388185516926163183175908795020309601818048895197576189711103346914074751629002623748262589736998132722030105285274130343817053629775490807627703449373629781628240322707684942045434544212566438661846708359511478768883693938586700773832780962285085344374631141715715435246984332207283055341048986514833722196571603662897165042148580256553349415883340950107566856681523182614976870196838391624944883755801674856691203695060661048322762885987897974885253842875026851367151437438379432153573293004120186510371608205840224512378093009320555259477125439223121546663643848513173251870761782178661521020682079902000946922382933037007439535225051335379281019622484559047465639640159681790247206412473620566688445572103580676000511177543034839198843367298180923169381742619732437970157414710394948049332560467014544642090684543066412910014449692123435618235961896210944691825790849333979864697570950183029362305481513787684835735692168534423289395125895896897241626775003538292257336107293083574237467842832358463437555987079056293017389345599360705149262975930153903329711561322191643742982439763366415456699866689394228999011042285004750033593793100405967819015644533319654331988081603810190207016327697385909362118241848316858090187321914840930333926930922174874416256931899979514302745969503393196563236840886346167816811756725030180172061518461684579956128935141593845152144668641281076037630310245685128846349942139965276925559506153758648765434769450244222385049189812146547042800087852732369779698136349526486707648516817684658491925820510319085214228237000711723140489476485544774434424341269299213724008690605396682730929760133526267729592610004513741997716560223289020773851907839495957401517596355305998716025586944943350209889791814111911862584241927495028807235298135218337260945857256101678633898837593567392760314971475496491821198732461708338660555314562559697061321005617015880702799052520516001564687512921865105427640851417703958911326613356459931526575738743218337612552498568871449737425494286112953154414381231968283596282896060397753187788767140562743538734238123409679836398581482921400669413453916825331517503958267144408364665761225980314776654839879107032394765682624777016122428328297736455332670055060154594223237496664726772808441247752599307222102293388081521315537590153979294514944014363194014220083935504522543547085333747947525825565692383102902059105992841662963454954711172491940859866078604790836813133222753321293925167266218172757545352530040179203213023928969538049253634245412301765149880633099534735659946491159167205474424958515784815818241246506519363305664669885071011364371157342346029900000708054854591800252324221886128995670091316571384883236139450014875374105397275645208445159323874004897071362798073760209412252257964686296688466838844633836171006424159673995865890513900585629034437575022004112204517125765506658693545246895780755775357849615504688969326015978000950628036290764670188191972250936949480010379097987496533731469103829839038343031350371846062026632047895523388420238352426812185531101743650958066344556824299517267905603222982286137275155115538672794082834228257068691358196916106279165877842082413233101644156549103646971386454693760678884176387664596969313042793207375555220971066948359441526394493003563138465072963620943364889781327903366328225426352895485449245717626063523876377818495771651061443148725735844205238312600366688742496607526889929299162074453222584344515098549034353834372203717456197624568805725161141407549177090549222979831796638722792859007806627607752159378891839654718011372332868346243591255537724851999160591651122558874372548141156155504392364128280084165916834244623226956295129121819352395328453415798681635069019157910553740618009244591470886300787849876164962782815225875438384941363240967213027965169284541195956418156916383150790932881949311409938874438792870673553484813285600412122785816046924980482925752391350886546831371205788475706703825345390385908303877053821617517408120622892736112106726725860305565715396462338421137707214984785794487835745604795685735852578322203445382900407836693752128115194658711830841582805101245248809312410432874269841387819153786051714188789816748195360796271931813510992526937655894293675273237409212354425152278506385421116907461420746504145076317363149062512037217577446968577670155660820318456429559661562076847044668223646567042537786921036734613083007714691070087726186651114184573636413806712485088498209850597226656910117257942940117977103036873640554506699547791126767858091582496280578953842167523020410131853094857685070408507649894255388896863030175658754763550656207719699860275125808710264499524884418893904145148012577796104585987669778226021169561633490362161519344397648417094973248548972007163419261854138209273093356634485178508242443103202634101005433828776650852180354384739090384265557984507187162625500607303554654320962210694050073854964521799301093922408101180193157193216352197765946028740273295062683249773900743293807782437970690745434292109822656383731527006287411637918195444798828113798203398794094454602598379600250960082073639096702429085989633561916857304775483640163318808692626060269340644376422897027783921191215744180551175188157274592985297329952064388071600027392399086289789035570252201378049547649339897586812478365700220046106168475544079055359103272274212877564659772354871487538620491702146722994717359571655728582819368976431864692409474449701197626638056020854322382570594607162156591829810161716444924450701751449742245847297456175477006262863153677098211659581379080305467504864188546355290137682575750950439761503376294043583959356438283676277438531602523916670337513755292866934489927880231392276077384217633316650399560194749190814069810976946943548215797463900289248645614894900909565508115506683149716230508158300525516708168697102929280977876108499893162977831254809566312816069323382443993457503840194639328469885591011696210481914578214426361593089033640859906798142719023809486666240503796256131253085739713000007640235875304713546924602758775628675582246882787771499172839092631687423221177339463759308538096071981368478595831688690577032547120286866534045354925436662207079042181388445809789205899683425744687039577373598851399198833746282189049016648250247578649398797718646336734709561786210704388121622130705250325197644644014640248654882469544901247400499413724994070028445898481955524611242521634864045092806752492388819806311144068890227014408522321663754619686783043661746382442701922676129843448845130603799561740574777231351583664090196977563736227776572408928496002353051156350344562170256590441748231624395027590568555930311622408819805503124800834912402279156651367910449648989305600872815883529872454298744075042603329033159926958106747355213553513625411722116384011294138701779740238722504709077213120129055442414680935900222548441390238485468428655430586833646965034217393119789496929332917917435773754337129791273509554067624264935964770470140977344525460365407243714007177223548729444378712075417267856779075326945721914536715973097514434759617973659147838851717456160154351814809644850910106815983226333895570504630523500049356634498179729022008240238300614873323897742693013130644791258162040980573477835299014474969143919808834070408445968522520613756514368174855404056615214084128572407149496688066623056446426163156918186672733385837855347914575081045607997528170036769262747742515945157641921821188345985017426809846853712108389332588023590896483100908178585984314693585624098320621259910628947828345924643199686998727910840218725287735737835243507572637689191391731017760635278762913796888270502959241522621498477736263476707363024271930441264626542880702572582376914940151440272325241381157410158269529053148978499364553840108791603056293539423037471329738669374563377432015825361387871736070426473791223874172186352971943330892482172878314184813183680445012929238548220284083858983062690407735346193975248118691256291045274915206125311197383453186123852170551011226293190036813980033319178356560125445600594548376704356143728415305642492543665506664125595418910586062356565944410637167263159927525479240441957285672731846434515941850992616505604152707780039065364757342368168750937498264975094264414466313068034934578510094484119582508408816389341411018363432974243823942220647272995982493745211072797628666855829373088293922896944159770720667093041712968691821487479359105700350582403683726925314043085411476542091447128937165831182433376495578927632064617921146943562893907870317966927899710143493872051341215178605532437643809536711711240466538495812710332563391220720802193686011551025847602428587645397418868409797961856205426350503924109879029471718614633561535051701102250067053826439138600346512646464586591661422381215742817366266303475793102501666031845315619284464097819130696001482861773922244169670434345488776090254043500195703718863784170017458785785160336462170230480383184872416120947391721855750395615165521097149298157757105041674187517159576736661119974375790820705675614168154416621482236545489908172770329946117300451504304312332708635840743457888907642736570555308767428192886766476015844981222818387105749532214827692818982052611267657528777856604126677931597034709439649781748108076237870010416383196067608038411475015620778229898396044497623002042564395673717360514195029651930117589661439796894747961857876771509814513923183424015574374558319445889463217939656810138885555663304738984987610773224389292143910167193541161328766836095758097247538705180802316120176858371554205066147384681385709599671115665578725541930736973104590885753895856457021266102151697220147112009058470975178635583934147176027945798791945591059853897140553839768402097994001673945480519467392123819001855693297917972314638847605742477393911937505721434342342589257191989626982202292930601789673963944217531819295255265620442605373670978973745243990045843893299445936173501392116105181115597107432377326726897174440373831925328963225053228176385909098229195552227433898321499996635969204087628061931641539084755154594159286078447581966573285688753348213866092295294111343327700420004939614584013149982342750949276559529088343390557540217199873328063431036090960185964196020147771878957282097997287873827682225870137890002932502053604853361900933909352570422280605606982603690702219582986218298051261532293799545733237840127455971876025892005697006575020004522566113905862684853362302606847089788277142812455582276703529350956122197841746057522463700599443939830387930082917423076262435337137958087334545862953066275780285228358120644239003992080864784165377926541616689965389088994442728447090228078956482531064152845480116389980614722344683703722228482299531909830028722179468684342903874816924057653552091510926138376389038162007384048763163144680120903111209532243835344672000851210407464537870318988826091027695884605243081333890714322002813433798078427885602881987973669868511517834346047655193902679647967994587126244253172845420669685230225567198466475901334908332854166135954072508169398622056284453188943206852055886815708881506481296075907692161907261127863490818703024399992384654586246549714284546379717411249401087292070478497943985202526183598816946638157927973522950061140056653080646308433141499184808265230072568601595791361005297594729564757412757135014715984305349583511707988219731977188859979928626341094229836256821158533011772527263849692443182024047551598534261622220461082338700736044633610752914441204899218840944423356207080201600338075924075760444707287720725220622726542745821207549363173816371254102996578985856408453178599515494077734533973993981511738288789190667046040789196099492580561996918448594150600546099620911476410150244103529137770808017829918484290237222087654228057624320309314581398442978676221566289447644171527688407710674001560411337524138649322362855654198663967202339108640020623073452372260625006519610098425534181549307863391811562995538423267102136931051795941582415961210252621329048516597560227500000733306329640995636657094442078715821704777317677977187446183267580368194762274858329285350961751241719563099896248230021718632007116795965382520621084505278011375220583756840897029177594619300176363729647026623496058740515546256766445910707228803962723493415875245551439302436340328850960881405493777922067232765586503387805762770442395581388236263530092716113058777944183064677053086061932902316953638613212288689903638577233891502634371358715606745816941071024757918736980634410702004212892590076647262376243050337773656959128070943872749423860815355955672257088588435029132646171974883653082700541948085665914913776292756218711856623275444684696168019199468992688642967743901106968961737548859183245407385631564680454030969563013533569144025381331727761553758484593094299020697264536567582489745594911790118466093893565296677700666010130282746860450922341366475236535503506780788811887736568355120206708764728123327937519214146424625597476860998616718281112442337348759699678745184243633841268670864326291511091112257736008630712751767532800364900124464814192133698566429132910226274424029815350802676980521505920892888563092522114771936416202832590405268630180219948912485654990737252768763320741160623735104185884230162547302763778348025011196741367423614969524254770640208900793950117976062894399899408977994147859541360905588817578733112355553605555505266952400452424127658255503419652790527500298968654664080864010285641210062097832454195543265770364734304826921130092553868714018368534794035291979774759299150828130036799080794440570853076585856383858879002258098903685053091692293743120834547102493833235601188244894413144271552549562559529230512562703670992568817528066737484760919770505099293219235974596471902431924869440587702205172544788055834616822770713445359356467433245299953183558032757309733659910565148364187586579780274914668835622363799041672418884559994966673465374026544932707798644918551902874454904146264786963962721532265092224893277310455006671543075074451106752396432950619464026259093369091911075938168724663658849058139174504041492087405967872042063308637944888225544565768150775387002427106822324746332916285809205285748491995537946733464209655685923169003894988951206944788615150986553633758430233858865448104166275874651308583990360856107560989414894583853330609008207474697187855010199779010368278906772293123724643035123608181077362387150416255548490404858234022442233878583308499835603491317957419416133003237713591263166012827496586915115307056386213110813250436279862681322569486650549500606540401390636522753970973706949464379967696564545309142375182184540246901024612539509142902660335319786670437459255114602675263499454108481667446716224277100634449936517133724661095902522535017379840272438495843204870902872823125079661662845032821617379022178999663555622369489114651112264369896688691476882117390683276176591062544556514365624123499623432810974307707845655490445997458474803716604538351712932286190469533500578828813494336157623363261186473133804200502340754470131513293075668190109802823231213307863370661073546973285652457743226017200734756255889518007968284445311084771749855012945538552799873979127108668226160302662626322841687291701217338330637502183733021558488353214276533068011191742288514012678655104849847307415792695524998556717709920939351345852494142758998276461476206315282687415585587630075577468344304972127657072957166288398157604102009119842448923568332448166571786447516711259876047630013822190825234957432980018978384243664967850820967287146700445325008613918278773399704120996711932984872271822108579387794603054276677835283491477200264249978841807225496667689281854929227837808513317522963326498326731396457257493561915256732033714181460739565983031582065312732078863832978544374482236439465644601993080767176280288243076363854431353135474223372461381526045495634221134511137697296102716164507586535876471146023563131854946700814001245363478838417557608487302941874743991801578794474069038313839231059902884747466638347134165368635056540858487545032688961520842231047460707882190575776010921114159360941610306457147454199123527348083404702082452991052796290119412989053256069140917292912939497327187664723725437966953213525987189528834811235406184135237372760156110005852476337753154891121989257067831577275170484689923227822839615797145972772083592134224433004565336549462175352847147288890460190879088657996178909622984267521815941042484813778188608634710339852327420017143652053338276091896503401184738034274595194024189173286710918452607071677854178735643787082809236064603140353281156865524980320663660574516090251629180686765770007027309990168278763322681708658006865733373273042291459205639226218632561632970315422306939397452220601838761598429429379342697282027869588341405301515779840553336761000329155800997009223680568268871592846998126204935032742437219854418856772528657036906610473044973107993309110654666748992184700739677454607746490579293325595407658963176670199251461768422996207147451203488470599551928756352183378587185906729081123416049823000010240047010083572657311638403597851637690336051400800583088091619640565623582478049151065630279872698487682057008692615859295543067162126228142800990688795545666948427147794738584154619324950585824399976851016504476651359748976429089447643318293168617446362243350022407492332939687150351082541639224721062594933653480175943127051537111446638980469969806954868901638313449554554959734083669208849221259580105136597257820226523246463274191768681845074801152191154361787641858405160250316942874432112513600678261888167441279573324458033768136136255861320914936937218109901010773560198452711377054143967926416305667693598242747816321392302802040936098408915502423505641330765668152802006035389640209854036835421489877968052821855304722777635805129885227972832033408075752288608822928652605788206433035485677807407521304957547271611270848742652885790178270912554757661624016289945908188144778199539936700591438897572147000966809244538471576217277900074918707002045183703269587382127587658566393442989092880903650613492844823167458870811874393977102795614262200773162867528359637130923703279234952690257656874856799990352045258812638618887768581275170150119084253908611999363331021414165147655747563423037597005954300752402097364777904718391925375497461952265372287090266993161212909763270998586661455489320485246813548331227132575216603107303642800615928105176678230715704419827816303199689587048880078036474853065527279861259451882247488010874843783641261449315402302894741092277595668796447628087341102766737836798010696395375550732238156256526620188947019424675833308871266394428087795628740139443887307964264626169124725940985267230335450617070842806020530912598922556824291459646464834435756572109115550845746910706425490489955584609781701730545329744923908267761164699304493312224066449287892205765446916595137424018655054902540755852627546984287006280648190811956771252789225144549124125215179277858493366229753001370845516987406166414519466668582740511044814529059663737463992357511046046691283857853646444602760124524318818788064853261366598355839864241487837225560681350631227230048504603587751810091833867365236353222118952015991625267552479233812478770759123883968656334468025503464116264259110170834266452872766709926930110670354806634134336924323552119895831824755750000176016463993798340052383252946329399945799431832258648820262831119280829426556806926422651541258009199829911908366613357542654269100331960481898247646430402392427820096906656695774290523856094587574818900616405875709738228016069736907226046236550182972935860539141614142753461169136909267025044352313234263099417909909226372500633700966330512248499655346974892907513654545274937201026786770036292936186629406187386204570187034485456550865488760786747007751579225213923132266946519851076407405725718286884793487975460685466276999954132834484038294106476819078509868454129006633278616152934861200348818398976727003718496825858771614403033082562655771414892698920031817539235204016158279393032303962484230881176384107044618096255007614374454686464223623908413679056245756282332071729863132166016812278068961089312822702962448412640458524092054679322517202684063269860548592650901760030318522882507874957679999407491021934059379323012521754612508871009458183747141576435258311371562244436469153802768489316102685532054474355613157299888708169757113736223654261583393491909557006075940738104726011221402341808561095375590166143338874645429511280709900942290955613889173849230889156766514271873249469300488644190180762506168140678150402849802796934953419523104802058120111488999188848589093871798130806163859589598129812835047337704421756686893752659961423635881843475040765353048971368105026860894012668913303341493798898512779183449763970624655615160008488759216100657982224409577254655726976254049673922674341847874159223100433800784582509888419378162883563341569862888346417276343602507168578763339803576948608332491341739124863970793650730960511672380455427509130583052432012455734340604296302218767344087168880298766674793904345453428889386850221868073912043202720699824842973527472825355305219686554102033292058160609544476392643301651033109455339596303772911569229012100559487245947694587236927699932512455718378107397235578279290172210327885138814285437704376825185831558533522344794550443802870562502514131893139060286525901581317960252306644551491812876201595299197826933193259121466366606768717485915684010640719246851842379598747389111900694530783542367083579911636206328721751768665949038055479818123754119636718589440340749840346748208186521543134794731679312775544328617823482543085182145546205008006378544414203725181017831040487514782494328841659177152472041146768852616739949759004943266013335754742522213577719672497866369342307776231231272997366083621299984365758383970328140048273005423554119072020510731567308182072670173805499000070579391926429826313572732008429524142706274275337210850555390938229999564903295569802613402001107890585112730369007999933180626745856533629507104752216424294687362064849365155615344411336220034856449432063988682325591544111025329893974140089291479277523912860704368758132725834664663814470789465751643538992693174676524570160024183579395350855153814008499022647114704725933160096609829588718102118456748753097118153773459536216382206918492890311876349513214336462132791177323309644742539314258506124932799364082396590897879306658156848851406140055071856088316729954534633403670781383974870685185881526933594297911022903901091929126014465677284410327412800943388922641112881841569025500109755470930555941353982480873177472669192895316074675043050390467311658730421804661519670403530765854092724406665117988008665921773305721845058729324292556447428655515892712000984069854040090564376637568890626363636510851907843862521584312198416695218868847289301224281988858014520082060882224016287810409294167467352879811264002891095899706948294907257693648308357677266130195329073932243160816465698174091950544573901581442274891904571102665479819212145622151847439691061581517280541778928454666296807765033591016811129795400615858300626170752009328244535489581609709037157392036446902609714719171424048604872871702206836665794156809336407286855729844619842277102104008924257263087264295997467067774103268003513072583595854696987746745537190149955678969055699875286861195886810878911329177076948099770648065269217738000991187957183144705457276929592640503849990801689857654097032311044574970370349017834016961843699197729959212491118359071897176247620908331203516368076355125439640615268392344902043976130105974493702128561920258449752179622441234487755121218605148872859505920461975446278350754363896620299476166141070257025233269984842187391215259901539102805754072384259912005446944759364788945675878358116054363253875189012520402397227258673176020302595353873846686305225021219279436836970537973733441730785491793296390796111657214360423344160330731030346284447925120200652021346442795805911125523151551772548487335417324776677517256934728490468049367500830812261138356649327910916642054024644595866321328569311816573016670000884445573311377391256154700655789453703910291951591250527479553581211728921737458154077548074416962045321567208803443430573121647295692071571671142880093910672862467272796680669605293406607106795456306802761766940283917283005674374091166536281094912144050073428575950466605714367270784392422239361202519385874060232807210458020290395837853577602823168684582217712151012992536974169094435167496196661680371865658503697971977414434566876733166294555269096786313639964000739961839526266947404801604947923520316507035420213735490455251506918027853394546361814643199980128787544230332081528134369923792195456925348217028582887685212193694820645279060293795245822367137512832169401067516128899932535919904947726513454278266548316510578508478740290589307926416060932452396509503636192688904367520183935702534348115245653199424595580172044976030845295209798974571062207766265011179087527120346989333755393446137808646755843384524531418127691262067679406197709959084708217705228656875703508559214136104057033475839863130595623568560177782251577693081222846497882915671099994169318718851516156767810213723156076482958132149017754565761460276292401970148582582271600749774716578837553813821121843317288907061369261871677653634148938739132736824721227471871523201896678157229847392989410782784368398171571845732829786442875486946897015878151635979508741243289639934671616158414396249221256683839647459861302848843266397732553234195519652856579066224203600703292550886178217738745765720965256677004818767473443437921174631119043042742542609571271253669337898398204150428059925556680627832998092773303883606387869660769354826171133239352438791400450133606663273898170398230807381843899533308097553214320321770147843447668133611120050057883785048445559387434541461436863402798719698168211198594646407302711682433761205505344477714075995695304419979733783983161585293831777697508262042043581514112257746595012834978412512875909399505235627833091735308974303572449638595835110603313680364282904273712512029184504080947297452816129777191733640811114855434852445428389563122549751771975537955019305221860488465763282114567345211535241870718115657721848128209566102239688101541384108427945998602379609874635807960408764404080298632491824506958743824475707541294308296661373034409012293132468130392408259495285153513876694493188504705551919644707104961848306809990358121737890886965524543848853344570436659070149699215936624408592911211606135520305585956439743996186376586778496693529664040053634018800908139191963787439743108136975398296087381880321509373942534919050590439945613306227720609323771056296416020046479344658906889595755710310960729693382291825239923606834577302328891450293945697008750170377940446087808200098063052168687628874043770599921965795896488042119032943147786008205279277674782349697951947606595991592186971860250766627711332835935490321431145348413479670951011123815736311869758722988228329955983314344748111684592526337112292999204005103089097074040479925935286015586244892167163456025636282033496837883721370091639827421252411900734206156078359410864158773890962767305405985851140820014416234280111116142066771279017919060567608128431273109683856588948922574469236751353671172436789220030605481209337798698359099148079568209039676256623394103872074645182151318542298655367126212245377035710601562972937094646100014128693846009424220891660390061200567716329259688257961413021438471796929524014878558377775141702847084049099195459231371508531779107112896552819621614468786738729201675426961547422084428322680573083739735068178800657461570357320578710617030652169409854422849358719512337305591051438043612937366937633953816419254502938941116794542364664541076940600458205477142879482966614914012285126300306367700576847203561447787633575778130948453537349189287605486596746194821697245112134778231705812660800996587092588137743584522040189923553584874621078704656327275838269460398833408829099475792961223063017105588618784979927510875141547218062684765860992862609730355959774003133376607867558776935956456785117197923482284388498536255122345024044533797414519527336050255229333647243035161621376131978762555732198889354131270172173077376507641134257446063544640382181169808628918386391366972563112454859071861869999456079122391149298127075638387134425871245562099274827141955625134866577556498560192142847540767984035982940826945995762864021414318807848480588126345827973451771804829140419422609745856243899791331749932383950688125015302835726441080196612204529767235185605285028701321463440027756405442029344544649044820935457944706144131961843075909648061336012780630619851516393182594918150867219981426806070525755868501705888149468030945389587143928064710118239403467416087608337018714434477003524940682179095160932897731453068900394018691852068420004059075383416070576377490660897392928731511356802222022941698440555236849065280734243106974082153492818685003652487804181331355204124732642920022823499397529933869413945209053127120952066101064202886232021000801760353246428848858146750371787590194750172465497392164151335804269238382214940848726544183563472026899213210601250919923461079073864332550284106728812150700197027184438414999834021037864559214283949386642055746381485152525492632782496176804672998781831727719540509342898176659884116326807207705257203193148379205308483060931339349502176914940942792223228749452859843941897683114844874035633131022689398246802262902823474207950423503746656969287857761783797328546918864856888842571647822415651039577356345134441425445582415959433579145267033476148527116271742450735366162544464424362280771467306177682064534115368105408180911308778276803372889885650434374296053258817992934919532258791389466343786467392080274256773595343699402158896222017123827827149054636717091928884372655413858491953953370810696045234736381374195080817264486786464610649625442185787664501712651801400297413355705578756318670568250619076930360627068917850780938343042307581089922331093078949117851711787024192728602084304909008354583563399803193059333743437707631648647584113028823460398200355966517408974599051875375302475218908989062733630125664563609277448766557083016321663321435376292352661469199260473233117787001377142364487280839406378010250459593162425625423946018747444425297969676329967696763041080794253027546194105749375408082441356707223469646922649948116878528097891844574947376241187436058648716957845014473355412978956784798245391851748565240909639657186839161708724655791857235732491853947465122203848854897247629741091495119633121476270284157504767409444487127556411907176213083582774124686707830577906914443458077719831061640504364393858371992863010472233744572137639039172084000636330843401968302633449666387282390510865076948231822337182777345126437428637744229383182648639893355884661517070628885312798225762462424266241390695238796922530421607135281927331757890397366265511164322257016184865201619914179738795004443456310328357878980720544124987362583275453759596010452070213809387017800364766251145947441612400127055892067622383892841294052824632570514560949753104931581360287908970130763802878888596333251034944962948641163006023212386336891831062979314019940815520435484977057944197459623502788704623383152207771384010896971408931567478070653590689958353378686043890154504376348174417574915120660570927247206103904447275153250401295873268632951069389339063601290621787596810516349881188028444141831596490767947776399675586772180447991328799358644671623204759455017432042103327960424453623141908871357055602092539832925652749550543167916768531035026076575718635274617075799952761461967317191516424450754202028669641510427496002990322703287551212506603792457824392599285478365193108081121349531085443583286090322156143931011649906754757145920201812372464552292461354004948851953119393623743198535358636670675609658244816080445111949814502813524917099494862754553812669376503368558053838438361429702129492559527978408192871558839112024678381498462029754131488287037870775937673893402422348599597176653906481738838189606319813199812330404255815441507480837215829137492272610622258731634206302642558230001790596698801568667028427136096705237873890075290470103907358453248924994640448775283496303157435494773805604420261226271706224051128386697829091953236663854141758541717959202694715775371661496214024947913847736114801740727717084322062765902622449483278225295585888507364320068039943504808251599053580829578417065190354481834512986541719836045878483307478608778230598272390332121522568198237269336781321287515072733803518007026688224204232756897945693563606839541871767249709332492634654281164107063290846782125217781847178010448927263352618590518927460619172054606307726812451423616429590355734070347963355991193861370980499894921384579308743767252772041969437482053572709055712835618868851477162581728174022316516249430364733096793281167921659555257872985036429099535149079945390081617467980868686581681408452096013342927179033487247111683843645116508821040052152302395198133555612124763270979996474081123924111999568698304772548825038104623705903081841729264973278283376255284977583684399603684407233113227488431584344733017663408347612358463592664322292377805894434224401244123427186960805076207464515772512317451784249841184581077599345089708484967623824498573832443219867318393002571906934310998675664986181101468507801315243035948143367143428396319190833614946618657197110078988909643023695634758472608547638988395765451459560744567509894144481844531507140291753549379371988308748083393031531879955080154023543266439253589034087626734155572885934545908169878430758023787772764399962803739303296610532855980825072817153643028489923846843233836297681376900486653152053751315076743445445848113248952152071554033874696680870753249482318503698117293102057078331453163263708714238586928686404153987273592042251196806890248617029067143151408908991261017354243794425801743441293849249911453386831231035799963601155169926168137895566635870641669633469250536503074027574645605505683918762552624874338854103227725069892743053323640664119161042771763610667275906134342960204041666933146662624654469064308913927830494539362625876763115306353600000802490889987254854530882272344241322237927268609914289177098964409258091874759182404627043514619692984100997769176728083605407337538051858574289327744730547104677294278088699593001555201048899587578376478155675497108634769717381338135569353716999399706156495926244851288503208553340230056616294811268437798407603580926708712382200684195352409027681871855292776852643734568561955539703214480560433311185262851001680552136510709313131643510109086844606312175919050724459279420646192500867595573383296339941028778040845092150587739358500842042263597243374222056889375531234201243941419426360336915206757364069568585557850701521831256158337481164651704907573808533616448752054677054667103206720633232628770649833369532708357237258329010493859754236849465175903656020978871311236588301079404102489939830236176504122569057699880320584380894640210092986773758329553490533013169645688327258844997044603767173340109332880839113581190174708471948654641950897841303229502377498721799013308821793820778714502709136171325428229853015346751350689023004390500052484952780738373361428340105549649873728758650588591113849904068469558551118514328363483905408616142416278317446158939454332625800975043357453143347871587593024154388243358544062290683120312519999041641774785707967825165175966568155799541444744582118835241979982536937500241329803435991369272560289005056461691067370831175833560553439364603120797640375507411328974631301893122097991048057968123200665867781628425549851624382787775075811191107813111038806280101287551354841446274876267083762872872194901903651173625460331392633453892560394987186009192713123397489039644374305554105583083072652430805750541420015931849786542291484162718798796841544898285491030919467795739279931283316701370934681183357105780164548978906393620722896416311137795717453916288143832798857255828253360776273672156356432399611550252063866153404568904295908362293719739625132901748464238311897601309338241846846079196236983945875524939190133002021291073583273512391458931256995968654299591656220887663205519917797422177501716311392993609523130751445009005077380391101883269049903915521051762322475847763295591139946966390648194446968752533687776184139931645909535465972202529147352909789292128456096279359891029782585363351074274516037787708953297050173537345826805864757676858763853832568744456487249087374368838772238189415051749818477752217373369853254541535942233139720454417591653327337789239370508334035500287674692943608793850439037556111859020742490658411971209259388921036115790771894614304698396985318324381409236185795236788539265373918054218380034811825896908724732972531260813327427351897441590974147994930239372888944546188122113522851165490548911834552559570628610915266953004272353282777982553239399705937232646382786773479342027715680134596917097255497172473060965406262229107286932022671243182230691773344382593798402911197180739348055297170599258729098044399308100681067850174562481033583730781420568978695663842036137775423308152431152754522101175441062554816521641653357682236916039899494060932412538677678168545964539605223050070788136141964839737188992467539808226525215742690157047926387679367530413654205147797793375815957575376123830381517390761871788957004569314731797221676938789550046798113928570068035303554770770751141634775190121495411246145104489950951159053017665992136498072173334158166696569959399267182811031376772598486566365573772364955463244336492571711074633002575271667587609667111967975967743109489102156068757886877320637542089522931975773750398008078843339365153052864930983080337746005948581880268153420558559221357386310294382391387299428816720859419109311246180114086346555937832956711891435305213153401462178955362059587953140943456326019996571936013743857983879155614260746869160421188207360341390276041455795522456252685118945983180178597831453537553003057485530074075349143374628043487490422846509899900983781482347812717328816361566373335389731295950915240054052861686370147911367357015257277554446155793400747179119283513416414463727999112705930204581760752392902560509380912027417065592913188591115887341904003408175200365197263248376551098805798340611150180138501620490375017488670194654010922619438477626870845854241894284336314969637407327288242445360098005268779015730789790235368271017553128972847964181905941574207359655597869040694280037883077022688503840780447351693280377226471127251131856759544469668683430523452503657064039843775286576667278777695819802085942354197896570340900079228092555178748504908271112731575429999959150713859743476063727022517564156562349085158952343075659153683977677269519691211312339043464083164776085300101362363191526087133926858056108390014466210533972853558805536143909437681697793967855807900418224916916801183048680203248794310288616433925266436775050090129535069746527152540887369129607055303127243221493148872939110961030686765283897624157319070996814249463791216112658418921624420940458221551321296406822740033336106760287131900155012863880478152754673441017975378238112485035577752145169019308552559643464891335347638236121779469569114498749877606419657153713560499304686481503432095755492020299126009861798457439462530863927571211092671132816723847735121152712410824520449334647850562424708378572629346639242332125405039965365888197480503385415497404518702467308190583294895596110287591474345452583049795198659197084675226604374033576851585998747204308457803304850546255081529079745633035172355998953570641842406679692897385510419862501725512304945333559965929862446049286447871979460611328404151588179911862795041406851350852646122882955458728295126060699736652816651826500269927279509249457185973776839680526857481216483676531003955561085613277724076826421405955564640391829235802851916257385866613729969408626742861115963041079752462588731579706666297637565493353290311346978537128498764100980076660954004068421247200794753541179866546245470188376438293894067463510293451924669089744135830723462438616742695800230978006780459980506691449286983463211286725814979903354934021594175637493125117679530121504240401942132361600802173339367465978510316758338419165316967374604431786966520554236567227055544983526818538368151614349990847456499074178567923308957496346441628105532286115226802299614704284096911001347946898371964353940263630869122432159203348238586608878287974558639078342126433405045712924199618089010420195285750273831806405540488500009500661865009800074059787499422942591848729949798866877023088792163212760350652856557367041579990912759399224285610118574621372796485859545309974903840816452911553762464419127520268154540255413876121813523964886289971667359399877769761619006226433857976869870565022067524809019794450623640615914986370783676817676118873109875497088740048978752751731060125156909013891045761818999172713136377740220831844877435972500125054610474959925988404101343327215011114056899870349830427222672057726996260469538000770242434774173695768229637979114044053419549227337099532271440357975243102992309302528253439512148293882379060038066221352151524648722135338761132362864970178939210341297774280452614943329664405677599530559118447218693349588340657886156973366401513431473301223944446439311014775232150832462913085414493239028604962004026331785476834325716614782303231052280863471747304302434423712473833432541893892133525939104823412122805771864375236153660481369340620115216140080704788040201268236638850979715731560776417746978496613406630622592568266701416093824121981776062780773998546255295419124047739964637816371920437116731677856235066015277294173810953100207762038679620086518317413765931280827230744011395464816012413216324679682461569425941878330312680467404572657899028017451375258079330014302055383553725174167818845331653496753753934249371025397027204162748901186455394981401225846932378280222376765345774860860766378132436471647098181746973107494516577429943002608797183163921521331456667829135560641804083358882777355119846774823138493036639704489934620405183112967122820183032855686747460777040105597117189569069506326641710669614033170332484941167422641740112288178495997509813548783450406229533701254160555508240200749398922435410968658028667978055367474463664840900909108472501666771331940946021911396722089694014253611654306658313818199631463827300893711778131435994650063400889585340877142002132558989933469086206682324212349831760106847274756898939337731858130464880330600584568267799823329173484640342279976039261318315660712736699661093595595621664543462577534371524524535536702367015643026757876005663413876537728291319598615926623122313131941766278711396196960652840531398794943948889981164065990908581123383507605057942351573308557747342700074093266115349576020438812966030060369228282196400118663131943154872409752800450274743882821511119535127776852149959698751210663777786154283783707408277721231817181005465083147104134985072998099225557822928762681569011382967723488250219177409536314707414052227332567667843374596542728268078605101995325487685653420050156077446484675755675847125235552664940884553089490209081030862299163004829266985077278841707834576000928753429307983335113656770791133154735519601177613909288595425885567585057101867531978818261788383463193777186107172808067797012048880688389178488495787580898693816178526374155574152824856216502413470153530345515358302166547438360750133377233500215374394103883171137780078798601753753012809670854279562082342836958897117274783225707819136959472308156107475059750856602010269028283166861619908140945804546848752445858897499677076604947535064388496678306068893591845852910909318478656142953134422738964658829619155550398658522481725818089470643132292593733125282831580713808944228192647875790945184011940208419808885580475446428952152241715813966660385583780719049881589649741238264058803222629736853593381810964844719146297033398422313627960343346746834365241433488485119910331700750773965693201434545111730515321170997272570412225487538811128842673373505933368441536842758413951567698175723977844816397113098418295732360702529130559274494639301804871452506717684297608407606972443067927665674300384809264080883977340174234404498584717827836929909333794690905119598668216806065472369588500696930649698325640794714544038933945151501004372360367255757499715186704513150977047934564131676733910730550219964749814287248935145132837672559367168134796842102984114052535362636352979632234175237082516607160285038071781365638710779678856830709877955938166310417091257876797198869888809712237603549906067802467595678333798132786237218334605607197783399902875492138771819946102468528001896929147123539729876017092051754180569960929113023804354212953187339505567447532283181742954888617742174386132872072689107507878494454871838037069168345831361304429923244828084940823773838454880704102565548608662207228683413439582176221829388228052491515249600097356323647373024940938400489400297464798328515148584795561216237493782667484823177673846914940288148399740287735082015229555365932079802723228948608099105420597737980416894790520395427363891332085865171554897512196624765305927236134583811532039845627686056238603881950750612127879839922320041208432760533788462277446427065887940948083679537610478905724844078585761614689881269322055254938736370293906124035031658061753281859491709653753481073591807243187113233866177150335305506552523038205432435637699505103698739413256028886564463506178270166001923849374175355531295550482925408909198987689986476288714614224527099779627984361266503580241313242821073750503346647166628195412888779158255549680107696833583127379469454474199969591731660030739767687615663420442643417195121203713086543641039025849844516387009372516210867705453653933164134446816463743675589854299237732367324981820247197639097024422927741484283275088127458009687959291143466566605689565321560517473797556861993787267570632274043482298579912612253606098191324277839020316144476717834930490313467813424649008726965658551976956768955271769986941510415696544436912633624583612343890967978886533117317996947041332308728326854268367871293658339122704810710854948730543300275966763880975695770296525246088535955030325788493216844079225832241324522319321631407892745325179847898085330351918387491146376317779775391718884255410086690251151544995635332790038997938570427192883711751257096873090385098178222265212646689558819149318786818076624115769989517210385105315277750004981132052139768981555243947577037728955397563890907911754008401345244048908934284980275683283628447166086993797892125473205170329362299762704176481533506458196432578625814884758529081579022330727053475721236242232464553596169487615988090625995277356204855572413302057183555955132855261504314074873186990606188522791801303487849752521931954840306871299409860180402084437856088103301348765279099210400276490508925317095766385841090845959761104297921910631890160631055259143170288242041457360070412025946365362996980685627443116887362572939567633556367467047393975181037734919911064041978453458927952616150650408505798902252391554543246451253990593666413512288200180305638098660775764572294925853339703461889980818534355304368680106442059681243940353485891431349167824535949752017934183614581846620431439716381004385641572730408729104171504640486488682995358968664432331249165414863970369532931229121393110299129015458710834816445194268360670996911782852465544416443846353014659791798476489996260197522833631997654359814693626392197294547671697056436377450619550793512327708352422677756353661632208735356280187955301370514749065549685861003159539136109915407818492679512384195858967596206895562267136739223540358500861727860541630723247873022321386906656888489287040353797768279751046713345978165330684524001494468062016427633683735015801644953577268410971198383749818869416156194348673005273185214738491769264541879428871828354364229969658564895800868453587208019983525753803142033347275847506743106726794049442130112085144067346380432592688487430699844421382918416548836012567959786084654181186588630670855383173166271779842024804976136639864957710040117824672083511330203474198021204865480430247214227530028043402699551326669810739207516048935262457010848289494268923975717684830809616637270941707600472347965984110028652055144554230934410346649429550587820609248769149190565838503292485977375717403096575318811748951550746447639334765130028682010805217332033069037081914921078026167552362495612493831439993464337008726323444147472357581008157742276911126464292580048719610762562850599061450904276079951501186232587805846474504706271604472076147844384913390705049517472009239422686180934845679670718108648032757380944189432033440736890378627057089068809499481739699939274178085312191348270922344040627990686399160486382232629960128428356701356059247448756506769081817300812510987887516072376764901190209813682551039209754148839464949110035104367182602417365679736640287099273947408435382646220105869506125220510303853784008527090664392902336634841124468670875776595999771822961831588381726518964479353845003927293746368146520209780679285686807888909387978518035270087965096867101739528521633269440793407158956642114674364202224428184664448532535992578152980069689980327487803178621027163959485312851947438725684440359518217738481251662229759099527242387032250238849631069031584909528506358397141910544023132228611166401839795410410296712873551085049306720162156975591655276175707295343803427005597657059145617828016269766465538493497110548212744214895656264026783941454942381057300392486903353065320870296369425043888970135357984830501113955649247596009251360493082581008495311017260685698234350503828669655048307932570361319265234390385364775642696591583156360717885005435173461956127155690850989171693588188540837362796742360253842030323820645539481179905389970981375741578810808502949650065399456444998092935154293792819664949132440523048439147005377765121867751706867173081809426530277678395027933136606947488401321489697543711673303823392997418822273382522348230252370047246156346579006277142415249251778537810988673698153128719712788921884357846328506644978793897482112609145715430111425811236793050321384328943184553074088309197955787700782475531177128001046674993166585357137336535674054703019073340507990504558131462393276770992929074665935700852335774795273734422950175443974679771737497842984887925281031700796622839503869001558639663369036928745842524466707488843161463546052570609711593091241481505992214988759845399260607090770784088663758608984153370664298181708368906918260375128861646290869614876030772925122558167753966320921735354560167125722451188691364121965413452194599769420101488624399629408887134507476460025742419731079611670207665385852796096711438298494389987505473724114842846473111324327445518918721413299949361138132894022155433781382425196873669243446733810484685043848381450234246027551304143636937972559121979957479942769595045449554056026011521361140921613970999004253740212287914681213771589591360853170574208903529941133227202221122137540200492862543346790093526913481802982484196834794794136823371755714539126753818607249889115520944127524849776371766561281912328447978030962913750913545996037042037126599543380654522232294683778671094437247491045940657886214254197275958704952389758341324140556118474394097558763093739690439328187155783749397746494837106733824080683529536288560097450467959801496334200579545693852111089353173816347293208740937742170169593420183633044138387483996308471023278951097993683984417651006585415675562932575732542541712130773906294844810533842301092094751327942792855668488379984694335956841616442608299706591935280169622180407397575532910936463977692606277293710900229822909660899770256790890451112922896710837996121863245647646372299228710987869222104364409375271185930769721441130351776716664831073375968336441935983016259276747494695827887868359829198084324302570403809610649500223896497777405549413568532365714171710655000128582872497815999628522304579653827697284213793294681040662117826857810865896666635534602035436937851835515795341313541330015751404046411096498624825327267011663997934328990190190053365418033352734908904819975306633169059113170430584244103280727526094667716123736091432931311246764996422815469291508236375568212205224648724176264953711676316636523264514860597655594078672428967171307291270342998569360511862867950208231756333315547787483168930210283001490228297286190882629930468714247812862000877826631710235163063198546974547769699771627855196224882934588478481358261527691019802079599803293367307448026833492997346098801351451619361656649881113517930545405272147679757528957258450933209357840633984139008473384295486416640839526810252869549801214582873390036444262340264869521612430498659722259483562708058582419117542567019623525811713799407587543819583620378122638260782841089969310996197806587535001748655210404123918024212045411972309917045456016602227074453789600173327997546403880561523977873528216148562967706873635656387665760827891914755643931651462106964238266894252972997330082384069876173690360918282585771782479513778277131264063839763267483795805385401659266587288150553035473864434560299675544015477685910582353223307802390864602319177437118937724952936839474156269279301285798285399331749852430901179263164282837909735353684095638647696987464265490943099559425241562300896569458249242895777009923771062362600362785767631090362024106833103798885195016896340808863694365807959318767136322115188992062338040835188727584469586022990072933489231847014874183899181395236531746300011714084143426457447237144465774870179168898796550758487247244540262790081917448378798125962280369109084590451670302530143035590387142247589764605242877661182469060173844573131517251774328836384385629104664482932754075252620705633698480744944712089969408958725181696085543850541203121761015056473806875446935368377778085337968955699937133405057002541372891904221194534358648942938077867169246290310355095895162696756827174308563464021789813203848034101806459787604400327139674463519083413921324341543815337999522578530042023426717909091758457771628063528866073306780421808696787358001433597224407121368444491743021018078166402636611728848494461665489458171903634535138083453871459165356466755551519614043754014975811496146544260106650332112349869993514425322735860623443599039654096175984418761613432643605126739518066758480218511676636258495886176311565753843208926614655198305198382554033280476170886249421201528504637366535961379920370924854710555124788608363348947239455538020766827759409850029030147678343598362912553090538121447932355831634359265380653771812251876358366299237636604854872194588423619943572193215110930192202532224752672278412793823116618679373969268166671306805283123902244569785811103833019795536857514126699448113385130574061285944214606682760596966728742978634504227755436993515776964306681808600661418277541105716033894390422961833927429382275120121248973686192972049609645488884107341135003069654341021412925016646220807234816166364019107040902511771007881614961112738765190543804586263817615261099829095519468540083650661852979058855438800723766518991699910198944956827473777448573155773479245549461963900383928139937858019945078561283311222641838219479349244163696903626555105578021426410929913827597209935641773301686521811521275521910520472911219559228204534484590883305039282066986651844008095126035507648279974729092719689274260089044602021888167919206704792134581973433500112117159212624877605335282991133485521348989243908043656155255700065155242942088723407345498431903897600899435572397967934505848842163374735658891898432781930520130671969080844769662846994425266142773438323526084051291017257558643996386338611186430750244208122789922933444551413263872818703244565170467850846408502904216345983697308444467369401738923924156177919386866783400171347087328388723009064904808686926656450837756691534887296233426576346400123913119307908922678581920203893422128402617596264824461686685664395419064647721603545377941213459180502694249303322738190698088018938654040967014061922576705024014975786882973830873705793162784863101639092699217755172775358896371811784997992982857466003637518122476606826049236545307934805536524040894122805880845651216133154365420211974760820233423304142528963202853684367497126765027571989110541850094321069830661906325700534489517600698675531063518302757590987369389482359457869929553190421305240878057284427885709061586205296332691144478133915783869570733237090485719045406757125739873563996271964086969293362127852268163167648404157589253945201498557606661150935802634554624928787468595244468309928514602421524214639499826992743900548869574593056363363981753001394891440824837904134841647240105713779840833747435124636808255495518459505059931528882403025070046092639119515675592572726074047019640235811711881690266423150102854454241377953957150909755078790825519908547818331320774671871801327638967155524189517513103892310354392809764186243570073739937280096991623284715343600065287271310732223976865676205729749320275888736692626455318943593285693007897202685485792560417621083217777343942294673970395730590161286245057746889154499685890735888006126205616619056561374711180467328310728928865968737017512418788041027366550268513892781453725021511764150791290957809260787067029744541878929967569341612095460707777990869346457869421286092900119112574394020487068542960774604261462739276701048786623682808941255755638770101255207359567051349701122960630181395616819237137726381167885793255624761055792560735596043435432932076482549556458891104705662775252499137721221826724334378962191390919048531118910588398660645924957062097718469372943575371058867689770104320967696109808284217602732790663281836808540716068574972255438352928262721044702532063453055216362820022315262724455706244700110161800512863228836813578147083696287219682176588694211746122492096523989356048761747194831851242833050242551464276387381136654454864620179638710632071771871386797627974447845180770694648458388637716936457332488869003266793644690866307461238222513403692526208822713414012628787318834341521970595969339822618984689174622033671464888221697298664208220355095808737903488462159965193706133509999607120947545559111386308982502791943450522486624731148017795154343654276652849877585580819011949259206122222574900211221932130552049431743287956146766792312398833369441780966380056203281730034479194499538562060229523027153758833961017507194726608709286804694038488173552998009702908028430937366438981751738064121141246000078717861560984332136182385199978446685284666841156114627812153249168290668503966017911653775790555960400042819631980442589854853019576952555760668736347821643781229235085214646076613504568373640862840680900205795859130978035572323759877815452520582317424743632705923201616180522255491071891916021294560620474487740233737350802520580754118825010330217943806743103183638691115982489834484397350085183179215573686689489225224660032244668761902772941318831893911742951216056119619995496873470317991873487040519156404423385429885779546166784929702666426589045488581881987057237082345095183712895799154673680289393000316621113857221375105599031210530898740940553725846072617305268204486926678906929298521922392258820006734221164171912452566242906209534838471564857359658045666274997717763764998480180860452296037581116812664280419037384358913736865655820071521337830319694958808051172197064063084649101749813367625919200350437842882845308651383666618151133876351433284855879708565535960114634792160848523067721306529900116592493160224329185726648652023774605653662740844203126222918679887027936931670490994032806582998564513679283235267307481036751754584671292291379343250910393897273706258956904955739723801505222552212583655346443333883578363983722851324016640785993227267443740646029775846313871207349574838990474317453773996976868185832625943178056299748071790305546354771823003689806798119210428399537264515097410621175195408273747513728870135430486677522297065719658839208479526896065068002719009865646010910676415007472596652346932129407279692659549903597002111185386720856314075919565666847013085975099198728232964920506486803520116376440028279174032250407486093738042433215703421793760186236669846262212229720282695118710279016148037492389211643103376301989159015773071053931745744120760091501551331000616960726806071447280151491495825658357071293831029029674858528522311281630478156787449604645920846737819834067845808453183298300946460265648134100178086337394266126120695222320094350218372018521909739459315872199444012961472923772507173831807645539929992490971754676766806651989207733885855433167990846971733921749801114197811053547752351931366949752586167529369543896060888993987901372648586613764437442922404464543270230752172524429765966288801570684385956071244028246013178955880693727259407575394609386761337706391599143013820823516158702948173234195767084267650844874110268726743113965022126949733486178218064458472317994989469215891171321016899998960726869327625141663363067577540386264881150471116975441313445452029258024124095381814995119866781697701448711952490926377629278240530060678893880846874513563406868677043177306079692228685202433442614885373147725751507092991566403201288053708028390428126439034260820752234888915173908935721813991172639497730206424541649251989007751615461991336880864496528176911292341358547003016186792130752748213022061575039290933706259157413831174714854054593603861733153782824389916368285022752485834259292550449099030975743317810676062909326683341545591383937095918678882560174584469350515509431176401837765173143541915590202006441819610009244800975504168027071191568741047820146610078148160025291433825012272007809903993036524856198573614374367641936078783503783246059224021391973788730314574911090334490376586618734380461412764164834907315302817889980641779419860380974820167476693496251755486476564111254066712453964975508804098222485261007203550154323596239179120567997222662438570195267583411153436440355389301154421401858417856766906490403270845029403757455677610371764485452145221264810350155717637757279760985730546233685932484321459906398463221468085373704235342134360054421659070546317861074150718163546332070167087167769536683539270790439739089395217729064372898973279103248205049036403296651217838562635997482191839261473798984275457063540878969901122420338860260630628226921504669717812960051535116068854852853460511663956738405588137659584689859773137659669010292951829180884201981978615417792049527603097113005789743928454741095630940821123860666315716661114034594918805242408492668768155053504381524958948196823295056486622169160027592100018048967925912938532407819666219087829047357703897355063959696755847083276032129063357800926912721938416348349347831146611187979909326018180257264242044835823661835427743657379460331151365413947048113935895063271672129445232463352220485381730019968660831435990020704266348343129161710019670615859722485477452244694197529906414252916227917595474650699507061662018303867169340427849807751277967345151356994061937845180430176802572376290773871692430260608237879488364044993530256374584166282477063947070445980860760955346869016932851192355136384447833114738001809325200331522884329797966218694298802634283097468539076292575004961973586925541460313248067096358627279289823535343790934169581642359815065316341118734097623070675036252374675147358890909036478910913412754559210338815712357858721212532955255221326061955592973910645448855852626560104734961889266912071467020568275694206282832294149153067903120329714332673889082272084545922117066536992028279567410255856094534101533200932012318529376869256411138072087752452453028807009308193407530463439701116354601708453327387278749722052695086433283860207404081771139322399902683369916416574505077141938993827064058666361189319467656629654950276488980702729614766776875104002171757664572361846632706558450155764245108529775269145964937607690794300309617818647067525828450746033712426255809574732189234944225170640424530731936860953628443340038207535855166663618556858373534649302831746097299132579714508276116538632196028406642398540768335142997342146582052583460000283370858135262234010163161718219514427660713872578085593077550067899218989136242041327759028429246073678243876329596373610584357089878612390109368884069653952779871323495250563430138431705639455146063797417873947040665235603731867399573683935654657014523921448524082941480578311856421448589814385057333588825703313366468226478759282200178223293313321073599361477910451664404663296266827562785323530628320458234850133998621842903810631363501538506645869105453907527137887499339746628728357873007184683648883744238930027757228999478911486741061540345481415432118090726004142554279010874620909974886211904126201701161426207359235475278834666676555223449452596773486980672342356362937212675809002656725309119136409205578614868179703365902101500710585939455416282862402278367481479656989560725434597753481551354249218223655690387362246256392749627828152314239295006961575561473657655399217337670809371449565950067112142790347262992279880696681343437071491868389074934075073256725186089159828628609168607641536309387636149793480194078768546856460281427918004685002026655420849579482954045065005323744852248866510978243842954567904286349050415841539673330177445162917367569534014671638280128642439661278940207915645919042833640486048661591540235431753253795044003605810462331449973364634182176345149823120022064364129100045153421001738306502221953634458978253136967988226735411892967712489680466849473309434068652349724779052719838028188953017689768568670442732185694876339378719739057842813028271686326475709862680793606507683438213424876244044456125465127410105369929919862346355747711390537029731151270356498311282584861430558925476848812244563277281799392087243690198458688769962276657741954746970181834273846944627364619267229777131423933271379294787077941449081383203619003485500297744079207491089953846678385904174980982912240794210817909994073046013973008072726828261044622474066505068209212691531766461520678089074966936829875988038527011272266141393984663538138862383300475526569454212340095823027095516633973428177816522381667897128247900750806096830858359823043346985687630087891978940982797654648439366530248165032098222750980748473753389754306961447073687143287649940329439963032428637068746039081922956797310432416049390242629772873713792379533823596911652041599555930037042762585873219396406850891752850081629578647813491921829955266605346927942125919616788325459164143456549466731675753298172495787963690718566984990284584530984667315266594204469500943546756412485521866827700438983134577088561649241442847608200231955399890461061584887431481110358824220361790976950499866597987105016006339059136002399172542629317344074337735274968836733570772025487523034079240397902848062579623892847414543489140304984297034782035399221518705388297998755843996814549766496353457011785747102678904845205119633869966102400850641940042814627985465754076574702306990800276250472271200895365996525197501529368568091503231136970325114348279839777996905965795140701965417110651785824506587183125942421931669224368185656314644698035323236300881411624436911181309114643959728983746084311503630667062745765318561646251928396166910428989163258610417344212385778143194881392402293755909542355117324976167811500097685846442677631205933317294279229610022851882524369811185367535142733643925434481052106035633549776777195521040091754355525416934018532401037236515076541021761046623793976500832934865355623697282721118467008246718901225875748589264242702338013241336723876247736226553107571544434383438049462854547859220023884571725994546997857231689768531673209646728098116764600929082650586192039557220421783996624032493883743175492175396846584047945826326689577975003566911645008447529866536958423584818439509358672890619484914047981039201033857230497575222651681544831720254657677673889466160912117221904669553153786530631678629284964559896278668739445151605469901489438004836346704601077249715266818301551468891682294413998085923987906853843499116895631974097159986326144908515028238106617239887132724375031154172223837042345131531487202547514092040698543912240103966196477221115276398496054383808753457604642258251874443341139694002392485645913930788573819516207253994150405335977807349631779245727917781571961976216415566842223384034533666040770531527566459205803276118598734200528489038479724226535407065125856677741256399615116527193032728928256219285249993371043922289594477958259713409327461695586693334983651543442566987552042744083366207975068503295448815422663307235567055967976294778607058953576349380897499738222222454772794747321053948524132546442545874866325775850163160387796127956079279599186864877746660421164880288954370683547754764434990728085660009696302292769239015973323528627133561336138964577447121946580017390418174045104537796844225687854355536399456842342998897736366500116791442232759857314732586911403130051110962145894216998776243074333169356703624488620187342775058164658569503573653027440980354335394357614172070171460460810747758470684475454016689205147250766481909039553995610165027929884313358405751759766429868012189691964477254501737879265135009636806023112564815640278546936462063317906785275084495399294331690801539124247524442690859782802137336526645901772268894110322485222547108450518039725820434308277362977894133370181116031899319678197070639899402914770695855824747720502266018829583846987747568366817029482881520134730051451323983244601414278749254958184635996237161991784223138112673931280062342801598575776756151098548241780322751206396201113596487034910662297241464882625036382723510749055990282488727006615957284281153900138277362821074452860016427072094516337256443244070473856618722130027289173925395033323046131244812093201785461978875403755304919584861451335257509795896098501432052511397155551439275436094012872999527961414290310363264453690402774251115295178464962098535855710784814143187494376619562489671399872566626486790552990551802564038040093600992337968375876232776237528558770853631147510806052523780442456520815844073235723227049573479065097861888937321069448767688561392155785748644758708626506458660729539763211236964253712294961883237051227014015444474975995598008295943950796689344070697565318001708495490723546260913035048788751488109345925058208091033801788148332966312307574559096602875519293866731464904838893209434754226842802613160288647421014549789120849192467177131777339864927670240169974785505960987471223268068834136053481394347287538211189248892074208455299734774271218113085377824779684263263060625321485995313618940968475700407984822848839632764850221028267971268102350288673808419121742800716662187684755045364459196026614667240408244405433806859516979373517949599072117588892359260752230024777161541253290739888024775524580862171375168104890040695288842913704993383692712710362892488469999608763132331582999560827323956738116662246564274354293348998963355559643407675040494125877923093168823493757388440523602336014886975895263658133750573971170106518517330942602341525240281468208733935568314211225610853582792809208166734739192934262074622718964978667636494332076020766024903481664855185095393811009630773335294168020748542869846518199304507582924703535919291538436568686596432599130306811318007877429735918794769668409095693476059561501987865936536968922880492584262099638361681944052894674956096117762903528570362630661805009775230440722152558730409928639952332260959334674192888909748524139708863914656091657931169435745916657255037968253635732519524261316153893396357846855724900711282324579192402701534499211553414365833866426409772217065398744537934002888313141763881766270160167862529161502723595725280612424175339362390885358714955050389476751679748140782816851299065276387458067330338744432591232365575544563481768120022230525954369438857933455314064951017321291915326072572679794199228858427220466647202787913858597638634653048799835386534972039819672565706661158719197139512906275733958339079526682575342821211344030034511543216557804501335954603582835802417570088253882184593765164967905620088523875750999675825176089643152492988252672136281911712769566870948035638662321255743437827138210430243123311036014188179193676206382500882990875578826611334273894169531578697449830988665491085690656588329768339329946196825827704414602932225175163270235677492429901351023481214026821265295423021799954024098724560445743865890890985015236035767299680826563160910056367334520244937324370258236110736537459056194695787786129496493175686945839511720139173573100304466427461895868788988884696029920236051364074048949761218128408037549716268012359977504248403006056925104915386224505135891062194698757771810857817293202840559158886950526568030807958217134937023004318846308995678501057068776514411303698391847619510019680481580990948151179819230125586720314733437409690728708983594218818948682669125205066629570974963881316216209519709174264446969480646061023978256130330878325940614252530180277952616222887558490696794027656450192224255890729809468621300707079710088673489597018784371443427124896082018655264718693133172153166480698605821526371439572092746219536430155135529245273436206255026906161857357246506558322785398455353936424520133576696728875524543300117954049335098701822687124735174210200943430922233656631127290016044125447301099804109235171251304890772987077377306459550032006527330970247342593874988120627746650771467562793921691279900522510332598074454265607689245531778128283977088994439932821265342312083312502286131514894354330830495215044187385982755285661184450057474483658485063278730882678096722684950918150543310217634676171842382713309434254840157335026813314731299172337433774350730421426752176008887281795584928114629174811679677898872536832158798825866172011692869539000700237184457851953687443230418271162872390478862406083737577471899888996306895069270980883625306109640427023427631039101749414630033981548037328035504605664631461505955774697151409656406106271054044875132325080844424023471771681823734315900357279000056209328921600301685202007904337844682677204804716189722790868502913702802720172520541753222062975780363124533415429205518244827378940155693947694163379017635731016982937043188258254808871129239147249086771147787066431224586081605090617551849125176692455325139992379096771383193633554157225806710350487583323083575948635401408141418279527431675955421029953884846915670966576204122152513105771064284987027528558462679652361608192523569697403616030987173533589570855642106799512624328194276939835899050686414439058229356972775027640764586090734264833497557818538322057563855604233691442903819390355631444118816172024193342555988645372306341418005164006840986309283689264683969206039960816972661510814440016841865306679568683887391121518143648040093107591350650022642957654324930515628058027232161135673070917870052033196448056436250011994825256004625103398547510445108633282430956694669542363793380374725140326003140130448729631612847934786058024364366025250596011915987537146333103443699445965349104822744639881324701253976031681795948826457179706688663047705341409606388716775627263490143524134363983520734598645411298612057813265098323678762721559693336543200488157395078599278447298024681553000067832726085687669955436630971054175701377376303539088894697522801059956345692688567387476757301528827466983372373409301813111100631416468388450450070128430872456511878587503439710148310780817324304571650758030238632740221961800327752401447445384082232651444687882294419439712982118871067823635452525836132084809408910830127819655391148883263471795233155623500865841821935252342466878770712664483908335296529322979287036008794482983939209403700107793820467124450259589568359819157602277542421309185747841817087242351157113487861504372960294901743168249093881637856059955670457778950569081894566343927464208675760058191618216769882658514745578715881912919879855243120513097501728576262009906751415938260961628662426486613297809100131879647942417679756132632385211177503345056349643664698320056437494729535114792207547830654689725975819950826832526023621453335146374501973211823649738350552060465660764000654107541519839956728537002929605771057011498122111515747966904280886163729739763807683574519638332904479115229850940219207914768470590081503419815223614168979656151437845349745471521388946234875443348946858184159726926337551749084315575043768044305724349853515598492864964584270171516098175297384367325238193738262243231616135779619214390620438539241948453927753172204255409352535431210546937174656791658836214255707667923030493512772414109552618834570813544059942168356258804195883313269715969080171947461701634080272077866488887305984067433683777469509465526844499497542334951273152212776662326202286487280089648921558220873432010127744085351475068234006164095407427987652525115501679277353657794666803577860183266878846493337950263551654254195203194360566649841437579137574169840132619022908667829006628522027356265774828859595007989433240593015898177389639543899358776188702964661891642277767346731165232755991336625957483001043869748305580766976664656480595899024616902478579358688527808502026501298244340175575739971639500411935873708672931352982605792029375109441582187887725850094383905749055936328250860076328943849667536985360038554042303936950639986032013713254545889728521623009860934700000769382222740842730115098682932221648086686330445345571705434594729703580762620722414643317159876744193571713278470017340810627856149613454879854070550465623005385031796458907019050194847178057632470134358764812761720265766184852177633829088727105458249008553555339700529536934400989256872992819094856422494148951673334541258359713764293458529406941900323612056238387058361313138916931042964724840248707106805300554718234157235634208628641721265373169437389328844322966179074717225412941463267884542267230187685245280435775269853076943738955507669243801009228042762944907714984252413521017565328055439550937589041725337986335493707291091415204199987540007020124224993342381934753488727454295404812336589752329773903140953847209298310586891063838925515359683459939533466884619620890752579006905217623325422595373418925855551486248591651873295323957465767480907677463885725787579268760865914734924275970972767106124954503971326051404055210865016773049501178187784374421243052408190811735472711134177197671264893578702963082808892512576320222516451439807995846108202047118427748599794221521554742020189173739476393414749990015371294608719347462855557728613322474484204078801961405169810363434669298375444509350883849873474586423518450741941910169446478927416662665105956141796741699107049242377274069040057898902247103292795872105302584933685847719068551969779019940995934601598716330588370232289404776199656046102643627767727774442861382290482366553540791153479836236160367394538555186107421341296688063751006401045313720843388896970969495524167873045959958260146166945878618421794324592161059316334337810255988626991086830485896658078959166352605810663607696546595188596754566466152730134825980341210416432982032038293273034672359144368024656631116827488414792081791695329765851026386096624256276185232318085120706569033943620082448569788181847855190333743872058994804968203281995600176329344790486881746387297318503031878190097721272072917979725744566965019923029108366256626983320951846001597098808787277222028441526341017198425886381576481585615674245951129517876079769874628614263815323880575730461281107412995018073019199112785609020443446726748165004530749791740434893440652319763108026248922115902424298911914709754884264420942887352664519438908236915615720766896917759316511181834756102840443727898415827552018539068752759073990449771043517853128286496860108730734043270947599717482324928652939333555729156214775187818336338439335429118585803101447884397145841741651334771316445950515487943736351789685413027750855472406770623634929932403912556702950925334231700746582286254290772132318182955918916155283319731915048955504286317999236073158710122503586539056147891408997724286207105573478772460790222232381931269653402393938892570694199345468100269433002677187362919660251142145732111445494891076548183926012823712140966927329050391561733164502045174855982264428738692673749686882778584820151074754533052434552724882872284149116720650187304171621206547052461403441651032705700176895306417884771307518323193594845897118898407125619702498820843249063118379221703190897774792942868838228139685058897260250095806972245303319705805148918081064217231420408902452626050506705199442815639024034713703011575576026171160783466760154436672756277032693256263789626954721471129379973978243135578378949742905890309130578192290841190607993890595131616552970520524881491968403598329869627317771540358477148234680953995458849037145910033226878229285600529985448483995469159573555919475417772021448497210733465778173761066965778330959061585145272395542157741018004082042153596637130082606284351584711829572312253841557387023736130131594030305575681814801293660278362718328395443428158779331299921980950468425303490548255170567623791261634102772513769883844940000505739845417923376582847686178201115269820508111022690062657248939424502272457842302416454776165969178866812960371125079186572789638068811825442326940102971777318272032765566524729311216533441213097890406941519423901459209386821166080465568812803121942309732844007625982225937837300416440613747254152390442356415171925038607843018730178165553125784267414772873801906666131814817086906755702314096411708597873295702621288654297945414677404755809790001809133314633318447467774702059787624435997006255883264922156301451647964486465527522517512685046092693912006634637164086778052220916909919953385323066660632230690047414218369423623835776315990119059341545032787153385683030441711767015858766591257940045874627914075010946557902155911394279491161042091510816824840755014416815516636196975365821745165290643770476600260013857931488304019405125284233556794803630082847646609766860019576481846428280248048872146903641404762563809965447928147844383426476530662981504105444113494188907472693925933928317334561957595648466544524100906260907364282006846286400654778678233781554200217644784303926290535945056771125350714062016354316133158950282484313078957563963420491744880995327100125819873698159849602835236765364643372787900456994294701201244964083629332200352533390983179033359305988715825530642233745464683002088957764847418428721740948243036977390221876206068663668048868007595847218514730072831643329756167767693347229185898319432024230942004009015443039277468182423844164481696516974054020517625484484035425843810042432528373644099399397632251118932778043693244109040032311197244714684515391889724048146807942580887728185999711442208571836109752939926005251487894602650303462041841952045640439356664700838058518532604679222728950794367032010284641054078709366440240043526254792856774672435031727117176673408395407845411931158892814017989084651607820248031038452945502685944936316456699536694972300585580082217362825136479739635368454026242954557895950685731450748097303328941100966839809551182838651729231715215691660746870094350884009130929298806101539554932408460119506807701604375324544091373716275431713799457087998181736009749546801887847829318537643416290211295351646190490043998460020101959377679331938602265728870088343960684102111749034938224181846214927264165456263449938318434947934031886826289943175696462547235334210358557797234325722195375435834020464402942297437133747546954712859764673777349935557804459243007519455254740479025197242582157285936427412469378756755903667703174794570879579738588481394200998881025120983262150568654199864364298962957806296186700774594416418861010676669740313476817970275694367767129887524847747128255617871661059914476879119634817959759031202096355328877816696232647589632997913774954261319066176429145416355922427194591000797254468979342324197864758416748835013967120867681719332415862144983674950901048860831197686613294467265438320027055213280018257458244184529775492316080436865020342792647075627267234919282719133577045731431196599837882430089498353219849328583565766565843597127468909532390517371576429738221851115949395128167825551640682731391509609229955022815788952158350885879844637972034568215015041112477331104792109603303150797206366609302963616472747448031176856667862500878025554589715147706074807742175128462225935302005465212038223430661882958099493739936650160192186687655740337748542799100317393840168466874668296265710636126049247522999824232651278212348236291772155490158329362232179968681748314964517338497759068187531058670764855010374607685508984113273091257530117089363410133701803195963916443045658244105766511469497367753560216014008931376105766279428074285529134924070462379990334414585050801975955231898232890228233508816209552628738912322776167191792426987636594005948378121500561408279661167147416133897075800331134088447151875931548825413945615978804094088370782942964187734770511902545808486073697288452287577996617805879547712761667676184096039929254846750093047172459711193711324829990629973331949765986580327330513809326553030445038383204453733605452704656945489866246766674435783944104094469345336879130249764073609523272516885215683640787579335374949148309322682821712999975836616206615490045571800527794916740957569561099653869986258955458180246774023073890140013814304516811379583241640522182358241563066784113801553990173524448537618104755843470071909058649942842519082845877130949702311625091660458986348365873284391368390968921923782065878476460651753362727641225575935205569194388178465064564280722192139394519535652794414150997345286550274758442405910472873652430646733346059410005875438298094899370420815612142122491839899068945726988836533431209672524756501346128478525107696221527142155559726109724405363722921420712959768670562522634604109806586018356963307475543958604914911676259653309728589308885909575424277798318343088004011482683355214524529462124500449242651153441914363728789530359484108794628107447041993710458755012988567741575390213711517833674685125562982061108135307128060966810137008024183652329069278966210260885429898069274032868891190382946673879167994804164574010367017459616451724503652123377965959634514951074169141858132659570751961382555930158700414449389622514927739752205089567948536218130888263917744960041680467516491370532069874514889401577217060374078573271305675973277430554351378820403998644043622986507696995833556891866703444716633250494740206028324021680771279777500882020465507816387657858110383657889517077893134045907453948652414036892488822287916421788412151104330924038449385383605505139429787715851538831902960009633248144250520375859669986866812489607608039571234286218734028764138909045595566488091113463936301878384583327993331804001627223655964552818444410514412848955691612683526329550160341146935744722271807563592276615834837810196206526202312465660071727049757646443124056477297169601326805129923687558790928247252405108457784855854192912315027339517735345841022052562654872819226788722830627286019929509618060134455824431266340321369005232493786488698039730972750307100782485105411740957016798110698120077426149754986855457760692701533588296332139632264252214298441481505739443942470374200958543997233914694596154344332846461153661854628600607611387038455297762098572735247675569762969477700094980401643185648610861067888029462113790642411233548257210651291675194459273365822922211297695973659377696328644722395740662110292773166309544620681763446654728903556027913724691435596971575599148413882457535715240288744196749832595955289995255828274555336523614925806970156835873689162985369006515132582299095649225362995962249672557867784048113267744486497858155957486587358156890955087370443863408120825079107725141802203106360714921255478722523107613170212483302731313671221773957738508984584020413387604627850649885433792873466743546627359626923713474272536852479730811221911446544985369474103126694131072046095528744257063950603077611059443938772588729595142278863895247896841083070929001288774840126716352822248053961894419962512288602397663091844256122498380553174791627897945676421014525265959567509504489352910360817384221264709364899890317640480326482718246656883007287289875127720741444449380188318433185711278416839163139681024409713827383842983774954139781045581410277156147422616168102488716785698679744152750324047146006794604353637396536235457545722777207408964798798232187911238710980871525067327025096932480767183419195940455177675289442790845997298534532743328306908640464137471223371143725598633665941722995656069102943440439230561195189842614864312362989309319226980212732879248561537573103701912106367099570816769119410556143300007229668394876160906044656383091874639293155765291313353518688724616560796595803674853390164810427440221180257243557008450881660423314885645478431718984606653939992605381047896630709678938537255185029143594401075058550189064920507874224574284950480476459816444583956876498182806902571126449597700824048604000891944569117466629329775001031693899761461131055461029691601719144603324920136892801138885226263732637677696241889663558263978594228206116106439211900120323244320695048006451764733030613767675994065406981102762436091211409088400273634528259357437636613360421166300436542403226690304208048742950910798527295376217142864485823806382858900875206445098477522176353335648357087750328196287938370535398636891329443661741213471033409960515651333860630449311171406869072651516772340118693652029305760914317723235542844634339893506433300524194719325995124798038566972387179177704782945034119191009106569848345425025214694449602671401197753234158283909621091737022561120527661785477827729868726099146982929591276199623020048536907375100620603772143561663261714106240353541218017787938989085941506293884803271995671593801579098185492114763705425743550648560126604829266948628823939848118375508495068399290886444696955721935619135957675597593974114043252553834839581962828100837443144240083200510264578733157366293843747583996420251845989720809782126726886965288548865118215853413837794624419578956684643733357136505353142015866895351386524948612021218594007890775757782217430782150715474269559098488265649515800948978428916032563170549533608294968351726318594805464835241858041124148836594472776584670043172338772161594788916857363410304047263871382825355427418092008389278448336596869380815337563130758733818151133968475362027243625928003874509820293364105129246517728015603121261253102047347819880985478456782881292692159764062266929629536723396920525936479100963472316735173616780026959910970893920784016441518708350356762131370868474084971649035297040242739934465910867622834037674181651075638474159987886527517110954004970125653495028474388143777139291200323745802404014221772597278377689885666800640370050940845497432574351310695451156310273591403566389641767677777950394480649508442064352057814770989809709186329349344641741089784543839523970975624633890778120184385279884934603232205087322819313895008735898918446220605317369548551963045100035662824589968709089386333972740873440912717586760311636641569998920251013908058465828837372579375486179742516836113343942645541405991022575395615810935135920746023589381354765981183415530102477138453868589627032515842118922555241031955566988525634200494556074238747430031430584957235897830680462038955134113788526226786050771022721345592188448199408326682540140779150309323133328633316517889895911623236352218404223285352268142890035576514335603863808548202289141761858881869793923696189834296084567688339429060643967934353218369622989292852307485694747408754600023386818038898703671042937712187558873224706153839281843597119921279823527363781184417940793468940326032698169938237072265912154194249174814641691778848629915407130741681946137851117526777167016554589086190232961165526924047702488375688617401900002005939477834746975372615023886089595020714807084806054233263712252579237628196295079359898862068236661760409137738126232940657575396166393580745622510935888397546775618424316882412522659271385831673064375174784359697377116276200551226411493451849539490944916289073618350071883986977067836283447675355616107792458824205027760269784271359589222830217864339401343193338464906197276028193315508380864743337155837506883138349850453949090915161803001954819834124346180569181491285723433199463726995714614799868782006018111706806039118128867948531792426519798413345524240198357298474893559626891933158361686964034828359902998917915011176968698721774626833136617339547333351078322560110466830870914034668961878069600384900433128425212287058416162932196720869124945417306690114796331711706422274720244380782263105253107650467107554004473555577527967510118827747777822733268272877988184174665371980559404785711407389594559409542200096330001265313199975755123276163223110962895274931836968895870065514698136896600054425564657393937980053417445880749114603460944101206812209567218493684437080901795288912010523831881878728447434286213058957301827772625813773441720370192272297291952992045586493099135152986941098900359553359089822078358481372889465876027218521783662429595399861637675335997379641267596048650406114297986533072049454181895961552619479339029471491107955395202109913655447189043621661951908614003591189225376667618637996641615849362628602483588645129588845343240594911056547722952105339616724812741867291564432513357090121737676113956918663496849064382682020233268656520296344621772395186095106069386310122810965127733213767107255928177031389634988951485619772544308468659306682433510562159753125515094705671981361651261345498795553772480442581911486900963344894918865693305197737080377366044502812001268927450556160884874000263815491856577593783282773750311292544851392726025791368929530152948547177634997621778525055199752477415089797901159311013442112090416628280468875924190052067200423549156263882605427185556463957448627867727655268060905064761747155568133378627646007078363968535092121339635057996530052570415658674972672049859819050666755366471175949788610275581697757022037254967479780288889571410936564080125842549914209690472984932452690831839539103219860175750590350581878731098872355755527530942477222363309179905984735832167566648066477852431824966415427313888480425652478451374947467744377947723778526407487475140025364444269565622844217883990960046770992087404053665491199514022941719258513129042208121550260173748850488245417512807298084765926633270535075833539846021995504913098508784386771540610558777792873964032691487318485183813022947100032496645314578982882837830178392208451317553256834101934979418239367144074664771217328594295063353689088479170624056977708912862180787108557558521643970193847530790514743931801984101934212814643824595020911885438311399390606297024791390992558442807523092051002525496226135126867023677509673526173207396164349145699839611200004727367176022096355205958981402962931575631831787858742936234293829681399458031791963768749491618484952685971720786651367736589879775876285572412845158041753250160159152229119824124449264385048327127519773463571037917178725255118386890551959946199799124247215237252920013752767838416122473748503045058031325885392706803524321695011994257490673397063567256957075866538242585421387379805688538865621732670927587017912459530691551264671590542734845301276535204549239133097743011677132426208688422098665929583360534690655442420522289041855399241657729789576475279901213812680846495996202120915587554064635830390242514441532840944441627415673304109898723142925948142801227343484379329866062238306688065053923927161917552580932927665250147358397819319797030752258529316393520296982809348953390306924594142067850568893175932817219583171873516697645621870875496024859108032010990394955536886281919833971103621480153824344149744906845731845399314688607802215070554783751767331601654862660360118228322744377612631144308986120518112417114372572146781180171912788019500888297705698348908247057859211970684883768038920702661756808467209194449864879463962676078072796590021944625744486437808040057539847896090792328771093086870150709375762948056045758994103945993313776429288248911823335086539239110375456184484024880845988108015767276448160111028989341260481431632761326630486131522592078913241659419532582801514483156046724686647055451677088982393435190025789537694090455782177314745493408183716954976626560131870053014482812460260474923050777675055340864880016639884469759227240769899562630291055787719854654706496302087009125076385868611521665637302300173386282836912514472352809865144574133357526517222974245757872953465775069961282470944470174677980348642434947744404791414265267361947961776512248961891932328581031702328799888373978990641893209604511197419129054805186210248457480029823609887312686059544638104486722717967636550152190097500344861665404249234831888165588223035291575369544389090279766663419949592649388279330694837842886960029629078197592119304562586048916456793443919454133099560030474918317924903261290941225431924705954716841781940743203287553037042193814947606915931114302274020636438189880297786540776131334333535476629222309744971165090969075490757432256363664675779729499661508349064718081285611005254009855062991541929167156110358494491896228224776901803563232462858531539735541444794557253490805876121284721819232631263529147053692592921942853122805461020274585151931495903790040904534538258886971723455410926915428961622480823897471525067890468917803868821440438574077646454667270678677312775794608061026403826546413570302146614244204711028336495945578743856560297268053833655654387711573375081380519886989599374964760191174328594048312248883666082320897578102339041876193652957666502829064420994389031602967683022527589474249981791511402431377229297457741142632456642815098349367127288700585597934017376266350682292229318494891841924853456201665267982041269118548701304770938420621526999850316316711480886586039866740022921852733552434843077052261227945103345366401391466214421938938185923358485164626912982831138243218536932787724646805368268359555562655215395585007927755635476992916119063303701350107473622825873100433396724040401646357494930381409543506484880482320276495062764429696146915622992541281511062193479190708342554021205592036884228659469294759806729708992449014314586945357445347919874387178259058672665227556872319476364945152980629443906046823563916169173588925343386667634691323243950986354204298288353880379948967832904796737473093920028453548246935995469913215245468120368433879577466510815633472227170425433792099918754944321108921189566882867271973526426963119889491307377333084358220323507680254981794245355205269173325391304686891746981444231863181989722722659047915074604576559004097692918977954683730579663234886598444573329421369205754848813092203820317486257882797452624987366286514989049055949700480057869836146487942272351797581364628416870462109437662485907322513110291419042717422753280758025739375175890734881841536381219489669037210719601306261132995297073622781015299191094972269903873231557418108638666989261090526459884223113165295968485907743344442460840715280228869996878970436294928808540657165603774229435660872279902980657071294486255489999674028073689139380935808727414087175758032928569777370061016328068013638790064854059883484975169181786824087376808770011845721833313023367091649236582563851792829216144948183732185200571275960344947745413009939514919222088445257367800124177151720720118549831103222955602941916099936987095834687393291278482751282060622007139891653432349332785427345416683311565195198476897744252498663399934900231748968877872364096040163269654694791854136641589623158981517227920764582888023319349637146910016572236885648034307967615657538113392752709903509944389802781101259740290349312674062731098238155141550627968408385747976691860366899672642631597544584847152610487819675727395134528726844596274779290177531844215955868260420189921001100536623456390261028905495391944103749257101104890164870098831474507920331086071558622506711557006054096880586014008062622456244537281696252428012552395455566604270438529047685493741701459884041661982125399525246065969070994596457272442409444882857257455946905526651649468733699751776701289698492454021428787231104561913214786917000129938824632774401044526931703373041064594432662483209201017417753136357023778718627747672243268980244740215637917601525830487660571520731163657297695378687168254518167285799834028947024333719040790223516353534037986185067695203594220299058439179582118553260596976212815747053121806532854226969553572053342676943002899808030933346090142072352340562874072133050875488793876932816328604711452022715937283543033567079811369048093200519235659100437529991480574229234993711960773163287835291237733311275930158629873552404728437575283406857694758515175511925150116368734522780993511410742089728242057565275263884421379739794698601967320971108792708820392991582866828036902011932616762745213759412843061830377496863842451199054497147149075981749712729364894609318608604116159441935392656295431171168654474341806551692108728540245892325357722332993985167620186333338314857718023248650648627172694572467381895370851268731123892703422230316814481629409774557790281014841103679693781078719354878269863898608114746729225637565028864236765423167025154128081944085308105668164745913371690388249137526746437383617722496030607098534889757253709871313404232249483879293660197500784779954889239344607009591004283424358876781300161483471475430949512829527540364704559744509623184198872399539036066102560541004386760804869217196646001126710377635945375181524572705509641147610974373205404361957316235195252057312538541530469259053873767789289461209598518481312589411149507871613589086137470282891193626207726086791220292152648771497208325033374860133468248009595699233034301857862089081975911748928673120072736024494450458492501048047808394216051753180908771005439594731760702282165641286943311723958050248252887673111162361883649187200323299293555667382040268996192976574517154269984623149362537108123355865832070855172508976885071314708965381003016542861465514573137906619480196886327908192313406788737939339486291557827368662258125590356466032617399293149760286001407911169340950372046598704264417682741607044877462894117823823624290899311318333173167430896630409579855541756051863343115763155532516129222365730994462655960044725601686382176203318514160319136822116823729164942221296782884781176512957181322927120780905373420165158900370439120581952024003697620096687598403201571600585183163722395581850052957659682916069404747943680764991116364343274775248505945621021787045672573664851712037069637735894950059006939559533940417183026743874885530586724575740467635798314915993972727373783765179903867438549997601357747530651096153260337371423358759045895535055720946081139782152421702649035421813048390033168371213922540760076988853685851835578561149634919778385896207115213422590625793575808954566934764432300330100777489510850527280178860453585745084317452347073557664124426353406343992318813967693334659886784289009927826646010197336329825191701083523652090885660516753890100114271010596003821396289799353511353165483982577490246017682904218222934690802966956161370038496417889278522839818315148267189085158177627198863186384027831253779691768838024514363893588932668904986967147835955103525070872743888809481387315057998999074597012447200501013394926301149248959339467069200972277240352441694907222866408418280405800925446200277658104746416089557219403235017879426510643106379505573071486792176423060851872888268425703184830918980321161804931928231069318510905332019738639066739545205504505938993785757318417601547353383926610327331664608027411451027977464720681606389300750278373979160378340143183267398830822354763076211187010940375714963253877265011106063293542265970845025204815246257463565021117991141394770932968276862547711326646263755229555457113155131740915834608867142510639884263328422281040431249642332688280485053060426390436991831556010991644056467859894799856397276654815024538907556335152513503450968596987020401346575942509698605150831689519229271085260793453834202129210107453333573301822346205228954148967095345166920553581252169948533012146975072265382849169255023350865782348652660389154599218165923042477886032217088561507664032154366561022213035159360312583686952261840493084529663240130471534678373238020664928082919061430675801579700162008258764078120525771339830613324005749065016024247040520838851863595711619994795483419162666175501003166753230370764581244252752307390238966881454064517906589541565912844382483234690584521576673398095676024398199957965667300725880796567788898687918733784605387576270634459389262317769800182830750988028345570659389888645082861152450614524544038444961165189334528924616192175795702337695350265551046158869445032515483549904013441650865965228704857935692320962938963143420409633081826529811925726136510971913166548825531622936304496398816584354545060278469518994885376265061325502523890249677482290729007943017029727602897500046240391736149219704400099469653759353083182041568552319976528425824911775982021278228290299135300642690609326376603060298787780628938141058140942482807698831282854547922819488510381996195118346555348526263323957466098399539543914427308669408106864048148010296918219164434319780367867551778560015984581091431431645623965456765122393103651842322711670410196868554848209512293332356590284898477274010179071513393733422577080688405423881340033785503480751998232968988896136576866687297423980599336833349649904182656525748805673403276399983279527469766183197864468046712538731422357606684444746193236906750973123824300545749311379163328778815814654297791986821710328106564967038098565686211773111687343597709427795267499022097829799643288319575638548086303649733160012727952049015795825623076037744185957696604638622359599832499108726407211466259294622101839695717338057655382580425825094174866545771896852153176653978191089633356808614748530349843133873523914603429431102328340424449114576807517700051540389345495656400926237325898494414952457665900745905598282633772713782822783058371137823685197526494802267159934523327048512173709490946393032049602834527175634121428752359612649208323732731994874266895065143224991054923132981803250922781897725238315582440380035590510601097121526976524686681754180003890752963908829422074190667556802179996389080681474039126311208568361763729265720957588177722469848985079423018440487293119384761188757750651742233939517511069598672226211118162027310597766945716179894110944552688841711503324104775822963545823952618906712852427697595448901421429636024671586589808142829672639929422959072272171362236532209349085254547217129225536280948167280159644233341662866651065532670614173175949926752371752450888538799906978801696239321358594548510801973761975865107902766765238094889540416674203927157057851551972909938417588771882909790685650701568725839258926339958434320687404509348590983755213467846807978681427574418008307381261998693513868970775197554278167477829588361551852748092191206983423235597036971959606653549899171805527023971341283918949194257542799351388872253335141084214917148064166217123641354866106253459233027286305951045481732303393653743984074708448163896269406792242743482188847606003966438141907580823370130988467797877421858152583838710895076478524644998721166517961102154456211108424841530871169020001405589421779875054861635855027861832277256125175102476147534397156177813630411269551482130546704245207722255026193263621041257913435226836366005428637227849188752621825209940288376584815835688884867290680002512460317224910107397925045692563303971503552541820499293225252325491726442356675190483764360962885370802557602746934007007078727402134549730850911149210845141540635732186190481845687006229781686804090198456621602109960660308355280085256110877477283417561346954040427218035633313996860692577257567732622389535438672106838641300052865172604610017595082760348305442210131354510600169501507902523610194239787162478094511475160366168648013275488168414384602397785431859341972321923237472915426950072119247764435409378593693151240209751400214422704034160885544420489072174854002374167819783961760749097783543338973502205587076328868773127635510596281894053085357761474963757170101263417297598044367738437805441938345970999170326151937284567795139865571269760453031444699001411363132256512856781652472667250006403525705347941105613874876353037448728780186968375505051966245451764119129480691724760198657757931269580568965156201537116036952743986461242215505931786116349801390525588573746591272424194466855272662220082813564694931419251638222350843499410020432862926743335995942964725794911844292562608543106589654250938318401233410787566488865289108189434118306778097767737067147707629996548883983131311799652970337184711843688536593800361692776515181454983056904524448637888075509883930478669840783067055170805368513385417048133435071634610918791347885492018514081574391935940173058461294738121731357240119368954736581142626093498906626317395862057849922465898867210730305099774366782640839301283259040808691429163292213444942688303355464367259292349789548501467388313455963781525486722059998712030192082233635937673635515125093149700850109963650034116959278794456134420677430878576017652915097669517973131133995558920443909298332300313639257491569556401949775241469171201464352157417398130249090275191591532910100733984361401735501774590241922142063511116981806209402750734826374290689979184421587590497892607216654540490020979688651955245392041788770055940195058725832161071008379859519295444788668326822477585527094239409603062282588145027707145954236489536044979336853178298147263940275319212031005834355099550708243132822552740816733517861362792876461016739672169129685604693985159555497126729773900113020882365439366311263873634426385240139973878040250637440595259006176956854317322334940941499168317836802566696927946338799227384630879039385728980526796697900030003386411542664003948825923325797336125259237964709195290197819627972237605293617648228381455830948142593264495346595856768825333885330562928604914980256783488387522017110742458797618481804608116671464815550389165293611950761150754521258561770868343300397741456954058770348402472980939521431806463983914298022073659882102778609860445172431662850916451143696232670395034366489764120972211607232417893233112166338158089184111804573225075994702961089834372353424433411092484115712441162067373038546224358240212107960223873531819426912208473910143053115072565982087239129330622872486098986309087661282928512703797028372309278798739117972756263405118475416933794312498450865571785255200643396705902787351916377466040441011568779049490717651128577714997374152446350920660534946626806548822319027173818043309534351968832419914524608508546254545117353029238041986860256674629295718738956932791711756283494508618719277536180726158861188092784566820047598188827112751150924861592479047702480548259482186283109038888735986392323509970929977582684261658879200518572151167743069191829280037801734394530091738327378767129576249413718818183854025591956887961103245516911069242694461898190487161740748242834570532560628263642543008600943164461088544379619911714974532081378093140293303987483709783346794845691944703355621914618157070896128111178218334510643173379905513648211708812127539303344046736741660586583736741156079068891006218769174944800213509705633721648824147736662842056715607448117627062134381474790203491012935741824877800259910961839052574390509806980957488117208535583731129054289017564536204823377732278257274774795263520565211166794160559803508441403707919586753431094575247955516422531223830255949381583059504212078686499745938137933703202475264286581783039762941310589083327994887616820498897507604481614577984064278681297814558870229549025326265652284520610525818641304095438422916163133929310389141804165697370106587414199060691468707517727845568709377908347618863167864084427623928734919274805444680362775393582931200220528603914555724145022593197774476505446693884214254447484870071102800959812267983950414185984811752884760051605743881756782956630024995235746065252843539872611445382687692655075361916187185352356552762731368087689252375745440401984265532028981305318324468544880909451592538134211125144375671993818959512138301517955299202968415592702030403059174517016835261136672824184237093535467195684276089388231499531634393363922035721219640906060040982995483168235729946410811554807501665101578104877778208031550513412711133068038900108510346783453643610640641710014857468525954418533060708794318305781099795959282682249482364657550150800960825026273546056333328339389297581824056440073638732792442998942121254001779922122671456542174933506066111684107545369240671787247452148654119530055761193037567003470171001449310800314025471739810098154731193145107714281552498649968002025752771425617322103405292620489058527718573486529858816267020613787340252044824581950436383824298979942174693709571929520681561189765651316610542419097583030274521835033143769037274488457111966785845279038320796010215690329833047879465618167076600389821437891267026231637080723277668478134531704636795525352990881929516587194928998178026099986852003934390713779382759962173460994202819448453767693349066371096542662737667188831487809293219207378870537302139484990335692879194828449222313696851408134624634774485888480869076264736499327032027184584459718204281643662401557599364790622244863761797288986801975232278867968841026491157610144375654978913145104134783710386798900964772491025304975469852999899858189234843988585283343634126509739343575895842744408993171475513663651789421331706493142072003823346865391317446872261849134294211897046926554759581717678540756880980402113902101538662859245501537172402823558753508021786973125776466859119266598185286276081845581853947937686267352117204660482821350838930690642796558827797820796171609668522404942283406353427484034700071252103401813553458596380215001807395040762848905985166741958731267274128272494536434769353647430725298048854532912083676178699685202257224300488853079455733441632853908397430256047587542868214955287103388235302262955939324346104097166197845730100559407844867908190354447218567153943469731781224239673260119550736025449314217815967733139876057535880122076548385114797533668918687698027447866330588194515437883179147272777162305240759728479465587074525518653229428415120486728150285893281960881309323708005025093816117495619924022240766611522301759157714050866638223900104655342087538454129058799440646491113553011999181364661035754391067018540946937539860404262019345381041742438393631729868624199227984120688303068500696814810496138673820553039477627944040289259217835429769533717738169839718300064010071004157178951267534519375213347655659428233582549508389280907188794594643202053356978234967019506964734797935237946411068440853186431100788147751197959600934206872925181294833573301910132485337202281544641622710256249194145866334335614966263191202003176904532797926985664691370725469372238730401930141828632694355306778392659520170321526758084351222853048890219439019554200967022921674085618964980550927370682076506080899888940610824340185170807562821287901809125457492547831155990044033122006344464436679295468554950115258934049268645899585148703686480122090396090456386945194477185995110888492802113469629472471890276876807317756574827844641568824628483063711276030358731550079090577852556694972250893434252345419994914768240334500139697625805929958580710732993577606996677405756698356340296272614325252464344961969718728207944698770650160763092852543036801228664869232030478598374917567211682316275129026811297241153223865374872765097183435559600687047759983033946890333564455248711923754499749786586496604181664442994574874727052657848980985030587748698841098195473176298194982830149652279079754296383730867402318348489563178974390319531467163366768553827709794223538954295691886562578978776632045151514253116532653182960233587623312078424503526948105000099382411886624617256774850799672084760088295325258434557631231479951942521714259631483339093082893691512844399854165689320827082179823765514001929811345169147749434199470608037107334099977521059320370049333407692200854301386214901675839713186458918553092364876158039992244279531709280712035774171240529719166449986436197613698845344540730704580092766376305437194206044431027587458463441792914684577163522876082456210765612690935554014060330946447153135141724511969221966653206176185326317007758921182971571965678591401162423131687752924456419460169699701503281777849577201607965353670056856684106692186529055155780666139888695537455068608189360858720352279280847770542338179241750917177690562549135471997907920156208729180253403742119223255581507861457353977521416186399466731172017155139294840634737685136050620822299232422929665863455870210419535819197614686860299747507247249793157175130135590624314167651176522106518471575462028400398432983581579843757683746782750015730154621282815647060665897284138227944196082207123486728724733353076738202394551037617548726702971669448951527603358817151475335440412120041839338210535326998744721787770642600072807084892855539593051722962875732610939666340445458919067169467967638741027420619684364395999969873090344646697982311503624421580218595654802055570541211237015061381077846469900022509854082935810185310091727926209895265274970094888205358980079396695724435768914186611168306202827697082968715063130842965374872733868958791593189761681906328177655048998845445178219368106013422128195537548137268181676084213510268456120405298513289631405729524305053019582709078847352564941845347784049075975497248313939470357564232705636063428350834798820776931144616976301774911045296221274931111706532100409483340115904309929923313582055732680977932001691112123462601981839910367033388449175491358271212034885519109543578574036942364813133989185476484356723158035796866023450208518722581398514544923992534223447413353584604599801700797075996346173685186723487596738395160320922331531580924743659789603687408016974091262020342284818289883017084050840901706237360425719833281021680270655665549146370176140857275516335520950869728863984515334568027571932961786219958343541342385421663823937878697970574527287669197727520437210731114073006468964910161740311649329129577713862692157018429561530185822678289059460954142231834799392978506693070363027019196018689258207488859022125296420720645075311801516431936407318444323408402517076182877358788343523544753017847747104428007852434300726597870315533446333105468889747853554405850256287926712702438776777097466231138432556436015469054993009345761236948751944695703504895094946486051603037609058934223744596971131945354516049795026488005664179020350497604130014816979622273322061831221809893008267892541255500184041554419101928169637543650148239688716029859801275653337018557260735340561663836706873853708462365753232054616978159665981482718169941060729552086081014079846652863511300444661337915844662369203075604066917531541029685251560036018569686982381449629117562252877528659863036577281191294290081935943965770221129589093802605690262102741095857771218332574976216658445259056210960001503884660701857707003858631183676779078788402855914879635970916026081791233738545204840921073393970961920042021412527020544548416023135772006380263321664966218965423119439139935467746919098226098216242340600268999792896469478913762430674555318770502528740476369182358177833106206980561980158831179444177378158152133088214305586443359453716616490806389280868189069114115275832478698362097276676810300796221283855091879387288700810974942314922295177372686726635711285711373925466251417696282631718483473469098846252906525291582942990385264152933356925222179359605554299713011018565816185670575465072338620029216682425085496421394918614489732965710724303002917706334520808855992076103182666728446970300174531861474771452424112713839474602142373110730495669744331855210383967336935430922686237127455388122382193696009378370365826185018862849788267813525690311609573960422188221962629304667969248438980649108680815159044692377699441898844797680084937203790157304034373467876334454615584514536121973212255757477075698085941023658544091479629889950615171516048465688822560976681147663763809017831865790320667811521322250203259370280806508572102468146812219121329773232461882990537805452078043590061293590386013676229395305633118756570811918068586835381218480512613927355900112469424982098731111681484816255792720363319793940563756273142505202890029920176101758159362586158781538101827595100921002191931366145308262317248053752939856779186694931683176455285568613911398839403508712486540715573718184147227504181014882334179639967769038912824725947195408999414602964529817678862434465689501296513558316388780047724122801397923239446658286014068705104689399516089975286660696956117876187410014549523509443865848410447804016748642852487555897765809651646710694565140152759579619200576765359073548833571626407635280675117176977076704217702799714198119065442766626055295517533623625936072146728127744498319132145923236984097583336485405582333105851103813966305831454447985631849683593080024620713401335353213648484308800139224066480929054504218677473821065278840801778524317212512793355874146922924040573726066088763200051432979025609577191820831555521605198062354187252887040466429634148473053919446891029587039948109532650157635417606383675679544920005835682072313010888106933826917755889744574122164671794545392363619535082619395054478953233423915226621046180875783993578035304517605708355897202626815184828356699265975195482209269276781233953905634695243301338535042482784441448545897285558883053033978475997573377260942979815470796006361232615306644269289014845707605167025501597162632043643663195787125957398431109676542037791483525159298461911717276472216448509869397047179503066523107647455824468206507346647006622587327668615176570525511837740096267359857969271165533922388793886758383282827318166311686582493308316824359610227540917363115100663212173793496865474384898721364104359538037796220070535468497564320542791336208969916810380870057033275019666968082362529736016002167870651471574478376795276921413822970973575601798953439356562017474211196558832563667129036220162710049270017805901212666228363628831908847059665150542125932858792545163244700592421727241257000323652685452816749259191894415200311884314510938885046706470153028915203529337595516080912138853631209411391086010262832332166042726029305836624643287470177921024310164393768398620228540444262892406820279653696058616418409055445618929353147500364732498283882073174173006043337324584454374259442034219778365597925204635361180096494417110435793498660367852760176302047276427603355405040237842123728270964841161936049769765635406477080055509398194761241482026242126093528982765117352661106691053439064857214853445630814584358661078021214146256290207575020183510295506748713101009348005138474530080946077867494365266996113395994888429276690581747562608199554102599079237309689733312821074993969463979250788963333546233579526477380587399962412086779125212269393527762534231332896096933693723590161756471950697533419707732830950388590574437695131999696628914619654984480138517808984187382947385213043066732517504826314132370783107640884374175556717008487924925636231832812203442059138906936889721747703927289686436724679537359321589162311353976052383871759301821723752237967225510220710366904050924776244155437819638265648394837137220963198589822232399021063923685341355569264840140633218268882337501712509401264030020972787312675772981024435521971984101458063015501699167592198611633775790294999787549699499892536571452436701398971331251037337271125818085130931600727368608730601718093546399487588785883183359802872283400527544655435801695237204902649796588898108617092495117431493452921044182342063022588367375331519034299049855287515743679479764498233894242191132917818505002849334243425890384774383335641111008464284337742552058301503552493336831618253878161544315361127200814259836786461301591710543810641213599162836130910481264570666285552777654829085643566579509675206702690887647236081991897138115398738705823832273271582949240090293303261083568896760209663238069298986423633572435188355401705928597215436421304809530682180714001839656271632234490809842326901080621412642497615928537439162229443480681605563571077419468040219010690634979829228738094767526717954695953681921411640558011822777754622689381349199679664432686259106859631994882829380485840186390557510819550803396849040994260007440001546138187171790339439833972251894138739004782977765520863527849726765906023152893313117872116311938217763543664586655437052369823674957073884801293461560850393215726921211970408714859263429032578967306648539750662353791386587195004980324258407446394505298367971352097308601759583598803433716751034840251593386824322137401777642388781664725224954303361476114574834061853548111151427835177975908157020815704651991004883849235242902788515013002815073858011734152386367823468222258977597793886810026819564823175820588663316665757725583401025473227525111839719234280943767057374770794538462907861704665767755283901528322946049266047356492797046225238308217742833852551375938018559949805399412926794289348362870621414154583886138603674696644903487654320267964034193835075778729730529262567737440598800868009410412209436655768290246550284026587116694050495702772457355037544131461170024580034028901750358284530428514997044631730350638872698436467352092328699084734874857539562538422512143430186350937364441880055511692395522283648007338498726840109314893768190322175148646562399270437811794574639021368669020415903032692140947352563231483061878932984579050152815431861393642535524327548125444314940282077118816707135490514582610337610383326405967096538454692642010724589786768237118081120746728862817282914681432991316178131335934734545615952252865902873938324618928541337172591540618669982340710131799994483145232302046115066426833392690600934978174681332794189552956342941560501262447328389702885999851480647600147539726439845526599855962843079628428775252619517734223713427347724983636505514119417668549365158352403986177585868274366305190641520222375501173303700074219673977686551726201580523775883342740104662905840774096139070294235373231530557275277300370225067753749645900059325604277119923669795396192506508779035723971567446365359219229185353264152365890558826366479128037473893284523005967892948886441120894523072976628913110533627176909560129184316309407976545370384549169309915120288880790999134150680405517289269493740668758471221083603033027564227772955932200267725367292875735568191473079398185859363400006625915315140333752195265007704639306723264192068502193923419832358130503270502789865082009067800812601925500685496252064886211400550465364637540395108309594719352304530425832633111886878455630287845966925797211970920850697126713903794911327699959241189769480048760604173264537053896807501779690773380478520580519829212281514341656289624765184907747979507264884736243477695846062750259825743978221891137819029036600677946455183122739092778840642604116859747172744900453098496440557783055890124780539635629360098960696904279645108819697872476925144119818054854662052012018490019778773835878939788468583555638012113901618811771753323495960508309495660175227405959063609805487055923445204358373401563717874152223421128387961736581319865778503825393692835646504712558740885762895428292085393940364389768635494975956705596326385246955539769298796886269295076008846955216293661849644307915816536921997708357366388360008779515277669726185378601977106761324627479720180627334360076525707078645934289801813049314698452917178943987352422243839528727297179287836307197873741552409809516879900162996681713316729170407812040916017830390496322182251214591005159037620511856925210669165337312680746572701125372587913960863885119878640923628293685421675364272007816573149131704751091548314159801875870069210073758515461001333844937350783195719502398109319336697743080618685554722394362933078918601359846185386755643888667642518012110076393738546953134839135337965874413218293844556285694636264073306116753238839769836128645928896210757554553390263326675891313963585776876268151575661288872837223416782537444559522427389688145643847950220150797287898299050612187848142321314911608267526718838167875990928527019295451374333476802605514544202388854149283143431090091249120615178313302231563347022825158498266655723609401743320559468197743959783060798702244537344918730241162516256127243249223557772907910233562051826553142301734552370250095913788783030057414229961462761259952511561523903233417292475318317052574711663571430041874627182582028945617086949446224308635147433462008136928811988750271189327125564235219092322461452672552334466682106425433351894866799655096299712488589211270099594425172571544435947767448789378006197010608311305268900298187453470270085426283965092328734600092739656872036901649448971923445993244694457962620861352846223762041187018968904780742995349946280751341489166818540991071347275213999081452465325500614156319133205127728452337975438230699021847851316807320835274262256778861439799126832657140567570466280747324252297420811198423752218214168353264871225196931976040729774620270224534878704701456779450052681546312173687734484742120794325305593016024531518593562903948338313630960550618567616913704838730065976592008806232420670441152489165728613075142759455444641546027628877970340709830989706274631038083400058342489608801411834988814114188668716447912448286452824155695182309019303214881683723218332549060644512171455986987915249145058814274279303900830280471740954215481898577409986320212505683771258852848860097742710452513907905599716143670311464230655530180975768054581688318890846095144160325274360385336270591199971052108656285816222958109826172514554323490047147371188404414106960410479450519994778063958516247888948408644922593886042356122897494512890322429504747564643977293953969917520458018610981919435595213448972504737711114791724796448835351062887516605990950980634928208876032580168146820470793496608038615822175137146162984679313748306639844144600706139228449131566673706910301078848594590624165198449164183896592222644279013603794797186447359840653141729771917945776899064326503010423328483010256360268645629143730892791628239459574522504978008678473890486856557963070784879366582644714231367220536715857049158849630329923604270725458011058176299422971280897526612744145740273660163846512325035287079240781913933648041693895686355975408913873752737215773737215237372157066576025421799153092082298491432500667829172225396884434678659747734499824059649128978070448759155300276236625467243710401457851255416800510823621999647181908559899611999624392117585585058819891895852769859892031513614283856611960542269155905642314186988254809653360094594132174154673341809083829106082625431275588725110390739141024040858790221587579786950131461222798262036176326987039178271183819374916076477384954519006630280022262474476312586762245845123825689161223744042291297480972260982583133966677135657397233394166744375072994624374001131515993799799283946572906601841759785028782278409177313219847484516337906075320224221770637027094674402362929965663450994625209604707082068701804934663070652330751819262398643863486845199760652855502295431039354609016976801090639391614366252034179629634169035119107703679418598638862694947474049684507946324246603522500664131962493634856746251810431170575699017695083439050181893999255197823447995978065596862998821382052662809188138897516294782866522953088672146081623809166786172588993158565475280970568606518894362128734745666260932715386047496076009141504837518325274288865091071315124761741016332152469324340700916753484882962899588826968485621024587680996797963622413583390653228536301726137065581845192838358475086495934150706097158529797804260434545376646903339219996271038612419563217216788935142617179498054090636046530589528527276023162787238158340373663916317721787978086700186169176213128824839268968404912947529638412808396470041040219019657010155086455348258164256430463019364920802099603250854501315155780102783733606505684108609411303206138987636526229224972495628669545422085081395369893826182851753528276461320074148448499975021100937699928672751819755292622452049332585096092066818213737386507786808009639237568008522610272139616484853812352986400366371649262888778066141745751805629416774928988122146876786835771167657541928917136592165728160674745307385269931086738579951012183945652145438133499501174111748796212446322879867763774362932385463985018887602838765113764216012963833155816636994712537882648260068784716650640521835205460644020740905360142784162472753066900005274575781968932433500503548244422333979238871022066333384258905133289033196147611221688369780896561529066922920571702681617398089120920735265980151645489399579687316861463980461217817513130966677498331627713518014228971017928036461980543021151951266622226381180923778739877958369459232856367063360459633384976425015770067823123654606775696225809352987422405543177885827749169695315059282287405792335842254083802828597065364924294498261682295260626009931412177385301230350655604917477391664816673750422677972200189408756824896278280400130802214993084968069839285829743315619671490492466509206266869590046509240519810240495927334662629735373965431717065358038981875776674952469908706956012689308458305772178492513555858248106986827400214444448666770117852542384042072047070726270086422036980703820543510438609856160657452751029691750615104385382047763867602191646109925605384873544728435648418619927981014654282752786549649768737771579156891874404790432655098372198697778685239996509508696351002862256529233284489153023729830358704562180169441965420286025600977836064995439634128283109189671582907811989590522452575836546932442218486218360628146699168267734333011170863111020240923226988235374499016964637087145929168656500423199907719687447235820730439267773391962123382179831031247223272889859017216731423086413708469357952653506488914486350786121729642570821706435977592993017915708459812060923248006944411577707349045342130494365881844915011287892115496403138583904588154333078536813396880542347615457831142523727611658738026246814467160622102857267315082964962972283771694462061096032929988363314700556664566820749387262827300593547010549868551599259069877654498605389368640987904577977689005969614059373179865131003507974216368643546859784529694169522665541826279309544656078580940000457975195770992575213058747293588413614364135252085071087171518689556310615896569277587946452136551879811649556680888186583598079807745747971877602223145291753039180155363715667592104164435004897820781305041325192313716415236891081886010644793548616909311485423489612084158818018036573357539014480787534526440394444929434489926969695679514300495872161930678171046950873942074423986576034559885651286212996247967481062346139650760534949183624497616842355026399006829277320195518078956738568358969402678139752948008321170882972396069011527479697795000262422909980229200003444973115060567541820916847812783895578926344291095905009292794707871385174214672209506560735034373531081551328729142800024149373287779621492931804858723354149554494217810764608602982751378935464671398980184149876449332196099965257773444069659386700221788202749209667442313992712014453499162987759795086183026083573053294395866449531417284883247419041843005769595787631794060641512937261477075533288291596137475546971600157564429360528107089637800093987345268079635183982713196707247002931978879140328055746237822957550761079631787856279883398926568406619404195793824941240446314321632045960886425895351647652360936928305228082461190884106061790109424068384674799241926579599479280725134784623853342874839303780839888798983344328135598327196805315798097562492450345295038111235073835319504860197055037455927080343342523316689061098017752257769259214977392459414194880071220255119922556712198018701743010914968502956762634371335510578018166577685183106458803746211111953395592592633078398576106150523692027595456587459702502274037391986894129987510497290712626032089606831485590016372897068005608631901193048053893003142963629453335645811764601059839563722844894452802686226506638870390891463868418124169388607764384268196242908341368124344414029145367053451662381606527195265955183226889379067806087921567509767313910160501787854789289579092625712384210040909519438814704092682557669996058036573369906752242811740470182523370258592911811471312650970191254937411399024407083470715897626175727436130646405425483438258440922820348373973410549396987334684742043894484186101596637145419173181183303758358610099427520072657857108296133823019996170331429006043617036644778108374691427062442077022124822538799007966428497131814950468958217105365368048756023616285514868674085928781757242200915669601467228936988674804108836842979851106550955597529524252812639690370633183292855837135639355412765141359579099003972399407965295704958107605068674508702069474118259834589074280240579970033786722386798112107431665763772871449854978233452738564191146487784302909668416229137509469093174898283332699696945841799428774666227686520585684499355137108520652978634311435376463353037019744664718856281035655011028734165319261164905601594585313801904739951815536224143927871210831821469092968917454061568737578950179897549556083532394065990175594843596087932310443381984319068502817905513228753563724874961035175544722322443012529489203992336174476171161426393597183989397350246886786078437999723480907523790694219417355538065436455028464356835410332881203160980009432292794076426095519099219774348312676845121411142498534033140010855902857361751564023696304025837981897426857519590427839742370613050103900848847107500665294869883003892401683502299123146561724665505956935302126393041168564092341569342170809992234533946810543719908538856813763401590315007584191281632412140292301024355771085837840234214462676125682735541762486500151570186864783352544479085613671272979109162508546424070212108588047130295025622013446503472671130414310249512882025390251679650482480556817798486897885737861797807744440384896306892320276226595687039262610390769305249483676281977615904878750406891309496171960223240617076900790487211746982160080824760317738246866760040300316650292471465135383528559764156697192896759888725995082905067625881399938422497571736610976156818079538152046166954270468221247033255020927742609203041888039533743210320304010544858750419646865649254836135761899132889852195909047595395590433452905417442018705686094569647426034657507524067047183812709038780659930971672884711656814347903794030949738753291040984374669475735834753449925840475241422803974452788749201293247975718517092752024653055222301578348845434039955546815380725737296496219109528139626755177895929633807458897555993550557725872445810565315878426536573257613202249601895012583482068052435197667352961028566111531920722320602093855962095927768243062828125971971928108682509271883166675967512788859150630767430124811714864066432069334582126039878804209356540732887102048524141211222631216239393129162191842002828047082324081502093380101446761436233339824320123333569855946856290617216080567847577352531146157972613081938987021625147071883824880515338852995215392593592238894952032815217790175175631660045277943693425946307097228824780576530229616701046600166522460708164754342769652056156139968699734070445378669610118748914742453308491381163031963757684773791049084096950351296665639072759981612685339294931332160330948516830928156366600612489848156496327552988557938029475644273747424838858035866442046361819068361528268687463988822119410632914394898217697138150229771769878450737419719447793573170782749521212455398780376270777614751480991026240476626626482763780840181390573775518025740534417077997864633265036833746005914331549301905746039897550712829113870179038368025163492468187971384444287101529148765952633707611935975240472937028314497800825831204838732753987547444496702607611405079879043322193817197452561481909175278378391035068650708483711387453912713766269395071722466000983139853530032560469126808936415441105115068662388707112397356495837222193106279289029679452161914435557286688392834499317435554941736284129126330882106744357391167487788044468117192450698014630078549669271599285256913515380833373801312281645138804237807630951832161788356836384672138902439874974182793944099351130634846986559170137183701143119811981261737173015703173350738597131951547179459636531166750788242848029923176434057848532917033415649861379100319234672149166401229133619622307287030099482805152782475967308367990332488421034638646448747403195448146824484530045516176834963792708428998257804516422070928488003726588719209958622847912849015184865041274062389045168090143142514185909581562948133956261372855807140789496417666458768700934607335464437899910877324474840415752840801290387518596697129055442562012159926475859708131720667232875352272237240284936233582544171478240675783941209076503181909291167636047786166851821164471971897402507597940762536529722170034474471542282549005849133141456405838086299277129874630388522231540083979562718592485147367900618560515990474317690176364223947913610339755913480405457450890694287671701480961308810015179898785676410245784632088447974022230473091424343626667114283014803028487395793841608508533798894657366335691043013834230918803420158918218379803350447576600285202620289571700831517373524667342850366968015463098837475687920083200704944948506710112973919068076287111372968465370387317427455682889813647192785292085068076148564289924463235717821188743166304355429365577224962203292672519827529029337125927291337453923430784137655935915019623409510362749149686402193935687513436729117185397764234506457814142370461561535226921758357438151425092935820337957268784742085205429747060103997338124850735705235183497677988713814887720353111623941171838592001493817094016472174433595043185661562362000869436738029262320996517856679341275973485008260523739577066698206869603161993286163191538313004854653654925645188797224474250532837524354575995338655147961374286910765919063712150096068462845602151688962644246087591215922550020576423306016382371611779667262510369147929608187752248967477637475133573077963200956957272801152806962598394071692034045519356174441331439266233899916455059600710034295628389279986618421581530187609801851358942623638116692808400172629929419992097691954035380238761473597728134422990107003455710543342371073664869211380239080990523243364490211022759289860754215114743841930710806264741559522276377859179338757958095524002640197094574531199658060251604371340584733372815237471820866733609971450266074827906028659538493393315247662974296632765381489274773766983736024923977875230210086760757709290235133512570222915460587028951558114549549472929599762157344128222669917122656057496689337647499586956760740624859698293724434921186995547780302736438265349453373877640174956667425698613242366827237117045746331450813028434444258712507674489614682970014937430399194141850699747870414895015672904433308708643052263828859903076919572005758195543907633842787880935311451038749928505604844511373014157667599321766906079844314395242907218876922682905722450253406411521829043560328657424167429051606217750990510214374835727381894257152309201444473703613191341270983660770624806674482500036904171535593984801105408502269276175954080231210197532822847311766913501811651254453066312321867851601292451912588811894545246378024831594475213867247204852345739457682547278913751050120438430120292353459729236979394692775463679427483448899639567133406206013096775426601642134929731267853231018878810231499084372017054821708256924882703410767730524966180902843316813338215293408552820041027994883350203981784582435745880263590210320106497787528631700074119091764120533607000964250177559928285079105988320682506781509834252506357396329464636379155128740686108004021088840226333889276913104599409047632904352357719721922977811135674236001722980113807365735852838158612748632016173283337755090478596610290509885590022204836518093181905877135427339791832297433402931124954416885414168201016167390351454486827863418808080120623492021168759334865085802932506808871283045026175966754049091258705853346222223538076130283918345028682318087443893477752004226435013598326278669087182185562270230587973958602857140687005977229718992207624364151558482504381219328530099759788181220424961471082338375572478910633348499207953661257608307095925428643541462874532357955718508913552378079791688060473298740533895206546055758534191969528764042784948927527747338979813142290469264074263248711264689396353848625463180039698832817238292777346698702153293976414310929342793830973185149734910267449031225521556239351730134440864669004110088955702877306969879116235471299736641362585345978595845742241249470014668031756597351838993389848525070007706997629112050421685267261965017083348833052785409933634920432457785066417852471800552491152450329236039338091832262874980592482327833669883808326170292470599230567719448304794094279497557753011703682157234006306157870941305331864343332674324661864208207068795420773402070338804081847579393825604720937877071682074394785095679974344980222555677251470690790565592959185209925977803164475207321799487327932459960404566126399283040638213776693880381831419499046899219658523275664376157807580730077101568872469919615981834015745773961596063259839163082347080047254457305518756226605819401374011109998586429951416253413863150271791821413076999310839038849801278863675105506935745482969114547831065105894893548293490733992766478801822934435794233586176435099046193223590416160820505966002959294887492203505733450402801919243433186360221406389965467016899977660501485954665082422319266318121324878409816512842796004091399328051256600235173636007779560905629420282699588351139112128522622314828859528602023384899724021464500131277173178390179383354597427872231185299663382359379496765628939981488421372578610909415591611344549269512312409915429842164368044129708651195678249732859933014880723707983335708500747820952449323599565836073361344514261003026446852483250814012959752093074064300695173065879187292556124231999506962284018551480596051075991927547071089561323075123817606182474283738899145843585699598461341678553834944512114065425867869814612502348222359810407775644582882669208791051814368688465714300234182200171038728918559081841432011656822933786595286230817448551869922011062739547598442984730415928911922319946208379295807589755257439536718673222810435903395738838942523665033012061946546421622516637988915387244996618077294327570407801316009594951195517856140802713607313808617931740310363229406797167695127234408416895022797271904552616460881214962589377977194614627733560179236814550640210222015517088203612999917203444816309779538919638978140671295869158604248934759283721262033332277289466429241922212191831041063680394344028263852232763340341164898620009062488684785290098574802171618865520628449000764089822050325183959528514708957811499383276134691245920083490847704122743527829018962581428832678842281557665350965745019073565786556110906751282581022481134736908942622268100053057434968445859077591689319938022185043556904202610628335377310490762380411460574399254518861847150817727422721527403287760917804665715499158273012327392398385640955093454154951646254252619276863533030238633407161905157886074244119364817539686855046444986352485628930040083880158858357640057995728066862929924892362478481268780167476020699994058736419730493548115317782015392439873683247337842050490136844475292886428283870523133110291858599385106627910919391044357252944614668984620732943832261351516818212449085095418754355472094447158392393778569151093521260312313329366528628053527795686915975032370237359140549998916875492395248582544045956212281720323993039011926199945648341300453796703985723415790508151420429793913935961159894116952131434463150854282116976488039087535257136295075639985099455004812067872482746039585728346172611207116017448416368766911521687146589722577538287428870913303300399151852922749057251034296345956002925139894469065596836243422073014580529211611322526427497357932360329182015795894654964734770729432044260049459246844908432464811468001799088175436076899482527980108298808670754013050272802595800280634691549359551683867526386651163318747358155282834223605338950857538438477259709088462756651397236581175209584942436074900642312630922125402820952064589820165194578565418610334227599075151499274920277221591279868502915315542468888879195531683799611213912735372333881538376448212193589346069557823088544448418396890649076989452408219570801674849849674040578343988434415887257929659347559711242089093044849328516670549139094539856474824691444581808547772356580715415416677028861852515250062487404815950362408386073649171276491675063111007260737475324380043960986526176895023514749043178937066971693747564778864798018623407086501043814739769736684754697950226155277963547896824757847383819800080033951393697449391748462558038238542758479383556006582007377451720151210725504423551933489799944958326278356529545654393027644262205650991413515805420295023422737669813872045279398538672131475433587229912971043185226332813792148424060936934437873944805952913420656730942491116563630974307507093063792299768095753654354812084044891507170459949451485240502875048803518194595580819944008740611511058258049365287569795039682020198399445927508875791288114711448965997986289356974907324018340068879331890827789081917500945332597911073678952384794581320447559278042838695740541257402732261429432126830720272189949163880282069135988418637335034555573089847310966603597306655367152778795663927665676374047444924218988742140236085642100699224568073102601376859911776440158535419124578378500918462593147528700601797895251041163128950185755544252422440823222734472557206427615999090864184236898635485419640826307942260463498116698017292732837043026733177732208505088037564418310957887867391319490581010892641653497081986827925103168216653403923684886713509552005151145124100999981638893463191551160045171730485786062762192515550158853002072696080407786366559175952778877274979444506618063949063433550857574835302137309022293931381470409030344358447068642845759944051784642782774322539474887120274974274421844364066986886363464499856371989126677868712412159027241342961233701431554163928375089388546377986861001912183539137744095210073483952726910808999305047148344442558709798794480145780904257925784796746175283701739050494510196470630953080450484102108616066459279931667707910531404918148706233342142968797262200811228734188402507975360233553579287496548605419017050410664390978115605418050932418440969863040822008130883780764906058270852057536959263712368498940266524185132008428573144325224378883067657559789767809229402600893701800144656029076940844177401958480439291692636231966317620421853170253802002899168363753055814603845821847862124549504875405491754360455001051750216430690130447725237889131820890586801413572525086213300073967707132028966335914572155592007020384638468311995136368171049542431860132941739925128751107675071405136462328940161436636125033211957103758214634745779346506168348346800442363391352349001859450085017263995538718188118105046418303311182506708574608924974303143526462031043543872254248460784469167122178046160811343184188109874356097638151685242216701927273141469326364027378684854570757346811470539223888907619934410630065931227024809400602840161825773634169521809312565647307585422859259712192393475554577932358321299673047977339114756265785924350964573749089913308796125707462985689068990593397312355553985461278171409797103713959914689990321413798375193943601409816627959083685402312010172805380663012931303843893536125573223948973270577783756929707692651971600299114554094777212570926392122200731139941821431102264856286281581815794869624930039793979303291358210364812285967347380251163681460775711274303283457305167514606702349198890463312830836500110261085316031235714994042686968768801977512269782148245969858541730977633079132251705255724907778510567747875784732017633865496739910646413442127866429723595431488982104299516688821429449998625391017997312138915226589064673991391882576563469225585809337758181383758226000786638181933849899368778951641288327389033583531397965150005313432365286891028198359010855233481466515951490391673855873567471055739018868477424377610361682722908934944949303945885330969354344274652430602494941438799750557347583890942643897581488197264620180436826806917095383838377637365191755607093675838478591645901540191544285124309782086272018582449175754645946942636460637479050737367262017665282995598687438981823518751240731039794841706917202650982660164336569285158391692400457932154277675540259683979870825760904711957351977449324157976844104455822583762401272495934797971895781570971357972162755595069357471214528499574815820968076773783366612012161876902956494811149517044731331351226129006913323812145603194595459262254506587157305226294430851011817434068384949198349014773246174464894843431375997426659599924239920155376591452714833415684507997365242580270920595232694505359386330768153359955829489213780578404823574751572068512848703579295624207116982812432757104221257499147061287649733960456878623020521840991630356035460777206707815556738140509287843166918807645636657510959975311655630989911368524829679004726060574204784707611641534171503536563832690502477699960335639700301693711593395933074238792950378010884934045903367450270849087172219531724644192106286415826644476712199885174306736852300816844704363266324088491058797417142664229148382077379383699893281802098276973229776788691619745683868414693781965124912391274450587688150365964840338530442726289071786283225541232730462719100716071200490709352418556720047997517837369168283600527759405872245231418354627469344962363221608569053323591736577288230144369897825605091956192833874255429380306090040079157143838507154129697406169200509591607275707851381408598268908462315420509375953118676873044336205636106336488009375290536010975786505029994190868862871811923180813094645701236918373185655886221315576162992136008679448498097628322486172232526084619010594223617994044491857252633914904534890073932894539182294116669889917504017581093283793568903190657097697188205926077720307069538973586961297842543796758488153370397287879411457114218876561640729668342290790924944974163784556024781417249150652486798486617829616625107059215995763772315658352928381103191074335889379313989006135783983883441012794431502291506357952745265505314426514918953791326547681924773810036120526965191396097940633144213773781663055993976918240896462637455903059567631276411870907496083590131263558708177037048961011852735343512767624432933941618191828403299093448748800991138845326140259026402521611202181242895778164057727213241888983390338617971856274371702267525038744352618403253481334113454196253636630196333364165618247233330100804470285630084420097138144279975686803045038254493942435497047248137096798127601083639362360588252291292000746353894179598398655153881102725080635113956291075922333013250698786043917412113270522756063332366947681385373781768413475304341066472459587683247468424321173258302044430393626200269630445855866420512393763572987759241108733547477279820259407007164142126563577089565590100479027716429352070910328050608505400575292083061415197711211716258943898047109599471102628741175235984449711767211333339075990293861629581813898690289807294789614979644468774183837762371361140134044945606568760250126061224145172443223706016549968975956968315889677182270208124333240306563619725270734191288030095224534275110964427277410857615766303845325546531570796191738459503495747822526005477518142310135159893574096715694566244563424982248786800671163405046642975487159368433504247539859057622590038397655161987460329612633893943168396381065715194161429546017084574353508063066281810550226644460416875000332835338555301174957490599086020900875543102313539318350173234729256290019780641677999601422418561939912819969421565913424185171063852268944709013299710643092682812628864799474900451765753044830881274868933109854726476521447501528571498786042559046177084897679985797366744915025680162301777300013010151445251383892766186435879618845366787779253447174854198043195917728993779339335667692603097045700762795861742163053872817268161210610908488737579836273984403185507396929512826796825191455457591205075421369391571924374123709316255901938725975391195549189977245611338104208310689251632768663873067042283217212851630500898861814315919276408851251008661285476490521827479008650668431609071733950128991087663684374543994205915872557976149946509152362731864418773293217785231950611181162715593390305677528306409228537469746300327212802640741700577310399762063502293224701542116346408561534387210384618566147505859495377663667124437167203200357113051184212760955696058570588299110173967322492249449948472805350134737263649527577009788686011919776535017793947210850635850959611616281140380697959564817985199338640885340553454738084812891756755066080888965348321442139304593065915368411732374517420780750215247003883561388595530849571516674988656304247407329558948513187061382736380321382351390509797485572469490828881530607146860770854891791849226948409284370790326020689778136286207070090449532537385402772032737365833899065159225883243147331737834952750714800621361343973163132230588005799407890823083635339186572513460605996698345825323194805528168450988017537676712984385898272918869054342467932216245341376148295835141125869078078015040284786430354089897053493589801608378128848313944598516074568862339578850640520987838817560358144543064550999957397509844645609964044594428807945123301778361037973337012405195274331318883275715336541996754473786180723130498261586209665012914205596426653277256574079599445900172767995265091780774182460404128451435452878470617440762299952198253378664057926941746391447211897064067037234489359428149146223900446941565155992716870519710916913857169048326960378107855689768356517774543950670458935742918968388325642688246423855795374079395556438041455744874146153038926868327044499529940812364432647533308045660132197438928881095199697636170482879098950160338862776340154580860955822927049472683305505173543900172177224053387629334233595357509043712334112230359547534972401800399862703168539208075087417788447893503218823232967015545785310292648711480570555042779850084155293386026074396242358856879182703506515621464068508228429681746816709335607531816343927863096436296317694190911081604538017738642412218633866073165451555344076682467963172180182265541900543884491344532471487495698611161695410731943763606781133076856830591284951014139157987798719932286027008099940937156164816152730052855543956027137367566721194471646600560573435311102748689046654440866915535244402128246804894694796920335255874830268369726856047064616120719252546498199871937422501934346117303354826021364729654489340054802732354263980607056101713980867397922570267978000144358495237412539613044341924609204589553876425392293362914192419091102470408155356300093507618852855975496567208732668053124647794781786811517811750099702975530437836675629869673155309608003811483662019748494743074050790347072555303582776877927836498965454540647178257648796553375584514889416266677625148475868888174502837322811239909633695233262357494595014989514344010463268221710713994895136620596450876011309404201225243377148946359989902321424100503252048560766329220745469509468722716683403620053348405831000384214950391954750074159444197746572953750504053567961067529844741302531100937075749864950136939183886198847580494678874814206694349559782960971074826269075459192403625668393401384994486649117187567878244775537336908195136956476805813529536604983767240959451286544514418861065688824705596512409331582875897917345411667461147432949195609601346577001181883276086117167896172225873705478277190312802727544069137157699418055153901291625691056477896820855417325439807460986387953788258649577893809499945429642692858928715697508345171927306768170209592902851040149498551345701813817394183821676332996191310134221443036252518668528033655912123879855466075921511221140093444610748358598295757837154421742513965550458960754956705748661492962680702392629696744588105181668435580727612232750695315162794887410091590705892047729657477973637433274715176334687968011247636097231521573678887804477487644921521556496525462102548058737113706995199700052534909042685516724062204621057125400557823760223978078008052146412796714014817347431154586579095033204004498247854338764486645236616359283919261330574711339125692868266253519172546498781213290787438313886868435098375768769512486177830426886783479015351717317520973183765091964878608480307879815529864344119157164399233015448422035640555979068016033363256061557578729280770658027813446550909418533068461595206170596565724896249320536892017621823273837187632716616258715573744728518791149141059808589858759033414820594163280079032222303502519634303282960132760357252217175618565766038369156881358415733316157829923965927574321805112608830805046186152899897169474517544023817124128496839799708508992004027747984787871386289294306080158970457431173943677666440275242030784611033499569585463111414810188007254712089141690569475620182734069360389135670615073569818052085283299148009907633705538999200489619994176243890063874198245645613694418884012032413721216595234500140028777613274360915270998416462356399396960890500568693941126050737318314698138434022283581783236072981139448115416301915530387209200788978060306419434216710847686870960799261909181272648529740536825779204729762064539076903545429976040316601456360823832265918168089094205940236889275941723462128603674344537642404229383105063213719154931131099498919250720779170446409659742110285884528376684315702324234171917051210587259585534509906171725231499113200749342495488255079393481317204439740738305356383850129900908337211688462031917874122735032464121664631918224293818717091417554284992625157301572739733431816968365713755331975430872909918206614930310118481084857573505691609561707523224346888738190259441008195601525824889232441412777937698588251074918007581812271390415252520720163227235862473268318740778262979978259124940152138277093489169705745849604945858287725133599162393628118060374134361314168363312121282941743307104222694520574770681584244270321985376832549073984595824140709587597266208995970225874225881711806085055420013305555363060581133708858806853376934210018192729394717734135231195318530326826475718281278737950593617919901187841521457611171949019591779102226217208630017313069008857506476980257958743430463381960655155064246311549299205290949457728525021346983892987071415390184146984926574832056162436235709889540596929461742084475747922148005271376840753453545828915671735710009169312224085001853553753221606474520499983157318417216557098853590030645539763327061507928712407614093806249490348855065791744093646684057714670132171505487548468585460889464767014626121889819166665363117236776769383004818339935097349727291347254109888426732088792724061996258042593426589537716535246334497080852201801080599270422624934384886229713608132267851540568764842429863365161554638519372790734866686938999529165048382587126679672570116085657498814200092792125951341299371133967273404155768652765446254530612149616202848709443970485057484854684571815782743127088968352928151950306550317623340185868153519299285127562800313623925895905935185959661149967238557894154346877235078773798660384252129332708447074830123587868403883155268434166273316070256951675539322686668124672445275542956337339123152507206825347613189578106431371519280942970874941258671810565829827663207505726130402519737049679992158846050869273255050611075071269032275734714948685116064304051127432893319174574825980848601640241070952627148246068795885961385602931065902174829434855105222048821081970209285332574258365198419123379920877997551855680749777641233254088973538412797115977987579406407193118165451819063332575342163785001345576929073560905960459196281921266965899962598799178631321422986200987187448835290837411179593355204245880297113935259859636550275469745334149504478662120265451932531274819485637378755332528727990548580900967521247819948877344015633251992694200124953695924359110857912863690326940500007759612246314637476988401879920048396076840599894607239879636808828929752150216679635953987266101892494035401696024059591894134816755656307156609952036560772535327062095163301036426523366183099449569665744164848916168458645008420781967584755639719369320960569973418983665236873442651221132114384144083069292737922427074024025279396166756587731774449163126293625379591132856983928854579090956497835937077635947377324337659841294933518829366413869665818952207335819401936226694173495167406986155906388555813111558108417831957490302719116308811411529386058194660907989250320526454937301953802842537446849435219015986885084540111875602405521379127699687020695226638935075515252738348941939098203830975553766964547790035659711908991613421374916507558608123918890825866354844032147171293972918318018223953409916567416129733830310527504918290130147275712164118505575999422281650207942225159630999801780639800637262757738454067003373833826487392985316239523972405514704789857363149607733659006920660266803581777977858029895826299981881347483040148357329923142768265488078998522201329155642935706325019785368072548027809272282694375738615413690658869381303612603278538093531084701426165789946526235147828152954275444000862798536184274823271573733001047311173740382245855930529941056291215825385661060102338058898929191545020051047529119767139217278570048694585476179562136441977220205151935568377453296282526273035883683755635602211889175154489348609326804038836923255675381571327405888591961475167377140329996327742678330218889335574597329790373175838111640940818203732352342443586045969558153733065579794298244510198704204713906393985343694710842212901485021134273665785341809032538890199308366731386939340632733509977215773938873576421049592321769924420648230707185549400076200475609169102012823843755001330140410711961305566811743981392364769210820336417028139502817594899338074470730410866148056401737643752694554782666014554955311997729126103445635009685146172198509709023977748901389861306131930035521036025836239761967482412411405550385044471119478065765984122316227273338148356872072353459861186853456249185846723485394874278788853005117196866417636448872501219584578831633122864252105094907590863175784907552495864464675534103547007805971058963824133868022003161785792785447159583001674822251625000268849097054257110154604144507616787186154569036019762033739360826929462872424357141278476288373282518891093056466744295069601328120057032724578714137074620584151358547782553525209134823351768378700260371591658952294081491124512511077856858985537647848345477720924744591400811275682107401533067585409662728529626805465195692718049388759765115040157422909972834443430792404982864671377262926717095377956519882846661356928610773112825782631214205767446975791288418937867182177795447795865616355176341474444279910496224239267594612661935101961056797060736852659771740737205354042785444935746197311806858992346233786465841101152987175833264268117909034419833580307732492848016056635586294126592384769852836050331838077061644493779440557177808069446053624064929979400899054615721941502866705881427391997708419158159984026448057797322664999968458944388075774628268493011447329778989593496748266782167011164558671644713642244438237907566006484918683926767083791097618356707103564921837965429362842624084052807584627528277834672782945100902786841485829572027671464087798157686270057536659209825716556446468316185960322518305892061207743908399673326356572659865606778044729957770220315139834723146003649427322019318771301701753674282355458937677704435459953345528539672276791343330303923344702441592686679944541819926295137852966308896807159823117473156502915727083808497907653356721562023124941054236209562379382866820837662204201225059232402344549544590558517794604344303647409052045709022889509920132266579372626600450536222867067846008455937777145296722955838613418048629630145512626527906468881356227509579626860644476346504277441706763611194958711659896349096899381834177058691139980077251286659647388843932736971288257345288782109785144075496015822608522320667554797894411835323504024333925929146033051159093818941019779555001128129220411350210745785112052698620482247348960634832628751073314213071713331706880118706227887337149950821608564370824392174140097303076768533537781198634885520201386917206802144085255491317807756999885655977427178833462670371111660541501874743048707949697594084361771594043718132548488492045259901294231186283860913251825165805563945793992410494229123788977492317032690314828143051826228130798380667656353102539217143148926296727904646838658672518783650193222179200503638176397777524766200936053845678926281246813504223639113977598788598895538544776383972143616736463633400753198159252802687808393543305743968389828168220735405540568104397092679524431703296134157537751273958080697626756639747480592888841744938014415035801645224342424940908192218527809173962305043078697806194484003511224659296427504678068631583581393824031178016232356568894721076209504772588364543373047659022523242337835121241993473294500472591060300444645642961175127175012683887719057225635396321203084980753063874968167793152324635454601765357990227232408506309565723205160880450375354117533840869742232593281153450013700691501675641131598685043954705214103942079295914597270364326312435525078591413749274889530884624522170590381707671618136425729581271181890158539605330621959215511201356780875450257513609042942379815441974464989566637066072013833371606451660941789459682848858142131351975588864545851723822804194222646889903031123788795230541568818572396194644729804775264738122455936339097470926661525791056652504025018432011464378919674038294230849968511524693916154933697762647836831790005649739174933061991494941373594273810953708421866875128759101731311547264632315102290086855131394659286862822377431687515493361647217592159880702987950242060144643947520220477937118473480856768581372178719706586178149566811583396493423495294230586389148192868492506129782399539992275286851288966634356481357834379354185347564124987090711628046662217445508415728483401203712276343655528560634408777170030961735542864749529611784468484689270930074596686312973252240740974554654797315664074549051227635493586517801730358451522116083059734920754123273908090646914758912099762225226514252420388326517794653346307132662210612712210703363120399849147279600206973730963682442963350984433846610102051615626158058922697299190817988931894175225460053678227548343026331200418475692516379799867255920673454441348124246385264065222601416549152234475187253010826036033534467450016934883458354020381155202888088089943900215633642137255872464181049960461577203608903854737401639392209674607962722100777140541491157690058392471874322345202485835563339123338465809041242563721372704536626668795034690011447558305450374281480512004243104396788769833157997582020978719529077744793461066367151869619554111561662632964909510744616588965829082024475203553691536402507577426099408301395961578564982758182275754490702668191774739787407544427319628548951667826743432236305183706676526980933086351845927676768318205766994654364074780302270599713119854664682067804242679741381283663943158072147286568083611161085992688479444043681856400734387718920546024162669844979793199121820213290000040094006133160510548396749473475979807627914260801095566076481741309451333119984108806035605839556709589342095842846278133509371757500483781540865005341773127089804099400721619353986484446532705170706054170116260966819371130156609109076636271796299668169410917023953110858122878128242718867046965568259818631060291810492768691471846424334717580901356269982681185299717190370491122739796159362060158534828796577458602546265707165979139596441922835090643585515414297915838440417066185752572483581812089736190575309248779856007858982947568716457930933152780627104375414447805217110013171085747836894076760985477109819043450839116258158305635064359269388847924095711041929217406790634484052453701503135172108520511800768041417229327990688289597045839908261024448770159585744593952783063407226570729391984837547888044702971621688060892699076850376200155206650974452087748923039420648930919670188646325697723670449026134143642612517008846606076315414682375691974147639661667531588065099001936157514755602246076893202488051779531229797348738362580097458099695435508118511222733794334716800090595749352747459530295251293063137342160097984241702612663462079887910811280436096378162833941352557540536812688752027512462671605637599576482345946304255648599980632529693128528891194195619507971166719862076546403544738164822642508905989266849185783437772144061165796445132091224775334025402158917803123001136626309902528778299929087720948822456276813259961616712387795233636242594200943000655159953327803234391855073323363193750843289668104175425375377020128909575631051760605792332011517724567410475327408471653912594258351724207125869405681409898414191803031995532889480832875222287916890216217186278824708688564819799319406422286194608115656049350192194592821531502779479828232232362341562307938242056343466857170430338885203604602610536440535634874419421359289907780336711305991277386688769451912124674147431413620542679037891171314696477438804996588341936859361508897079796961566806939340175697230216249109663476264867804708334307870144849507888312307479584984080574894758833258258248871317795564870471290975747521235618832380808066541808047317482068445869131662679077457112132719384901499208953620647249565268944744387464857370648303675940071085060161247731341707822698697713794112429338704546865647291952800413868528493473919930388587364340036924449853522000388600572162419789762214808151661813670687779071520603635097688555805623906404203075293901017798168618925454213667867148566953234871032385293969943223380537922725349237998574482713234212382444328641116054507328082162026803856197386171205798118336176781588976917794689101788882766945295269715023216053800862890255911268877952722499871100063502817068160394372618258595897035437946171949248762316740897025773960048607925243436541306345526024660461423329404766468356877600201014063806298314234086198670652854732539173260859703265291019425061776600981768043120488659104139517835370858521333581219500305305277374925926481699341749717242537277515350836010151796175665256738414516833658810763050386114161994386666924389940429455315123066040556115463492574577329204510992756432635673003697135340271927080164655792553425134336947483043340760328433154552631535810887639184189232383556605243743490641595030823380830928203940035158434085574742520689211069069988495322876251754128159033284455210390385223412905769582226150695412497157628818829399733738081974570862963129730589937298550417775261738323204286401317600099094998256635533641441144061283604923759314866447241706785955991015395201182430182500743254467617464474184902688171061219870881708783688044457173126838014119449943017459073174169314759010925696435172647319343259264371199217596073692211428985299615454065820626588631172245365960543692925919106035078976024750470119959143740127670992011106634016006964439445643214318745432488277465640270189936347278954642516485157144823905667626332136714947456315849016895873709160064042026120452853390804642923421594683516252224264190093224148464833394548545499226260642551972109010612217822143944883824635497370016124594554732132103245130241810758666214693249567993925479686221585617342573817213468885032740284219109291284057850424062690122043799614711734339335393913283885543724335199599367422385529863595996377486196827114235459423754800150517168993349010759775093013853298774792141357052721022680053390114433546449045494180667694665754370688953567429916787025921718689214812403218661997820621156699513096937051499744888364120073657827185621711525784146947208628322128687543334251201435388606916878117503559573565299127589565285545536962849200650728736929794252959600917169124911586380144500438023800371966181285057802324402167291689517820515383151294463161207222049030727315623388711205216731148654043234635741366619078175318978392907836914538876902017627779335185432441654087149143413223599215484367081642179544523619513348515049930037353610760320532986475584864336139394957745703443878422303673415296586003338359851223322819513596534682449428029943747303408593967216069283443964855987440923149602201931591766118169979135778920240961542689702242314568774708839687747163937573846214084534075989291484490584452870452383871987419229765296538309294383940856277241287205778169259525069480627258036290260006439300995481608949611563815555481644079219212050086193655364609272536506294829646351305609081741829649321501162491746162925395789696160675814595729472684063602220993496023876009889564523708842770655778042494204786229414147933268970573783896493355266723444815779909637712867356278354421188725957914122285291040892367902196283409409839850727361047793006561699159093778420242984146441375104559433653773410151487234296912326803759687374270544484199704969061676185892717982648553701376