i1 : m = mutableMatrix map(ZZ^5,ZZ^6, (i,j) -> 100*i+j) o1 = | . . . . . . | | 1 156176923989693232377233409 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331616256294913 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331616256294913 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331616256294913 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331616256294913 | | 2 958218199741026006463782499109574311167189039338716584370762329404496908328454273275632330108956192421020390310297862051151199955754620905328206527769118461715739798499020057861390182559043485557165978144007623491435726666077037824674441126899729838460393557271248898 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331667795902466 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331667795902466 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331667795902466 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331667795902466 | | 3 334804776419367764925262655905182427817665839630179145904983140151140008093324346500234367644484301970125075151208069384377043586452627215698522132421909524414310121623983025290465879167038511888061658706470668951680364804233838359555144950438905007534936306780457866093355406249490257464566996998180691009306330792038361883148700725752796907196762358252989423271999221712266508383961575268465986739976030364866072828178540796757871102660498593912273740344384938903924786566325408058004254116162623657482755929373175006326374769064186747815960978904679968701587395432841035218785641146760220499918985000728947277459003601927383619551810944661295646519170530028456952666330944551434808982930238947147152433599418741221930733097696256255197707763743564134732213878275864070774962435064582546602940596933868977590105200400643876541760980951753240695700163727335814173444806458834298144673246942739969739124822360574313751371137672931297935213628979045057959648710996502590133791811141870646372761763835989540914781322983762115033927385454198624286625214198211153521228341229602257270812541321496532332018845745977757755166746468078325840140052035798865021744417042736182017404253994492232129669356887447429114950718663474876442063947799563632323597652758975642144714670514274401249685572657099610771678232998986063781698397196989657877132991946499900612036456214703675259806626215242001285470449616784757676848085143051313409151741927524008161091193836614613076941556430645196421337799088507262661614233878423918514506475057116125153903536838208844829332365089997407143325544146259328994207001001498909100956595619379627225946464430004091669901407222401963959964028887639791911074738210989154929046439221229616580565723049275195988682878320763619058849955156761098001462200860886696717393533609600480718822948833697718149314825955266638183081100678073803957347524638096301425995926822040432580639626849756191055007736682676634876276061101302920132832102987405566264288525811162253152814299717617214754076182929063554243753982249129542116385648263442844657753662436498299780748723487660764768427178718280401467058320159827600225993821067650049141329264194868671724068131957584173078677129162393818511066581801359106117061371626423456049940002348587221923823397791238794112909606759017865423470095887052287341314382746105241843047849564029024221966372114199291023457355030273737286784482123026622955083185262596017092881057556298730395437017632443227062663903960317128762111478402665527542768712459929830112336751187076084034576559157421136577942905612417602692802964401969138270205003052351491 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331719335510019 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331719335510019 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331719335510019 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331719335510019 | | 4 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331770875117572 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331770875117572 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331770875117572 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331770875117572 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883038134117124628974222905229260388132205136637565824205005454577873493406639715798140612022982068542427820395952293409499900943922347457019931050872997661009134853155314223436082122350043349595775026938623308375825476772661792605469276602044962446182977165683387306204873593517231143522724719929300508504892314629458540227604993375834106463024977053984925167735394756781915668263202683289329603423329245243388457648095220589259544031289233916014654696054546694285132632567059736460194613840384642763384020113335122761935482584209653758334425290201567435196315473967922450077184552916863669499157978594832068873691426345436170138730552228838900060990428746029070226202994422940710202048381202165066606695071985505363066045381595450053020513014455430639373793527074403609606263025294752737747393524482224771998933493258551731515222225303965879646418964685405882533030174630112777379667022428653610660290073381012122543576471176858507741854699468026809149141358830872056499561641594170390027707381224777996857587455548169095921036448580803032641437087824968346239268126751807868368769659152545420948567292454305797391371784280563475928098483540187863905710495566173368827654946787349816630861410446161123630038572668753344133171393975496697162339978836257668337816926870260459819482579531308849185587920267901303148853412256776394254319445310648570796197692373397949444107062841157127689788182142742269253746230859825384293033496871664101053109722104968667767725212028033515780744963383384287310729202727024386199949320530945758824719357679139973635804197227511373246335919522947235516255166104166172885920665364469343344953863316216896419010851180671678915185382881257094419218020600390044328834201948296072605577511248874031967932670689069792967474734115931832815624826536604786078019062867213691258225447831767671856973017313390602808466594950854919026386249357991746174516209468866395106753076897920372642536069797055059862768469528336840446562675944207410885765756483542893619823004519506158687102217618756001031894807352694590195738521233400745500508813052622713521858787700202029843664892756141586610372568658785670642928175952499458599785911245970481015963782984199942894133405171585195265191676199985856890445106970322660955289750009599094757015109466152473430163869859950009796424539359615359703658535782188885252046896286909089524884831953697615932608460938008682316358079281497289418705829058843304168885265052888994243180224827307676486701814393417399671124916095820502487936077317551505321382252594107094440588264319669805816910795752095147598023472351135469320233530034988903940862703750224671230713548849564915936528998400445177313943664591306971193052159667373877171539386030163618998308225198411678773698806612271271363697962911072117251927667132782959570639227546539882840209138421966127486885271111111863955524524417630489539825234146139257151336310237383790909812178909489313488974179918449326640279000740203573140549925295003545626526073713039444642641614511540762229365215110628399526894157684221761449144028380573183424725948003639930536803753794181348352042828366569597212592434664694401370041445716425519769472565684080105397202549489865682468475918805626551053547389183806370980972357623031120374703284962941360121858001545514792096950596588102731411486237444035964116677062091150191032127341190622893254631208066280925676655129743137196689562082330316840395141624201640809340816949297905933803494864144314371116318845070231054456120168920959011802134517904269991662111472546427473649481856195309001149232240394049307629361904939524709684294674632105993081414899982133969344846721604347788057524159610861641982151800354181831626938057683659697463119407855294567749446893935795989189113212974570293404615264083797163374500558504845344593159370331652912703113566429830835778960728536075927494038171574112985730747062143638116683021995799212119322477823765119913570300375673790647563562097031937234782874451346272493960141989321723529678191854855464701931388649301982614631523355645660282161279016093623164460044895434094750747099582930641157008778082587906438281698725401633653237218006400902905594977214988712405212407489606251662183097054861313612170507040177061524424285501319789509975160463719451727013044805041079312248059335058426640445715780129563129939106179176936886482788858029464881466670868748510359785851407183649526666345107468570327033878647842264293956246339342523881007921983521937219795212119005429603863042749174615409540434009088810158025745632342842913956501827626548349846649134745472624550553815531952293755499575299195168567288846282468092953238077407357054764479443515012815219672260044173313720473438507027958971401648092045005363216393850010765583143584537833682452442753706247708537187096985617432363493888048649987648943197585318442425544927997545634935813019691450911403677480461792955932581290797426163004504965927121529430548370649254874982187305670308742865477021471613159792981187400206676833786364073093432420306218901396578630637748465271343290469743168061248401088852334017872284319500801797326971211814507192926563034659835740751887779574925759067614506477499386893976553784113463602831752519253736361021957667496863278409449434180150547708105965677565988077833230060091470101151454613273116204488167361032725922948234519390778664160113186247133417826504512926285177274008215386933575292259885564217098811179331770875117572 | o1 : MutableMatrix |
i2 : columnPermute(m,1,{2,0,1}) o2 = | . . . . . . | | 1 156176923989693232377233409 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053328149184513 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053328149184513 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053328149184513 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053328149184513 | | 2 958218199741026006463782499109574311167189039338716584370762329404496908328454273275632330108779933912687554155822987916152073979638463368810045480650365117345468102912625449489304421928804992716356564106443477027885440467118795621689529291480288256287067145731309570 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053379688792066 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053379688792066 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053379688792066 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053379688792066 | | 3 334804776300967089228214581666728740962167269220914687678086969990705019380857359313813021229522981180567377054598932447710605281105750853721221655829126593821608766175188516123548196975667597187675987390521524114151308294029932689621251554985974819821655929273314475384132223089473732038029960803807764908269550873559001143809068290526760237360332436425252508199198209756693162498111750756579299168134128041869963017179527932721834342697584362495699631209485375918597260317453289266513951531960590702888954678403450162797223348631334097704434425255856574128583624446830291617131656295391279482251218056540429077764657356812508563710417649941422728145847141977986393065320034576705481725115220836876423697832785499230269463986950126575183434940729234891259095444546064875002413065380464878044562074296185327611643552930939425737636251026390972505146045743923207967910729088958126496800847066558977792957762809495521612099077830148214987860749678736725458991770724174807725452106220640623197353079775535433718259686715397135656836320697644529474511229766132987214558619788907723353794941153314686847444880736014338509883162398847579823651369166922076066415950068147404637074537140607568609199191825463907787928428390593417856808048751106929554000388481585991150106505944744258113702947912609126470848871933507206496869645386549038905959878679311098387041581559143735315125819021393970760425376889615962388867829536053076265414634670263993906083169521863290613052480826612245829748764347321734753501144527231800827554381742462479257791161940979966129522764751335921125554317001147535124621034969436193897077048707090386089675660661604662382275914907553913978588256771068320821773440128173107122754868185527164531531146995738576184233456876624922123810582023035099154581337780213404297275754643779284066936865151543901517405591943191018732066941398446291083420914491436532444630799493161732660752008440805920447323508400093655627074372558699054517055867979733033754597431936597686033742172435972039273926040380373124340829828148236296514811154788131646997775634841945367946338966388978552071128678674089142057894027793564426545900715232989756848237788895378153703105555617941086273288407782306905012820439112738743574895441392631026032971596240274225817345419971181399401228418005474702129303810126745276077361778574410761552851399294139275143134393716834470760866908839579657880127032147423800107685277573069472486732273268998090404966530032681584257412032529549568091273072000112040793036059449536712254575776842293979871585287735100120448064537865010886862809751243321521725201738333421571 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053431228399619 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053431228399619 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053431228399619 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053431228399619 | | 4 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053482768007172 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053482768007172 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053482768007172 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053482768007172 122992247439183680790911185092278425365388274126148537539277689544015614211582671066492389735650439480856203450013564260687492637903631025076719398247678319505830838572642566799080315412249895080663939889678480489870386874127338340771849672569416707754147664833660668386927229307986779336820287445848004715540265830804466394034420991268667655473322989576609172597517381091418518910762249451183037412703922696567757404686944228221595476479101838576836405801192339238063527333198443573503941444971278995486566219015192962330801630741010621948649594576804760343068746455442604457275898154959263399792025200059502653044912356317297655782778368666485681934764869028852240753703660974665384596738385061823887262540429887446967045819464177651965131716772466901848231538183797415576462548755205116199354442198777922370191378931664308517223526864689205215170372092991573206533268268382783094412102457899824108248064879931293357257482880233122917534624808325478529703875218197260073917639126938847314423075120651533532125049954454684948770357364130434332000004687618865501251775129329706201509011131996738816433650385417786882839906258588579813644220139102846326955469708932339591671383534074183759270573956856523204965085935271215071099298717051752655907039229860278746525051252155388204409104345433359022055056598356728927771016510520562235597771096714901220694983646612279174810120642006443496917203215848275940276461890168449530839328087624384419160507629265918511306795402339453648941426236512061036831044297881412273885851527054336805149910199032259790364481619103110913087490339738510362569920542031542601837184289276406693925012039817296442324773948629101444826803458209441195148989903880593061572256533147551940362352255935505002346039364433602876571914801349837802148265203131491734451584593115810983487322372862983400606820725163816099902954286576218907469715254899077878063166585534818247053755840161454791152423103430643258672528031884541311297801262311996103408461573754347066318365350244944938494128640887137559987983124114448051594699808572809259743324132692328750623347634916085744278155157349634731242390830184401907224848787650936764165171773002682950833681839284314557777403390517355344249258049795837469354694944597432916362585336049905691956409321610229986877129603968341859021249352384782751770369179933496063421581758177650541969910688858550227429158156360878976512486326083417345459850619548495080688719925788636492594329494736163468139352623851184697625112448949563149770051010674877145961505950143526701973269553653685760332312216527565660612100105616572609392359079896938022993695803329299624008318462358921461424052093507499918760680840175572481562800753363015045752255429244472716392444056385624551355011674185306831211412073984985678523164939457117480407506347185827225804649563364318502347110150548093393846164252953590719835256400877754567118494936662017821939577051319518071912797463098112362812555466636227527051391262659886393743764420941133387000025452289327177657513109987156804203954110799332592202006499754902589223180128180949440070518775216740641859242901698989294039890313244991219326803483574725317273515955836220571877887627213505796687076306336883858065139904572928465711568728271983696863457433315448884305708821767094412520723961989475604322894674507819245239700745475066776214663540203576844162853472961176440320861962923449763720057606121024898330122940865307884058338125544787218528991501075533485449104194277614684061104149671557562085964615186477288003535189382471976032869885459452162405095989668532677768137140342258132383830335327171920765882493727988705838015507276512381803384271868592951305983989384495918691826911997295505138463132256665409591972720552410184417681181943459164245492661437126284869597597196874965952899494183876390918680149791963039841569036792778852877327960528430335174046012229200277415387902308592997560484051677365586577553748371737732106080972239097860055739039063212964278241935152982149758157590502244014062391518525435255415229528567865444139400918904890952910002731028495801319101176603851906030514066830521629382221332361962949565629758262848704420799827073573981492291744524636657436174438607534326340626837288617257284431823006352726939213051092869311534541307124449437233042257234913609608962354791810913280308544811727381564658560771516793426079808728942511841879903276615939162075318015494222960156359957442714344251777606419049043791979881095261042514102196441142758509974287996576463694251833651297215904166261868291976102524240109045719596334289008565883299879243381853409277621661770036988075855005593725975466280813517279580665030259502767593839616260870590737491435731540619636112390793058082408546552748099125106268893741995418464071647051717576605311747330566447123805575634942140437087263791188281700299566264754249184066784004126030472059503358853701685757273588600063553828412355566226094246913348425643169419815075551496849705426620941415282478522770081134865457758071142576718254608468717044111726370587384602024509835204548509941508847926329539548685889155315916933024674352105948431206728299826376571960730832786288442336102710904048543933132487734681386821867638936194260317994575653320952794921134151283357658776075443174215536853852785955691060691981286844978586743918426611811679503747891569800971705615544401945284513429783633580717847654946560870529393272476860076477636540274132513418413064108998197200190522607651563520141854277512743642230369370777752503927023694808715492945548977823133613280751069913354236241903204760678987095554676813792803507821177318757401450416909856184926893077394226537502865634091386886221430299937892586528034412307388609462195403708089934841665467978026236744485249110252127653793772963285684594376614108115810656657607957983280789732932262918353430284464101719758547841714464239043138400546468070903781083942596594029917922392072485874669798430966469361465326914710013933794080069153547917944455215474305274851882798483883876824973934204717460884668990861094361250412383763975998684954976641073880839348670424723850069685808161276494436976561748492708978517837633590065931364991797746766155529652357752195576366388667288721285682544257852426433282958629986346430934894400869397229471625589046984345645152488998501356086928091906308596639022267664214653014340391899452954094297856425409184770161693909630674510793186433269899854948569507628530008043271881295763961478898790401143128642808812652936781423738203535558513240800641975220372478397072874613689697612057816098417419037211467703031974565535492607495972428145888277086046813635393030050241618501401851773143322062361106514121167922700379402523101192581284792196098636531673699969418924139338013887711377686448813495689663923544480566152313387635496181910142109785276639987475017010742747387915758266821699274322859076331081637645958425647439936760404682627054392331392026371115690900158472806579124420550064658400901950456861462570521516068942496701293785155667945597041530943200189698223853143757669306215288720802627064046485296158454818532783135488072412332602757147491526640017857355809034796302853294896540762324629527263865989238667070071735764666728097390233049460418340910733563066153375912907261363432556810184905972856075233041592952175939114341248234699230010672599421540560760092876506152267220616233052411441950513138952154982163406853661349948817061806387797715404400031061479789039218915757692086596550528838364534071712535452677655285432626582335411740289150508593302915268193301224715489877567474410676541563016920917949300074189319003330677994010682449270215131398542950359632788471386483588486117958740799177033925602294285503041988986219453422028590599298831841958498196108415300579541400562721893849070706034712868094079529582179712198470217218499453649867270325170935351947975601878254890407753796681435718485036646914415823695117625715662941731367678789163397345278947075764442312667865883396048874207589335352502546172871251663814013212696566784424303353809157910266491330977702971154367581203307021558709835145422405330138225572989242289171846106553148045945655860607489199291817595851740413005003481191108254005435001037898113402507995573017384992867196034685408152807402037180104711677092841357821694106705233129583035312027672566668033410717915200559437808558581690491606807349066661888772285169203854108889091529646981329929167361755655963118452410031147791297358054830390285607236657665664710481288399117128618601954077133784630133416256445106127802902396924992721109775429838548237449438977686404318712552951726719903182652454337879371313794683114484893929068291170964739186539070475008460147629757857469726866427262821623078482404745755214159045251077015554162468729114462411083172357755959687910626482115212959117215765299897451935320070671052245224975305209401963192630171399578285599941223635066452190685678939714630812202597735972426015380077369117159660336306597628206997526534444016716589627231279683140560092301295834666976638828145414490848544233459594116060840813552624959196792846102423646295511674939866318656539221695762785491137111661680569641663758987267776260727110374633108999137667393956766417401354933889914625688917229041442036924116603503610905506283514913129091025177904877426097323674285206227349166387531394475610662935831256116105098364603711520311854267208329271913769888121261253647546865123261757019549520343512797592155218333926577751672311940009088710278161030284488761423624018784819264178051014752312795462020748254424522227660440238244979089332788160923188697110918218759920391681152389049530991290042813719330142874807487501514606917914815964393225858827890068162792787960300287529640403814018555827024366024775333971145803409610218671001449910560034443013108892275673270966620234241211374357539691413073830191913366396736895164687376895114709605744688947631270912825494384532336027427969572283153206190822748897828622097308144058693981448600038718483754922804479063350942676392839757388101539951496444405679585649520394107602965776484084252822462517773919813898526770121842070591592506261238035219134304848645250242177763123293730637628519738840210596057975400417454208774047653014926544071104754883798803483247693294204020709507362471492714243660171733506318825942807718295528643957109757777223544582062237954571530893749791947739916661939782173948271769447428201133155532596749101835197831656424316739767085747187809490546764818948443505711725591811610190280725979410703263649756693795596055132192197890716999064024103030401468974351635489790126719277596247276612194881110542204901156602258364797510929456520543121255327029262562687754009029678457548999709426388507303918520472913349681016609714093615247812616686400592595348359474556061891443408373516423042301341616090798380196640229742401489804467914509141016638331713937880477694337640566949846874848088739465809889029137144466148593922182578703784157015025234279569774622929866449553430407682874156636388708589850251206899377296674850554840435106461619389304079375360230191763197856685127921958683883528022707770223972918951303660284290774701234794605168336208276867799296827215639876133319450021853453778339518044793647061697954693860567158593513324544927506840547453183750727136074234962666446470605228375100818373303654539773782704403959641261785268320418053394831985697954361500644613949925401046915142737307660410869935763725792165834132307562314447521928893487197865775833209940869932474826890621538862199542936109560474325203665222204838122038185174584157928873355373743132228671867953522607504365558466192966577528243880358369840651592768215453174502591668616602211234329655359041110650115284612322078950884987450736937160027755046470815489814330556058999534341438362786041832828978473264060268853207736366971149447406182713208675621222854769006650638015490404874899084792179545824974987353124155040851031060522193715541214243447135799676803735631678229187396783619735404275664619636388864412505753207757402683119912104165655422519927686907286400349466686113321223872045001954147329166090908657548913453579436267994624247311749213800437259136563083907152306534186738611695362645047688765749241927462112973180040281324583553610917117850280510895414521744089556475928027153061574321048357866926622879536343455823966345805765780205421235199892508089804213322061280120758981996643186528844651910270101888628164374486660607839115054067689081525375161289639779233079319655293396050427833367496567521940318452160902010335075265319689962047978401759905275256151563141398687014777734800141867018218664779295113935658194157792409702825941226159696135267044276365469339300745660264986515367139781372887884461543057990587528446143560548171101631727245251947988709313517565950056767251621502674174592723095267591191467892382687245677809038312689679195537542981396108673080457320058846890885766457692425683103879060264704241677850497490498751888537927547527663622127250758970114871077328113611599997778211277576644856675653496445358987296638745582317670222613271815866434053711094739391938754704797951092499980602584851057007195658281072876350728664070749546821201732502124551518878219430055099096800283142394844965595451239771893301854462459252850605004413097554311987457761754814239174756778765883578697408470653251208930603098929332378078936393427375913877998902850577620441921285349793484266592523584127073748670553188178714042375197204079080649553801656682502679331110141460730609015401642030139170834923592054226388901640652616138169379868666717958823916676760588498370543140890475481924285106437125664002908888954511317186252184469475023980126703352894095696893887814173693362965526663580891538731900510591246848511270214715171781604954265373968903125123057831807557588893253062628983760943523090679281966038580658192614168310649123386339494833902136813449334698597859449002230618863160483711330462313127162807396505233012461452661658169564644667917122021783609247028796160105824007085154681795480353596898128034313428417362249182138950227144593280225167730888828842028732323900149624111222293896026801433074173094719936004671271766082179809206379149757317813888922266772021140574459601148772909593707490174804817967057568128569509682472320506754833529799894078807157878434944068794446994029124054047613472464662699853222323552063501964785201431304535984970519702724839131675827429478089727255149713774834614133623475782472447741907048565870180705744270165803289506123209733050530383777335946722767859283301361614287456495928842115752409965522902285969323655690293053955967869288628416976943412289695811895853202211867072794255851938684924425214592203173016782736462106234427093556610564648623473282023234627077416569712069733815616128923000406015400934984060556120354883727721804883233949254242540520036829047057536239043926295717404448113361734493232226498039744052060831191470409987835650359187772781293546266708194592613793357307164134675018236326465627092753622474941156617941018706246903359778475086774282996266486566768474824494300123142564748872008023746761658004724502032063571858391409510499570747964112406596324775829798440606772660196310614401979441918626899558876617248391640910022978046743803684490595429551343876305419241152759260521164744690350943167780307193904527647768658644565921254901765440910191956134343347523330123733920874147431365848902495014573076392881005909921012015585595416120292464917080138443859088331808760707275344617351416471214089150437678635111721726445370564663584090914485020858883548349111567964458486725148523025923498323501413620647632767936754700578342977645049593923080134719409916453905162421712120839736927941182075430049681097482626708214714144389848286317575204521528633533790846318826678984609537064349902319674117958231292754510670011676539768920493870775601994697652162913896627482214297127648412221169750162685485836152919809784707557351916737211703415103581161011129563378365165330260396033642547107378419681627545076830122709157892635207852952854482495357603757306005071190620796031255868627367960629334658585775066771164471109922482915995463196992629983950132866179897347712009793742641986174338532849311062483514832703695186349876332909150168146547262251122383488758470504062512919853727710561570563792476374196201167093765579178212106295477127920095880036144843338141728259468533333629995725645034109659644241446034006929380456326767242114325834336038167174306065477564072812169066213076885303465147343921599395447609372948515744607029080142836965775436604136685775196569168815512750724449589714934896014619514093098406526213832664978288019830755063060890717416843921027557077998580004942754981800450246058725241350442549838160806268601184033939129296298817727552843836261352468994585864972388653361852732505334795608896051126609549116361016167358422669930301237563360592658048236638745755354849571769140250677137466924937138203972597060733474126254386658906934150206832687441738814969536766442866169996839129178447406296464333200750639446561192951360648832211863737875283347920218630482693526345049900780622257148207974395950667739649098094113644480410779113930963372823441394194046215119883473820414214278173543186433593895262375125157819516805627102210621957308092502174359536563361932207670866414129308451654963135532790610062658227551759441561280878994379552331076949181255830281484536317535091356380414188122672357109654263824206988833616387695935030976640323401880401150359422109107137686488618598773651138110244661606221916950444288531151869539016562337816963218774877813970975699738826291181465368211757173713393898828799353019916251800501051968731214128347028013484065026737876924758337508751807803286788572245499681192067714799845731715686186320763498946540816277976417339049920530258464103502573213988546751213856137564059907353942448118484911727776496922088714174659238811708075110258138896377197099755547813563226269267876329705513147984698071535041468579740810743869053779789773713085027767584231828249749995628781108909873973288252565621454582984298506150506576918390653633186733771647549886247838522486893169288699431522072179721935031033810685677143188810401302577173254321519736796105814918136204225744989718588616712783794072694394745464993125416297872891198532086202533570145045259086389080138381045421236309345798356784948222138216704512316569768589218611544832666803723620257633922174666226839995220096188112030461407614722975313728470927979360771569768916002871241387490870230563490380463783930729415519083605274881069483686841660113019198105444861261176028784069232767648376493205114443021099331945324306061865696194082266599388704271150599391704102332849583021990842812873277741940694564578752670541022809910007160450388721296795857400347339500148757185229793135725116222997292991970284389056570791664445197088970217309877477879027874026113789104865799064062899031985441677336332976906216263508272577727817770575392465231992387581852734033504947853279156821851059338323254264380523089400508390420099139096710675600348239610599297059591347317636251003650226345340775454521643479416105631226312166512737477412629740719081905355231536150109311725180256227834690686226627641410069271708924459636533925384243958039139012642525093834492441966201582012167080877117859238760574010917972383149897163645912112134264309570908422143515382361441487097060984607617614349377182913304094638346312778593237426957908648502021240236613541370099316204631518489768697421582117851058676984178959990773258559271515683124054816352690046234766787117330293177840288807401772570699138219527557271047803777802429212364680620622235754334163101579390733917332108111463232245474813581476632412820560350454726469814145554723253393889726629372097435602486387739540345717822635148175723419820296620502781978374375764226739799122532619164064874483195984168586790206130091302710318610507262061686014582252062741404445227091269928001638794265939478113805769507327434376062842527960199736298925553306978894515532435458600377298639204431363841397799819398814995289588156483195997496538723433526089005675571249565823889051603518033093859452332553385635380179429083249084304233814729047212561011304386093405053482768007172 | o2 : MutableMatrix |