User:Rpakr/A tour of the finite numbers analysis/FGH analysis/Value of f^2 2(16)

70685977482353163918576872112303588639980241011686121508118111900655703242297315766055405190668834764425541028248459755912767856483978374676367944129008655913983098969334784425450980364924871548377890691918375307546173875102384119968835629575741694773899138768872873926505947529091374488674092859857334023588405013255404503319706821912781551527508284990392697689010578637145874653707466865955747289729087085689763696600444910900336560931194831630545152565335504713326997365688093978023774038464547120727379504149292756033573342295816785076252945559824172777934443617822863045490715190234808773625258874176153179774936384895244400919944544198439212970988141860092070817867866726864480457786582572053336757028568407913103696086350569571402202669722967838534075330217977292139649504214185439289911645269302049009020210185862519632608095941069158875112221608211129477655201466418753077252466231388278253269376827274306538095934708848664803969845695591939705255935263024006303522020917591714993340241572282942029292648710716540216305134700607464488046021396931831867338124870212387458458270073377713328341913654354964809180617236224023554280642929975670988305830278875213532710566656467187060038702429878125215053379564992350349212944895227951270421677414331192239703798666248970297467476518940161847251554385203528825917219357806725885256030228587586166761679766107167403285624580406429601032835060946097080135990077961030031139069386707290954320553031537202879438006398434695085659026096162376165665670318657277820033758864013044359718043772849309550129692695588531293775289535199638010684535288786986804730075286148130757230925004037521674186654227695146048533415818020700798359123391227400176244918021147949411529519501996370258113778819189086497746347455383298520431879736929461517286721791222375387150124063024061892203847313859884796287634030191384833676759616422451294723096115145837833106389712630601475677401487094704537611305435715664968808745828045356314079682682734533244277183573513180418150634368146206375072378762768528282649662892135496204305268996556149454752791014148365208504921593522529822679316402661451191852672615956074120970563305978821196247265424276397162075594885066270973777485171301412766115202239945958188044801889992737241220638041777718910679785377451577577738660096453602036428941204441711907847923350511755599514602159862468191782029529020370959545900868084670661604566011310428400901703305111190725821750483521826207933439166673099360703679039497745492925701716613621606749431684226772708711643726626772319707447614830437141899053914389054292930806075169386129744642632603881565177078380146314339747512266012102638887550724863575017145993444696125337277040323606196509357648739685576135923183871617475934052489103784147886925945426908190437947245907553534347161323612326126205049610167120651006659093010789031231677470310295538250401131969936289489458224499096713209161040838608749922588109892281795106013246991414074445885191257768906055834657597194440077916194030142370600043478842251946168153729887720002809766472355576422458945695262594192122717761852669485400484801433508155423722643944894487736967909899534539449311171712096335554015968310181704598527684836872524348593135784957370233915178763374557066229183286067161124855042520963048150505570721925963940125730938490499742732384329281248083520464296235907700276899988240654541730158984072681054092506755512889130379003218230324282123462409169321757351223302981222673270237147503446735184199802546804642282356422397573439909482972573239688030530579365122005521941771434651671496910781116629994678186263315990941765774145786671206514466575633133577189098090377863320546207638077875256030352538633334121700026399629415258984033588182539640200495087439434690893253639703394305552407160299193718476797156736042969452282760302938359264239472279969407870042575829752698146065982721816669658688427399355233800808018135152853347455747719192151053006830885079935360574403685131970148923147664924850894490378581604386881360035462304435126888278427452277451843039016297379675050468580890268218072835915571735161353861430599538682110801032719324701104691275112533052609349998751352616053910020611626454254049832838774128927870569766981554951403656230832908793011120019457533914844045645859269496390724799156528264968640194406943637053401273663516272684659327798567684762656750192017790648904608626370874029606139040580036172962031703183336577365470436737960053884996477772696829652729052997209308042344745994471485731555441352431802963740423141828426752088852270582229410879278206588168426503683306456241559828600880246173189576284662618086473648178231823741449712527137582667918544443422470786365482378760158804720495818931665701434437762379862563528847479563104716411770571928703153814306756276422928508017714587236157327457970385852691693860529260274959043272008929476859758663161561969505143230664441671474570122630852711507341914958814031863834034583154417910547105683949628682029453170577915132011724886087640778451141548796123929500188702961200957297296219741095245005848280324809682356427185827730936897880366649163955992310266643155399970905715751153087993832282809492671153428813100623045434556973441140108192366464081063648792371294349314460649674223783249669638627204819681023889296571810237463400337923474360696233976141342894649605753173200193528616372951991384245791847749302224946228058474253528651027732719480492403210477014631696511829691746749296827826604181527403504680184079301192313495042933072280086446748911570326850671135823928313276241387343034274423634194729280025631065007003976790019694018905709993689904114276900936014030936114746590100863837858464783399552728035549010481158162826971932626325990968307910721932869559304009274228272180595412595647864116790048281971817376539282686234748130762037744845780980349245599536870028552595745862122922798887502896232932495520382463280724292698921176845304486032115764023819788104031328448413780976578326095504178607131973911047201899721606257259326266097394082210870238301065804750854276909234704876653502246782844160102788454886336605698015909571779502433466693621371743174883065236858705425799525837634747467198694061367935845148596525827802268977228504679840917552476108775758287338076142743875768110286527907347169809295956206601639304146562218181721970111986602228101953741260452674960388868753558690496811915219015858785075233944625790865457726353449753789477813457388180430427713821647170183028251304498458487725195778492388453355278857902190209040983136045022123208863953215873911902039781171610099702528546384013076028549069147963153899314078414693230175722233796175882329008863443276237062118619875581442956203063070724830955615292055875556475710823242040560101483546851825824301266436489148195893513448271337618755082677446523936513436040186051141896561531359173896999191073621325969217779682053884464436745635010427166661963485312683854665121949122478208167113283390170511869738032036329100216784013445079240252888329247814888358249641873042450089784483624881447558911599090176042796769420241522082303592138799073436964860102764659239482114181273978068957438278209299129116761992457151886736102999560684919479786688405938820314572472769288719310962100971304974860014349324682891046256018785831989806168530201714138955572563587183655577765731550744542089609151399666627453649611400459974038200461498577343389403538445951903764149807233811523340220916575376354446313079799916493090964506629225600704053948156934346500125069637182165995338694219279631985481592357661741914262090476883844937681193590801943620521862985208045431700308417043485934682604621427284208376786984972347125414627845806770554427295109039479751772312226177220277821319433641437130166491375266017144340509299353550771362120952725283087557567144905219705306194834081593494430845095145932333912603043662659371543437626733252269440015457128879184696725237687196733492984714591575618573985380689900176846276292748713329876472538862993404813974765094164978329542775743505880166257323140191982254895433220759633538017649316671770249831173754103785263233544579178663214702859129586767296459770468117885008011753780444572228864463872283885189392284011510643142957027508095634495017651952737875275274931690042284567423080883707406195681263716711274220682401625935117072132904775374857869971904415086089128113296530313534030677653669313809046612807535856000820314613254681099082680839097848824060792051828071277179404141971614872412833280892959572852025644787415990622413705954447946204098764476983717700109948980894725497787076916200075558018852711177362212993424516023120236595634561142416302388596970847057710568284809525321912142137944676538415024860644165051282192554657260356534786905846684642692796943455221134548339910167477610360431608354554843298635847237662406984932744784122650649051087946875425695844713912908795264384799091401079337426027797571994042546452285779262628213301858756511287068428316552067606997064150664133384168602421106362636129107699544779949695532923383088613391799387690431596668503473480385772677577372207044550255648813426149280518852503965615456547896296208315457683339400672774688930698207710912513437553121021826014797748982453712685261444337642969893543601845393748214059011983932122495569744541079438386398877068104595558508770635268108167949778457148904703954190264036559416163298939641324271968050688574573335994630560210887782241548797938169993377012945691235422815636325510553111105830612826045960542130286329464543834151249686946355364880348197659596640549702117283006126031274643791628009536066220658113526251415756310184120312237715248105658633259944776059059015059779435488032475835338153820273295843136656286681116129229709902421339062519943940538095527570876827270040904415871571089231131229914045716196375806363941043441797802370779811926698698623050041601539356932725246891741727904005857427346062774835833914480479101830035047671460173433454365124726905049199616362608658938993704633639789139862099686374932975994919082766480636251840099685673878596735615496167477849940245342321055319116359168099139713899392272533450207949170721001355294824578878633426524947083829197542079791244987775426348384453593709474381467487459128894525180052975722537490681495334989239796457611292957198610949230629753527683694001634813145358743143494044787136612376001195739262741414235793138645786566038512249904596079933336513707632632344580622020060532280736459416535531703233925318418108494925197720219630179548467171011697764831402792668945635310532622731680162329468807770606311624370877813758241593427999779177578355754791471930154235259641345554774764420570479687660047873825842136528649924600268647008779897651045453446737859278885075688432354802134528089112333579486123155808302620154237309766935627270993201286862312998424051861328261154033297087955492261328125797234364860043260970874893109911987917195059335865702458187814040664226336570514691279295289351365566553223233201183190977369455481107785020048634679595926140126265537936993380268681818676846161153799824878880660508598193759326307981867858665931273850785893203929643242877406434672884264225787914565768140378814528010505235712378447604338554463570812246133029795512192936210648772305497309701375626122094902686541712188523904126529114378763361991244357746143471240571014332095868788960403713436460597159705217820752438079534081905306335816785804641637524170614799507007213102341010663820728368990362666957977847754980773403901886203650816652057990572003814578577719551148613417666201669272064947264325566911030432385827880683177781793209124633341146451575213940232146299477982364195592903860021080944535901086168012155476448370976794851752592782860375280825648343574163885607479577202119373173919204663034276838887834082735589736552515431373613748752861691476328640685087491104103086046486238808409052687218048472808044675054965290393940008158605953504224153280219500151782927045028496963786439035763156116697141467241866896248985478677879876103218615870187529202277282381005814508311285370643289167737026467752806799631652911683506713164791704860996019635429748292863419412274406297188681706817322946755522083709761825845099218733447897139915203442875266636059108549179223297364125648205472881874045154212102371609728601386543010764628495625248346133098433774241110766025906760079748812390244198744068229257837840339256024828781025534627643560320195568239871986800203246583694596117918450895297611907314299782813107118088664901168047918879480479850937616115528278118089259439734801197935067215522675038950264108623318753534824128371365662162417253892442072538438820171339126959401159598414780096217203195345439317891066900012624891280489425633960503774353882657837182965101412500625495499327869608952308052710862018784431279409612521616258904696179406820410645829607949826687548131056709307668662161162976629606984837777282188395549675318278890987825636174833498944366701012215035686045435673268038532994758594718927023482895015435879286838489779949968867580333453882758364118998831400272979300385604873561212886002301638902046572585626674921707525228774848374335707315489406631774811560324041260597765599587468745649255962848330062886432457439305029125627054894296853568353525707834655743054395674766830834824463137799801049580189778615829889546519371656600951377087999437297942124638928704171447806961799281511653463911952903604080170486599337469673596913531672350674687389849303560612911850778468281425374151167157066497604934365131936039449326703413246331620167762011299276415697861008784015588437610338277482425123292385296146681681663471324261024019390624764625165979766399896270023622060902971718225413901892954955424151134959714217053856057720689851556854692150414981209676697976992048250046324118786633890885170299632189952373575402491529566382425970416839757234180418793190758702596443112558423708180557246767712600919111011497615531608867928291647520475188593690635411062950050159467686006991697100778759703076220545741192924450949501156438724784593024896444305849486102127086894255025036271204860678674167194961908508507494805681937610687408466556827528372886042840984182245583361252476138147538152232824739729981386411533171859917718020938189994961870476009442176746660990821109764432537462450897286267627622492862019145014241392704827513086123549790045069289222840654973091699591433259317601938737441874349072823147105778601116658708858699591149760503389354381735910425892449560774577359597332855488488518315036268601243791114513930480094373193521394983714072463523760031285214907431167165103628846184628994479204184297151376961062664902040117651272351856180069174986550065230904133385944799113754470451992952640891862746196590413508659621470414996928387328560350010189856250256824272348110590671969695808667013170391901705193380793395405498204525850726473498992112963306680312211983378679665933378430775344848192671618727592739823091079594536181150974434351796097067027040582385200318342030215299941258068526342373500098153544239396921856313245440962131202914277053609226566077286346026814937519415093916311549288195400521260938665021382069094491539112849126674153425583449947326370739541350950726785630376794451292276225798531183920284717249908733351609757627407501748197618758909999536192405829913498672346807900076406089215428304478733043116114180614358869819533939474926133146321105772728993311313253275921757393593080651738029898059825427324129814842202544844694618287268571406991020072730597045569556953139911335550051566978708750859387474688140660505065571766656157279705846043491419788836845518835993501462813354007862963105223854837087610661140883416089944332130843375324701041047201512418035736200326510738505972324887669679703383407062271401127295293960124273562666606584444928835160437916375898428089568599093784796541682926662191514739777738804416830429481216420833714290324151862293121267826004383231479134031200786765550243490183635741160838478455689479866139793992419532746066460097995983764626290322181686634694417927984283704439058328214724036827109412974361970412431895203215062798108564202813361763075119849472801945219273515532405658586776487440068757112267024482684075346505682380413559967379621170430154319303493885386588233205582661131456703069930197035693830536128049444794597231708727466872364946020021838296851572617490461327661220556921510003546415454072358222855180727549461900815368101159892848102431837248139787074032446970362549294632956045903999979262750448543599878074650141085549163006473575542457876558514801285240518824161452719008723427553888035010207524583574460158690523546519501338039604855973097386572045644084503204536357216575514845201163719400055389703013266758556199838080877405325905417052539521551913940055283580186485211328980582026139779095511816523502853926593952193967428633116381236657518402295743340883732255757951692614954465043856694342746004023256923097373334166322896627390640036190821219738039455377091795041380868002736237184040295358693318563729875154847403550089523836130322013255222086753006938044553530741867493337856164411462336847807733044857879520340412490469204549110063345995183808939902244014866120163605107051065891651901725664191710614573397988911531573295659928085651714018337643964518496602225058499226094664096364298797874007652337244751558356445896730037565855863279834613101751567926385005536984244633496334475933513853961660744048833223435559592871512968465987158549069334989817215345528245842186114763025509908337167245285395829647779146749619493273780186878229923207949657465424553690418916879808096168994627102469610063442242327575782213291427863696477520027679849777043117632900817619023387236343894493379217142603001407091246828987834957542814362051772339676128033022184030568378943957932978178852280527419861779540622376905239049896426618972697532663746503241913349523725469410932842140357880273879660901983590193811872995934540991930109475181693791823097771990300541121411057860405046015555306394284843989972281187326605496888756503454578052021498011332397587979199078090889751566353411364709781667018246990099494393316871529958919669166478007534269154762657971042837097550539671795471646358009776104341938204959889719365272353983900087082443845724057177137783120305284518861972140386064226411573127205564816013572179194301518812696274911924715320751125940577138185543451364986521396354342595143347799306672565757390724911177776172463040386490083250271280149870836872738793076991850331666010970571725371535839750686994034152259370488974101302307728312222388979223539530733220052961753629608791117574546440393403779271101743415275466775444564915118187251301618689638151009935368344570356949121992971957084887663038446706393038741652520370512864941478052278353967253156003273413438523446813590101762664013435600028379518468725707915416084074854277665197119203055485210427970212569383809704285014919576806854132015319002908488056967397442292723478813684866710298489993457140794850651370009238433285019991747466555676097143740765701186307531235175304469962601745257700264463442483833016144992022926845623979780997861720095070226376100299223340869504709056330329101296761992354880177148743987657408086282945259874973698656780617439918482790171949768032248842375443844457915250819025536909615881941658317319275945548671255466710801116280010707383572857399710980476472067231845901398032317015603046913008036748130274596450547996486578524854512769776952240945588126847101206270621183915405285155464667302645325287645547884943711094381923329740551967935715023279569502129199138575966909865224213252818399922004720569671919137525419033563502900409119617938402476143019329253772265219299580469593406259017338560035084358092762784467643327485789085236634457696405456629256038603644556349270690045702301970548086770560402795911703053733747778797045519365168296991724027811889656247677343694996083711993023550609033753567677676039026038402713961709425122354150177035254156946497678209053756568696152354590568688222355495979141391434138049026671796434391034161695639983557433580511423201155644345363099767278255057388312722336370193616888993176330906728233837223186094613841845187461608151210118566747073632707606397400127364473222187240954895716160287039943087130477718732934635721155033772429921112077091983457717842183812938989130505235618869520344455155095883170327582509816335545529393368108096864810164530493645420898604546261541238411185408002559324903062894694719098180628915663163287974992806308200498172553475025279177190780105773666814241821523012082837931606405328454696572239724288276000364276613146180598585242242436352994811109082918312751349699553986267653221475353685155790967269842283560176493915445683747559345264650985961140346665493621470082854251580109848504303018914815183243719399196639266075121663506100765052840028086017402387105072618874281489464568936309029935110966750653411501982257556994666231723736629941054996374407795877758730671769661785606085805429694263349928296321201708112105201468354094911306388342328130492729192829173674429638047450842259823609922005854936889763204756213461554996517784730643984688370594004585691123127499250044261730340509385767089564841323278497984184373847210309136037667967004813180570626924679222284960606672284219583063421075115062999527361827283808675920050284559540809008890238701492076060367790260654934711541911634426006447037928774911223631734839734379767872032514350772094944446126023236018927952657796911407757462576499542268928385960382752893229949663574976945023704777014666346372735242599017866075397188419823763610112009299810830436071386451610868521206951171503061532286807669090051085071566521455969027559089647174972604824632909997021080913749692478931824823000445327971274828538178834303953704476782248399991781809520221774691950262212027911538286775944205886338686087596685328220481461172183438980747000576704613979448980788831095805450210951334267081118323109075574057273001378733544354284583046873005810629432043626180627952733178876401374690990984477286244460026003527460066948557299694443524912645509633156636509953643874498193402344686117121816632406187274675537641431905547721592003158239577838285890504563084180761975001046688187961486219032511644435758379154950564291505762274609335879368994649961285344332111563964123307036176418887589915357433140380060323696601399496408619114802230976818984236694887533571424650728693586557837563716365800637654411644765152070954684062648273997870400603442859786904449546518948308368894276943276456037388881452835705594328834562107927059496195355117248700752525911513552153916707552634821643570502949298275254919957784707511511288784975174984230458609277644319960468466922913734382681695869008497282663921072071522826427936580293653009330380471407164293315475436449633176620827154132233126219853102003506021485087360597055814734002073257943890262691445677071769470343724398465491328059474423865311293064230454167809077583103124212802450942133911442370825565245949993973124537150301007338331349411484460913608900083881390667726607235750199577887448867216265993262581149405526544357408371298741048506791163686144412116906587211248865255324349232626113529990482367073259108788178648514718083053892058821279216540735799196495256549950615053172498584078360591949769809534988482303857919017452556679219231845698712773975970338469399866074148170101111114627498606958280438103034173068701599887278482238257252512467018300189574930174120554480066787154449594681102947384242121740626223214248781431314505774335330980638535723533026669233632213532139300977311609618257570832041948686573666707457277786295235089628319782719519456478743541495369673066751682063385776008565716598704248438600415875883455785764061042370587370251990128475019530920415728066708530934913957634674928634407535768728992835703440633950593574392745639175725510540195530071851546275791583060876341773163496107729192010168832402394268979969590503695353304183368521436544650800325903005795356491412241190846530123467509754670399264178680129525916129911757247864202501922104175273565664112789489641429910198507881297897789022576810788160541664926041152413548025559140553827862767313238639797893881989431988088681022196122169362737843628563969611318948703390720136821278652914170839177403810302733602979674968046708085458472444867944383769340878831532445703392842190070316001490995619438540220295621689924901814664688561614407128719912694558626372944233566510697219398346181020873134243375940970456059122120511516258699703654954048349240892737550147158359891519770492041236512779819365657630490794386600950146725516234225297086464860732423904684307651066587275989338689789754077917086804346074762370398793057923261420325784339432265819307237457192383535568105798643106139032972822782828814544437239521693837128512882204907324572853711429437603511648453109506745898558530497214757432297181529223305035999553765410813055525497245233403663643433515614036318779992711268678760518913569852969649044143550706162838170345938358881470973078094307096219984711900141921959477533999890614235308840033404422946569365284756628638792406951635833159563329398103518081474428444705871120011167104065150753747246556699745102520449218864812881182955451016460964756543314413697923829211240860353462516469954432227684951128923663900087407907967978842707764635458775650969149525186865514491789741739089991582731763332031801802698127989151323432540395631127165021274615869654948811011217429150460692049272556307186578659827130007227425334240426033423180145915158589597593815883608108831122629148968327813008589316349976477079969653799691283615866700484461649076169487923208204082849724772540711529910469002682627427365572105143988397825983361944462831834445679181528121777219497224456425047092129939016447643367380582242432570925968715748435571547380636007673720969673577443498295704765296910934989542695806673747617143931851367228310791563517487718242195569327410511854932787776381226735898260936203340204387352376256911401502413833438929841072252451764920747627245166939050691601826190136424316808873905541832358346432860324521723051815019924906558859353124571995970887799664529610580500549380970192656961241210640139856148689770553459788539982177710197299403323543245135778755809938551296558948788907451943972717433685177640072869044945716877478946066631585975697528066677618473934128254549831508279589357006189091025192731964154706722354830043319874066024823343038585141932204611469555518267265907053208843142648556974754572858568888390377792987451177609387859281266556602957106195461013277850924559685461165394789902204777895148600269493855021022364884134121787253490899520285251715532177564792757438119433421809271083135947552009645651520893086830550166924740749744482185233331458322255512061859765075455765108985410043669395476499687342761047955387666993999453302855768436146691287081244230170999546117563401593210376087201013644666517538290411194146621885699583845637881744909429350599356162506561893885669213691277645031227859219433670041908244078909685057887626064245225456161991117447022016031649568911542330744957687575251989495560715565143697080851682342756711700986822686618731021424725273166193426755612026381373625212306857029384672405987276223408193633674971907102671040876345746123347141458794370867358884540535909863928691838601026120075062200932203035551942902817497013264022308977142384308426161367973098566319582643793762250808261232252967128647888753711212643419111011290128424644876811576573829675876406393811772572781747860107866614914132863555348677088081902989282328809635582026383151860148166494728031237193430383707839854123755784795159657087454817705728286148578118163135414713886032233565570338542118084518268106969124568009987872981696275653347698164307670676647464902700106102248647120743417095454422624579240618159300081851150532474964665638883665705085584902484045553118214513188556948139120090111028483489673902209743943289141454761454382186679856791296353421209893689940810384370411012377651268600335467162689553930080628631149471042672040542698226143960912380040838696349200701784063126861927297076924181102030446476182606888121200373362032338185037790739159540066760136227188587177634410821033680273811740398113988914088945921274754281182421949793809062872879997855825582483410623173466883751206875193316184688200468681992474040799573818320351209974694172563049500492598511474257268992845929793306036771755274517489038868624216412313046115247973701608867135822307521557857296646886030492137620871269431276850727024900452505063264744338192769297692734196718687195694980567975299858200654463242110435365647842415528425253537740072783305995604075234521468375639908365247160824828473517501406885442161893751540017852770729214207347068108406680406929241862907070084337977790829364481695751453306975713830723128319959724943052995025598524076747158717430622592340766863121450456732572403403813717824265509848782314532542509485178050157202570999952792256449449929697596093953240995998036181915268942253497786779645242865309772747548388800444141443126580766959191533370278582115623369887851918009192782565269872277967949028858070855824611292714126788725580662642580444713437262288661153564712641261581416095817769637721994216832618139192740690130775253848380142202349507259282217571181311493082308264167501404947550216332088782071684845894087901931812466813265115721773506342853251398111178001804217048420337553306868413193811324068481225749158837244646893901507099722091117727586069893578263826248337720462628553118760656231308123518463931896933760314440709847010354410504491326381838363894213172999788052796191686078054952462283473718034522298277077569438736896392157013309932193555280698723957303560682489197897927750587488853702412156818173044969838719815678233987499834841872053697267934136724089827520281065212709554202082272039203098166381420879781664494955390899256864730126445121861241644425410639121455391672960366994858358176920133455961140188993167965454864737883899809089725334441290238376394475349274089662249931406406331681825273994862577910291348337198431709951605099714904362845428657938338431898389382176297896380669413145000608180219861442809990165023255532405527282372917570193473829024488985852026256221822900949961928900808844634144406123216878370917332653432833853077789238889741848054440723981105857261182359665169282936196277319097690831610765991200376175250031047780935559833242323192676517351418679384847254773630984231042211481770721979438165397370648616094944239980599539913586295667831201640340926592794418276814043811111664861697763490560645568418389847411011547672686927507900583478943260016095555910351497361094640571406029031210586922229060256155352536154013871231893938278765757114695236069620137690213260655127183904633627357532228847496403209176509837431853136979391915193744040243259092027492035651217891533145794135403555581679500241281848160263213262560921603724919180226036512214569638059485539091976669202850642692903549550818405808757222063279992428650670608783174409511213782492018633523576609683188361276226835512291362302731871486435482102317190488545902823740922988790693642338235842197336296738043098072342869446163551657784526278565018339361626760777933218465018078473684725891069722777182761065525147003495846477688712108868825980913996686114345261557075481544465747500663143516962464035005723518372901414836016222778778393295512687611610422362889179269040639538883776831188398820226938612894589532649471097439948043670495670669641100445206423492269006148389090039154110900091822857573986991565803239175772312636210052175305613880811499655008697798210240860859356696100286762135847906595599165171926049301505601021473343578447335613735889045755676915245120227879100060693417677198548887152024756187954136620391791697233951557281922802114038387433565869026214706575745973993583553156878355112612422805932885104725354945952345687688266789957568883057103247005988171966891894483363110402251109349728028217851332904251741775307688875863657106916994819561318533304617475640701016424791790726118322996872978380882727328301559981028447150298710437183625386103592142426201892893939273249002300169932761019243685107394569703640917261089179130833595976442162869438027303637265592832526111904084075942179319406510303368384872114438080054785293413473227461816634580673644433192751928225632794749321032281839278259491010258238142835003099085480114672345231319421134532742123761771191221296755006771233098920912831475832564183005180910447353645046105816871564917343317769327299255228637670890548206651100425405253821769584633412607358731657432747620926973045089406180925015480558763905118834348305765621472657001130736153691210935745107712748056410272337506049528154826304818120795829294727961506014619036282676212879816747658397972145947069513465932120108309034369246835315273866853415441898484055340034188330812381464226721792856122545782820758861620716444475590414230342315833219440135672895861642791857493210428157238312609245119286525418279570328234693750732121942752862748827188882252798977216129882305150948633124906807357949379987914275123762776537491074557709337158317393821352360314582241286121073296828706236470280715145350640134740458365388268486466317264801649112331989520068661750282168786555979072559797666057752281493012210162462657698598476676023043423480195033849785048416816684574494606363029414373054449757908209351649459640842517502277556759654997900201151951801785340415127890651717595520071998239560413221991171865375360697652079243864860706048508577906829226651117327228300052504161096119646415299949127532385305221939236051651747775735623237720295096447027466880000730158098200745361349305990520679084366105743064215922129499407018323355658127387114604502001401305901707331625651419596532916335502759515975526130012363916901725529252094236183088851218152037461185909827202822552802577059430318195320059157011383289066623724593199200433788724932435020960308881399551881349611749808244638802596917096309890146546955366256992429967948425687641720869696598578420628349370952203667533297492354197687938103510615503832435218825900096113610821652760703093580357139149666495580418018006803595878691978429043077668947193693898426821873948783446107321008151069656664674687664680268280640349368361208875827800899428009546269647436847161304238094199625903384658977487269165566256251962054329169811971334932120212164877106684383905111843989284086833078613145604757906128972256251564030123774090718921546870508270632505482482538778990285728937788905415578636117883715859917143842945822061369587112189821560224941895343621611521335158698518727219060736030486182298688785875414730689032132493472680709279679219814330995952068924240192833395581228447362876465824887319144585320587725995101771698903483718139308669696623378489009203616311143371034420872662053948404405899101308760285949109374104457648675312387979063775757188719357223927666690683765364970816624694844069507686380969057223241343412463256843718405807283629858562278666660484167076706355061530650054287712655537858652143960298710041009152327695346147439517519470789793174786087078994973623374897029961047167400259750698469937695052417175380823483281887912557141724672964550224670995135095302584586121200812970965924639375671450284260181525458684053691811558434357260092521272602083764653389766296436328270384440714052027795463034471152703845094060577794639974178369914636819010043912041978279637564092147696395463212306663173527022680782175894257841603258156381546937109455095832548325400721362255723804228182361044642924123035500637759381268436511371642662270777178574138961999536338956261856414524758829419479728929979018956260928841490886894055590736939872936832652769143975548942413509791255171454527843787682960219025788786289681801759791852074523045381146289823609362788700229125805773195603382407866111146705861500008803628250166660623133004315493608048542792282244211894791829553879886384389146270180227892914589124926088425968344140125267652412329490419355237396803521925323546444220314919516043078422618681625023698767123046475165146223591059291812371485899462415104355046004155630971119870871253006235497582424825228467232147414295882676411962548980639860512128569608484218927104883260517957822292622243643129954888290310747062758276692026822286849705009830998439248829142459877456134863701745873401499297248842148428809096427602070251136465312673135588288822750861072549213281030145855650971372684297295660863797493285172727817275158173759870479577987134536071631098758484101430704506359547114417964032441785584138649677918925200869525417736117158907677754181749607231616438099224951953012069001954551786779447542672831885889637395136497515378365398770088205481422290070063872064337127339515262960534475132651401367730630857675534121256923162837306477429088104734065472461858016288158737620599542582216456133223752187676772288409359442959398438252436878327939580564959415392131607523251659113028452580520331934502444129029113357117778041142622123651864310171338956880445057418864569497684721089441421836527925962270522583321980362196748420116072924690048397340139067857072895976888224467059331860106892538824693362131429224714000160036911953582345207410238691857497134592764950615134170808873055088685440933926046624243780849948517747288201370801018361789647901430596967675245896699801348951916091473751516495170902382267941368933567861289175368573547148509970062497137997721257337423673155367905405681470038699357044028215600106479723472390667075081864109469735914352485821323879893358699609181081519881743304476933201527649178075653272304862043543798950867616074681867932133848840449370699969813573740613638940595664927756366199457775284734732141260877423417605118032251104585202269657069188289054832987337655679002829293257277959936271198999246394920105020477795353983785296591200807468813657556981665978544668564559257163118046970456838053307659317847781502857378242307746096102613770169194576069515692476558801762846177110850192278249524076478146484032546302401335709709613314320628496707748821186752821252027320019402463216319237045261286835790514949096936409389270960670295162261342471460548821682061973928479734696358668940094845727611385265938144553802633187914155787906928668813106729598747423060747442485875020393208670872476800678508983958023539220456564194541033797429678541320543650131384669443438651170148665037091548138777498027072688443159150100239835158334556786854273329082211332035918195654850414099858546479459542967900267918765063717120428962316014501040216867962680098553608250509562225654087321841681087438776369326966646675251554405336860648733157963017521389638447597273426874882121657268233404564633634561572309712848809450796600936289377560849162586615027746910240210672039755103952975337228049740314688967088881778315242440086778191042636921243477637719643891286064224708697475635336360192461938411225828373548128826700578241733683688843513620297343507580180493892224941646467148900141529904994669951811709826695537856425868702673766115433312738279931112227098076124022986035926771154074639571639640044890168345422893905617164904541120740612966147931094462184174541178804803291518241466877794796334212303043622919285506985002360381147515558372014981668094606971340649048932067798319341276630558511197222841279132346868269562207962581918158145307690705595918933462580106076227702169995418565576216937826698660964595805392191581458379318814981186280048107793178599300995124042324186076756584476864127525336271861756273302061698327523270126193210485980727216601465869693567684633602808388923635252071064064010937589201279089500968701100569694013021820233621366168779023066625126652084113764947409087570215503375616732038231463469893516751777905648441475277063688668722833144102276545709794348121582068273923451459424186215544555339076265909962048423035394705869572002287009406462030174689210932927990459150052247288097426900511425498934608662589288334480767252796615671847377387731774706688404321691934006583584061393699494426660942385938509221916282838582775718999977867575268335883675700730993983216241688575002826322153771293622143965653259714465060377942996068190217541231918265548097031803459803982682500371110352024890768123346983747990528515111345920335175478229004296117670392964793614250901233642955156276306219007781769910914200435154434260650528753030560849000893481903570037865837967808253641918738167098557303786378430709120233319040945994135707738210753205947006028146930126790843867366876904126517577633257686011514740142523352857426419067888034543743067818460828724705452343412133469816740639113857982674935157919298704649183089232606890973945186171332145709606406487776543898510719160703721286168315454241149090516381233055509679577661303216491142629417343532247099939027581079003723219780978120525134711066736056213376034615380998351877118927178066483529382723483998201473870210606395642573370417405391373859666869460369134412864148682228458946426331850295013109294596217002273566675259556747296043582198795612159337993916761035821822026823006976900725362574860690456658240625204682770310937555827500264498686643853958603286195572874945765673884027786398139362510759275588338577864644022149677989702554937220718749652628999208345296454760606568832557186963981548193724444549956212871548611904295143106373232638904117196720401132580453745634587565997661622922954301126554088705895509756083476489075440147619867880365845267993235153796109064667313922293626150464339009915849148197563757777630186784837941171542815258328678267415993767532364180884022529862829945244877070953537979393996704770854758988634601146288700657456625414920812201697443440406920211103672026105008176944029638887303424210232520033264618405298931520685703855308993243814553090080329862534120006946069037250620330359884158805036807236088714167655288341326894760614851185033403251049156934098630517640630561097971668617907128433053428702298386846245697330659339583128465729119843565602983847767801745469139825909566410650088810265074501365304680642779173645524137646608256960754023875555615706474017042845281885805244401499230800228324279849692524689902703329653473133983220731105418223069692061851262607815179263056337697660028894954398809227533140332781963813660730630391184824448658913740877293330115451980452041925058758714088776494818556481492508733615195874427899517329713886102434590783313622288906206659891015359068946900877674942428793773894570880489420935939033880231684452338966979432666048164807023490507688503949712277613995353248278991166090988810301473371967489821759032630793811913219054583174384096314606435900080129688784163194298976431666758351889724365366131335613911190111008195295274436385620745861099275576056682874593884105468416038302561631089659625157454257017210360186690886585484596949649699525040893138565283324161740128716013887743509286127829610434224593521621536886656481928233814250501937667125944619238820497082744125125217375226357354092585362212476990978082793204258987578842679561752875201605993767197133651640806706937406286712593795370684941407219399053792979288240972213927620613051743247660623473060812629944531388378225449930337511149473195326368756284332950585903899975272586832021317824821430082687697331767136568184499724385822981428689389962290303799570689223455309683672510180367764477356655349356286868898754543285418279078232972439027948709285364206692450487842206450276365250054420833241318684549878272893727797971176629737850893291041084255899005837792257973668396942809139871219213597696478315905399344426912360335421510408541070697333531689207215033869416272664865920824034463793867319364218620103557897078189939232155654062680053625048350821486510748476858320957195300661930587757410808858316939327899187754122779742410928305875339350344021674698323318821640278576960804978298049960789560792331518796445814515044541904011056940192943873417815351736108141064442120074671945836053937002725594033039272858749876336916721451601289273626439948067644778244980780839398869355962395502457969648018183628039009869675841255620169808700342220441941434721090153141074336276290403553491848606350351985526308402049215179999736524384463309447131958333137218813958824085566509908115884119291121136782062741385887920835405742807263567476627091377806405003079022333360820196558406132852529135591792403483035348858697498227053523406418360366693477528141226770176881097148914742493851035787605162863822543198377613867412937742680869472621791825766266401543213228033939852984936243726638175148795166113647328093786344631326055112592261716666014613747213134276955947305323368677356888063044197981797212745573438034527480885463632514436767683906910396667841560986399266088480535979661404340988516716863043890770579301361477210574756622310883783081355886201915043891170174559371666508209294996790966286531689931445958464931731463136598109022705144847157282916578258349594883217827853629385669512032549039809994644972122479707679895703013481877086140551464983092517388035784384816142059207655583962628653402313768864906418043066018081188484794125069036763172251414953698230396485235627696991182331232845552977574842201702564936643512019703571737634235975720178703696761185343965100943939942252592050686741623198138739555255073321078825442238466564567838035934340505576287761795606078350779785078814225448498410846292904046816386291091365950571929716946299391788377482388718158969017703834761481313160907247215490024168424796537577467664531532133734521940955667879283610907226364861927190598865062704773104610344244392959134116321544350597012632892813358166497744303264320500624730753765778386802745868605901495748707690876436079672875732013322094665034534341117637919957024769309413395127023507841474849191720822869720355820049409116318116582339280424333012404695974945350185157496497511880661824799070366336721391629617619913462327572916833187389785096700476543310755581437838247885196173036633624651394142904253082159732242438082169582559127564310347441631492401336187355049803329589670006587398242327575085650287059925279328817929058228812512015330123396906082633279058984839580806145402248265587477509635878428213353992016789647999033736148691662014746275327028176535441483874399601766026251050987236218257509800092248747413442774775758099449905793085876416196180649769148513518309720646069292382479068729956940509876353493408418392625273756844857097745699178021213066395856584535679479087498968909015994828364752694238841921149136627398935513433586031885809303192922986818375254625150051527303132815421146509757284423218665763945238394564785400173410091585828243471961364984645850078253144831002833935368002663706370965321854132522323597597526216014147116027219915267871879814460761926570836533841817937234032159259094909604827990650927189821735606789944918920815204628387860315715722921724740717699668972517561970969724862303791720455844358901699264535426100317274631141411416777752409361980311152401121357629795037510749979764028366574853166418306760059873081146374835223142493170499623203753993617401579530060922567591355258588076486766017174287763494661169931566023400239942188951483799666106884093042694771407317102380618034036345538280715780836007588423111190350177027801894303576522830026969317774574932232190297816655671405103650015169052390396753498391660175898768034039655866080933305980519877434500399284933063912175946353956311508759764139246106768486096338961962572619714730620095575757744351529700727943654344024969541504684760595281715141569863634289576954585966907779868727153452424449696225992418304744238111354019614700734055300866059886832122463525042477474914222726681419017583869628525891352490543561780805762899574435790109921166147806891327399505122266578738904195633955338065964765805196695045271800291787911221532795552460853937040170673410602086131557119274691196015343696898276337232536556252646240439215624005191386297066591343775306367542125110142687608476078531733107695035091602534632957415100553604776770523349945220464264165065084580751583382834854300688280122889407963945932607429972613415840557811006817165277390736058893132255488910318095868260229838331615081229856588564267622073024464288917877116326034459141227574100544995097339547923730410980228901548522137258196822467993683075464750618967554330412096524190971635534066446722763318332958986599963541692287731725305475457515884130272637430428236386631014269042618758448174994508859355914801644834798535900618363189534751387956812132289565348143191808484494299946091784783760896290116479958892982815845670394243029299358753456534003185220979903461479560116657276647591042557076008896163775158521928726730502112683395237240461170836236583504900588070090961428330836574296647332631646409571509728460992399617693059892174912854757453070233980933934591842052221328354169203820445149397094236488054901789845132645508812605686519827976582927247633296259416531308078723381092438440699439128656725889934126401355354692166199005538233612226108034206751883814052800291903457676711424812187673899592570342848958902618731094268691157262607889605073165712435554271918351619927073632036111596679009206171432903229713870346228476497482448834355687257362090665594340671562865957862911558574195311398909704878831340653715819810849812428590460755328758412078876858622172483026597405741291441701245849604441724536376441452845085519280434069401231455155424569705915409515705497313213451589389951160887132552059609399872470760314986699784942330001110613171151910855994217101054339662274319089077158954594236266576133767711503105558000182009400297540364899733498696397945640614550969652196891755027367593411363405580092831274424298868926905080959716777157080847031413304894646534302483580535854175271258521904443042479303374241384918104491883131294501847241723641503522205914650035454838903652634434679939177911037500858543393681398572060957868705342665099782119808468600926873363059170537978604031188097843926462247514945321441715064318834523763875715214063498932911031116746968992783860465116013633201475708542107330546180459081995944452171747826078879148474199016515554720833689131609323274559686885429081624477201756206685450139390864270626016902802200770209316266233327894701278224043258289280812738466447228408154635526714665482499999059201062511659031317180122251107782924225878962094371897903630849347507189608816783592751060157295070056199006199196936381467204800363787279871161676945902994938786292742106168859667952563376781513578038613670362363665192589941549247650049490329098870800300803766201158843610819968115193669692630492327627421892801509935786579206467037498866291276213267534659197170499932817965095832716455183439467193734341928282304853444807157480479180357924353145945555749596856176126755561950985705423160292269474976072554669363259616759671911361199180613940779179663176561536766897559109866872877705777215210535393833056828374990542932329184845040857605194001109120527668239366161492207122669321856564361222825023531813620463465706443315300684243880879662186555074199303475589934909776554494590299686025036729726473000988972574978719052004446157370996845972129078441883374175161286768223897727114969068664318701579904313131276487208363570804996117386792899018025949522569966048059323131244004520908760035152242415874578739380939581414952062362951012635314490454100469286237206794675913184378383740772722901339608939845934645650313138308683314153065536663365824371461021435958145523948881166816997498060017403578644989657727857809610729862895189798525804705827188360473987714365749061947850607865272680190817014528303845828783552434453843484851815325016865071815856418695901200257714870214645206419583016012382367634069725733097739147267954490876410079523176485398212094855826305584777083736033530641011496059110570095350841860058393581916704308844101496408062415398664171833486248328950093661432023598098590669760962486809725053170672056264090651101700890648066127557000242886455198587109717764519283125445527818285722974665630154276726349254364132224232210412841787401192751350523446541925119556337446284302003925494912237075957103924602874537036205068287770527403256495003355129107044941259289193692500454242134247513180155441408273629597114251714176861727065757103358488063892195981970472475544296686832347997837831819113006197309052804220285089222934310934017534643790699730943976606862445489388324163909820762839014226508142166318307859954618103400569383180673816597165859354078076085725210397017279880127403012698364604645112430969909760685842236059092704181975199527659115269516389254249048987701998600549741052830317660630681156598156465536112735912126985865491458286308774548326999524348932874436344422687037120621144784375105821623181881237674765041350006864570789318959691621181224603032897562307511475833678597108334265279377747416715027999302520645697437705077112414658541335961456656629786610118935967682303443292725127850957433529413982735714193239423204955106728469023455155588621750147051871353495777951350446553735902104452171335493737877845516885241041650232313082077332699772239798072593227696792299884573444660990165305602245817703158651554699490775436286431486307028564974223540497057572658871118014254557413697225528736189945461380888685532624561161035628450310628252150649617155662942269998663230385696598784025666418466649990014779273447788315890060775882185206799522158473614422984766211094629898870065426505999544952122214854255391366759356230748737800815321820348527366022852445491300704556150291209840314207031860681492409270570390124051718344665547968847148652192288322902322834483037714908526375163527940683378157734885426136100371799224591239336462913716777091818899835818071282956674511776599131348369693711928302675112441326408213413579352730409005084832575878605672807542363759214592192606081639065416549794419301171907411661652117736800299741714801939318788568319294774800235281520010412926698319172352766986513252014861482293652888141515284806275199430869932266152689403325533311637037669557755558540483075247443926602254427674421976619262906050920648350661682354726081670465064967058799402247950002390143698235545809675614028307664946971376127056575437034054842602329143726022505465926864714575461647984335134860723252274145092995308780437315571195892128792984726631653216792842177733464179230648722444792248261754697802123123677490009395312967763376489304777476554271225598641637265690728915260473191447060895178297642537614107063431848249609953971782844106923268627660275949060175480123358828555185419377479011478145085852814746092368741854849760352452556310362989823733241365042026380487985147591463919400526829211716590321580402211049828416919939120749315752580248254267439915902492582391918755898171615892235433638433517697773289867450251576282572097664278978283671201651577160529286947044078565074454002838712310281263225237079145079050329449377556797550918396288181865956713386072535658448919694143088259472573277455741685476361280863723306926402980911396260394347673491863064135942786237282973620082140703751925998237328080609593107476286704830391061717050050595625327218227181687605372764401598946417142820998463751022881870845417397825028163739145676983879027553832541287181251798655215038190751978729419927679200224595360337941656019765310950093557537546052118867935179910841543370419024500505892495406460283600420001095313891480634138571660981634518864386334836943881781175664341813175682715645232652739946262006113113765324446357602255552728274044334212352396433538541745582546404866731614067462086204297361443369539253597398659625762921787366160169852985315108235641813888016399549404226688316985779366793749347271765764806332522241716785725948475714619953113660896208340241222800680280074789590981789072742409961855131981869874621584205327888359448500641568053161677389647143700007067959837674475892864932662295422198466366296149952370040960003937688560917800792842845641071502541616662872496351504215888964032922660030193496722108621175416869350006404853857657480913193803560221365646120774276518724179232107618783546333597182328014606380762451059723413433168876024783690093449066971622822934138965590839223860108505758918536806414797456528716755920804635041166612317394490371067594615219445087745851132254902243345402856485909754195946009172484007397405248050897972772980774760744512090910626828957264541379116171785790502506130881316316396274634428806651427508327559732307713863795769848118531232976219528041536494455109797667186327414516623543401591274472107207603809465218341156976770685571707814903183959710941404010925036939949783432479870471766326773874338833799768554271955762406560143788583163052983965715848414629971821519708670685685695971438370210996838903534295717545472342053776223125405975018377613454647971105079211968702041947118334808593214799466428122801787624254481657035903848018353667637222258992725129982841620011315526251344506030387081505131556992693511110635211969395613392898592911256392750017728647354609116959475215938932529876935494340293436180177817294318018386232683689481619511197655689201405694511755667897867614512429889069299044239428810457402314595870375470438463332055472436318984297470717527480965560755594806897592959269362399483292036871185817897919821877277243190147463333821758607172214195823358301248009725110718103264219088976890500866127111442009145088455268084983266175092153684573839153658689104480421309877075045382508586581929770104969652810511929200529073728113956794930528279033518213693086585983875397415261867407348708140049202421556100642951998045771500854607375603413639527266416563237845017338257108091227244970549462526106547181225964813235072183441025000821452914887121614995463316285541475751385029934582300432166450265964225014181509988528520206071954537403059448879970923532734744724757426257486409970035596434265601062846732560937152368758428505025663846467224455671509780140320704809661482899952566655667098987026826943056665157664114798331235862179838985708223546621351305327501516987194572818172588219755652438594747353642687663437045027090213612627293323587991903283074976430019018691108088753862991402265832274255878555157189119295889596918060724330846261355678108608308152822049671264635744819736135722127990286222136598019679837481900133743602291502709218249977122825728350096572189171242589368382891806413861636771980003046922678256271562829446523176527770114663630140601606059467886245732649985682665808947601837835358284018608999186949605799874695983895664748250677776461226051363192625397253791590663267901139189571024831035482598280962159786167813728338403474731472312819075029928950988011483275834054585807018354663249576364169599224739897858718481591395115810099758589737109519934001848791574818583748217748261756269044894333993240065650101173911250110250501143992597887376952578334465157705432709229798509335333145457566001307955003785175319979886146303744483829479785111361270251790599770777020891015206815491156746698795941499798955696301961024909177777061382179019633049500384357204979265967251461014727673420013417086602297683440592995692069133481338638912412721664456338025386528240567144835827406761254710375310231418155631055274719564069547851842182075583054492554838130660009794041100560607723933921514017394644202955758405763204702297209583662649609059104592132184011613731279858409022077349213018401124023028776117725189839802610414667075951600161354590152073292725827099393989566402312937649609882606913765246050041398413117801672098371801612610471418055271214954204778370150941410057850734419792072272596631531659126282584521603172585476361164336077473379415327548573968009648104303019473160317505289736729826787880933457093800596793953074076902926843432090573288276966585900246515726164180362886036514041802492012889098482260438387836496335963215782177897769072974993756742008723200672463280901729076578797196418876736549484511873836658637399070296074524034427693159623308424694261579120180695053936667271418186537496113787182127830115862968364071258689263022743771515957284909890950086047510838000173407135097719765683149898216528847386127860473940149493109865309641325581704317204084304198365141537743214068519289468651998010710649510352691979223503924889954330827628949253947318431416216879251241981485775238934197456135941542539191087963360923896593107425600954761387964593034401609063337780439875504255085224596613282396248836840035135388504452621415189434443018870944994511607771833360299888922469054443651932723640816512130657361869569208648533100099694001727112766127389225489242607304015870328265535682953602934366223897104863228776840043333210192634415167000024449701626270670148015462354517422155732050242499759076700338386604050767978693641269710440798257026596699993657495920518952763168547119539128368006002043182469888835307327374046137384772761854952668453082123011635582677121372443775243411474300425312086737000140422902699905037863834823439065595401156587101598563611969095152841107345926627418520275071110588483274655556785522390206005544293326150040409541464378550989354018333911162937782316394574415449602354172767130743208489459336917757245088040019547645336300899401429644616730389592215374222386711657054553080033627698239734515471837571124749071242658647241932643964827141685801848440064205434243596985235480264205424818529056904673713515194149601854681004120342704233870719789107051536460780253522574478631626346985769611762839905022043224456517356850016033049146873304350908302694196615047684510849174482644921115150033054799786926756986624991614169317570500708737228257720968284663162831735986714051936075515017953167063429879136696201166322364068369105849387135238696840185315650467889084518498585822597156212140427866845029527527590705441794452774969530825768621484025485802222494975514838475429164025891561129274875753413901062231448265872433671752843476395878047406699610309634873995528324744508076372429488571840073472924043390927931763585098970517891436061705063745156966093608568621461817466783324529729072325230214904581608942710597458412290115117504748863630387180677646187974265214930286783798599496016380094946987014478687106130021132593655795036853595827474996195110801996655912655458543561171591366635229126205930556716538078421939699888602034187302914381499648622251800807443628164314842390999915086369906416620893394888284388829156074424555730671615079237966466325685545295080657859224107657090975444391168766681561035193177559276202946346697516463145249501127285657368708338242328240255677126575377183265087641827955575791405906176153581778700306200422512121327062273169593821634553272324304791911022347810624033293666503300466326038425531199131908502275065477271223680201689720970597095835553020543301703259996778945421354215150900962899107396381948015995526340628570180287175203315551076639595584346423175465783147435716473035020617451856063894365608439626575863711440915023690734138106011057028760833750586493715026332178085457057756179020673108640416232199117696321426433342059367029315001782560087209827935995177388852302377048243243421691469112380170224453158543348270648656990287459717322751771415178233530627508284670408915664953551494775681059338810823057299624325170603532929381208613939162505651600104017893851327000317878666387387349226479958483883460277311415726266957631513333418896984078850247625832900298295146167675648582987977055223986651245274978984719549532249206781923291254724537576953474006277598065550927034544612244002537361313238870414933982348400274957278001946184387055763795850351034485088770864987715906058575265137076806699107130962486619555735144083469101268448219788076851250618188497104128898610962809351357526867148717266707686277063067230370047604218052934878325075579768184729426638235448534331397384643134209973124597997859817141321787395459962423030138965856117321111159199801256267954795561026329099554862077462054698873286947497587694326770130145926305367159754623895209277672308353258912465430520889625352440698249791915976728034447400334270961769248594982224609486541295992588511148046021489744479579488801467550535434259279356504147430175140703008123571790544167689872456739247537697480140567013863185339655257804100620338323897621169442482843079718619618975483861662846931724770655735309816377606343483539673172600234238180506402738001399079569580411539395523847352365136650941902274451898562901452206866130952613490729865889156420361573653764436671594610171473300694026446923004299954982765437411918376845213074626303494306923942099961725187786733099573033660735242133541647391798322706604661610937028046961618599249816475070195408338736263226444875311062350276755629155644268075723867292797159145069199528284537084157131702280568042216786915964964336827388080554495719102892008314969065057057310302365117250565149681565128113958504338851366966529569802573079154072465379320726328793305101943277374445695322922767865145950858833626043443437539980092628745305103448530387899538159423023163877022116869475125464732789691890796886254656681287928016130599996069197685091422032061601121352408322144375634875456586326393209207475541743715468232945136463506836020613722968728131390579442057033128010378879115242582247628072013496551197346426524431894677261932296914023614575134752760880111736964266870738720128105540082675244621857277378748965704428009918005271029874849975476232593851173786982211171376156841123425038645649244636674408659390261956334976526002405502315351450170440603162304806490719203941154366647112145498331834206279784807094761867743728516985647893211331258117841097192244542660570383362745443157236008469643711572270012820717159965484659203449562024947359832117066535603799000040609499102443360657512698186604787334831942549157388836650643914940648941178609916277377104680922500065813618984677144380260760234059717582760592372979313214837395570986898646074386486889222931867589267790230733637467989185367011776298256792216910362104440584961713548188612947259185757416402624974787277258103229928003657070726639641666551236317153041876661277596228380696736380888778181120691046267986246869745291695371604390673944144939076311110245406494997641758030092225862268762281665004917537543054553204950473536149536063627950457326605680245341248433344385448200398388226832498057142951844491887834779857679935508314529455381519662356882460700951672346714033549993504170598916913826842318767916787615334086058807164292806983831919446625175201091586317527196987544074765947957426331386834911063805127467497342184289963509329854727494330023930475527865310507716472911736156216714588430414442045353626462868142719217427127965667074144055322019830597859584992251628865358472123622799951678699477338584155056801067993524089226248310349075247588663921157907848339141808989038944110179121447733612865840420402911659188758592586065912297838490308934164259847090691225650160563139787836362416295704256022615936827985087205566750723498869208057672487381943278195544042271659596068806559831591926689356206797621154999707129253951770811328296871630461334209718314172297059996446075095140121103556266931365816361739984232303886797248377415670198498004433712302634727854335323158723427474197080842382335291200634027314146714388589065729726836772657866852176198027875834204029443139978149225441666142059600054691070251859365271137131002541307857821033530367449465131735671642456517931979919621598886029448185456193234718808639052090539842900601592951864462792614665334297923532804999135532905665039531203728923736401707212581490000235927215676226386017294566168893457349608974975445276149099797135504286011759289862960207147642659606243906204860748093436260752420416512187343784237826551883550100024477209626525053567477358391816494628000303674657456208838756009542093274288443033541725646657514464290139547927257333932486131323958086897738997997641726836456607123012403023506824793384529497829802210027090116381357189542093330732989368209687976024433759159017321467966860037030558028222875002211483178036961581432618245127086339101003275022130024689055971926398185059233618713047727843397810086521962232236029062657944721307738686416522033115028031766478256432403572362867699133224592979858367981615412824168431232737007917571044686589845075400415785795204970027141201546641836891418821202523849859104072031527976255700954890827034500569439292361782975720728506795986837723460240961317145159922934373389564929397036503676115710500982362146442043449161638631661625099683440626789829002631137315852909669289216739578490677640323002499375395064121630292713888164412057612117130878413647862846088447433023265650060929271702652795939663491868249262604281200971470214176024991312577666945963551810638452136434774003217813291353815919032109463922019096677032519637941672634213195829892779051826667811892665722762405732018312947714472525885461262984293525178853652246696673648053424478984417445733965214605842162616486781591846162675166594067871299128438943287095636748658965698653468996904385407628524428004321670116055952276753554955393787766735766095811663487525752564837996111113800438644757232606643931682065570140259076659535616263598953092975815089978527885794615457106615232883287409540332232611948378152330260404102553251661037577488287292348869794746331559592761918395882074100993449793763342048995940206534341715298277133099468994648687845688482859008161324666131973648386569187833835029934128546572622752534937044163079788195572481397120775503478792205320322052745237809561313205664003262494068006758819566167760141135104650090868498830610012982120368288508110426432565505875333389240766410839850749168639393009698610116338223732614102944224929227087892959065079638687833665076626259483037304046356215121097328643987294730344331760540207797363934272940623559206008586548971514794663773707808053344807671953417691539207125987052312711600348192735191023279524801007773888415465296962201782907370445953908942235376630618326691806532243549162681932888077271890641989058876632850774572980452649918057656670177873255343156486148755953732391936414043764056353028096464015093023435191111000972195463553777928936642368259908476295604548586807814462542467293203395312684552743862478109296187274853744974092482708814819320961461387683015852503052491065518530735483772182684656570250340014116611408501739944143185743036525272263411346019521137032397789268482302929356035695265582139834425781288677352009648106088007118409638801128848527616045940597956318252566710483908736768373938106358089016317249702555530290260381334021839244571989568287107131396522383513311928905603732269380335447674656386969670638481807605709544756380085815393583056404168874133791731507347366247016680440029793360328685167482631578902064539084469189919629721420602033284835298154659655060953312832889836973274856559840229939319893528783791082870905438357519586168979986181955426502538339838650384425514707776216328107042963576223897397261200237218254695525501496397921217461004907241734549134852670117046362154735845937794488512978574077502584014342172980520771218164398093122107010670948556842162423746474217846741891908257174439399118854981724302135973290645774991370171420744050310681004003036789514791911560772010021822737677667444211865672139642430341686523919846819306044463203828507366200370181711765102699212087603576646620273179771730849905366419904511883040200289315680326923856581543355986527931668782902710959694170531866468601584445172908550036237066929033407051880122113588675163683882292023412305987272806649707655097761102190221630758209178458620673227716102663162952899795073046053147344255845299854220630364480181021107655751442342009356930365812035529533952509517797568814429477995145827439387238197497791468006162227198944207766923984928152904208565929311632329750990685734914497639563595641403625894788531653003036132287339831435567810462950491323083564125407068515042012670196081749144256139659906703633710435320174512311587355428528610629961177209576811957655326024707061889243344354649743277462881272982733420328948030706506078702289023249069842761428354617670163078863844546074140646423388799446485094664669527003390930760742141185315343662539358922486313745623691502716442113615702852267519655061645173122412887011025242670716260722146574028883444584947715907496798919306973823197065058800569850631996927327734002454575531167294810101686926342887261581748444951001947147397167739514932599008120874587578005088316399629935854884618509688406011106475729198480075674503887372747929591455635584161087704868847290310247695798446015429918812203333592515634283846982960294315889486277148112275794633483454641581442931324781553946723798874217411842109912751466891129720363232495250131249920440635958222480901538662424578162947158728405892246009552743714268411902768316027586275092547689217723334629502078979007807857471764313064609591413166809849878802024320804606283067602428425074012061781900677908564713355745995600057584531540055726256655850048318294266987963445103577636778076951957630847221829066983472414653502337283330946567268866428356276620606889678902556214373734613210201576722933948009807864287802823877534977093012358359708602626816055306062466811969538718241699942606974412262669971903631811562030659981302882486287515878621005449380866551948644531390245649081784145099214962947812231091234687502664132544675937004706589581823558269433284097540642557790044754110595890649000551344709158275580791114415316026760553553507715180557025853497537448187317935107536094489406765540768178536076776533275969162856468010563056844363623917026084385432974670419272156496492049918979766586306540577952383544931584091507178456327137392044086543303553474447831884999514429913849667813491373993322892800486691158235815727420759601354776536600523356098992193627513755718805884673715635986633943554719567741106112636183471522893726607294907584521213218445604273402256877558459467867308177827533653904644026666492368379456257030263987588289742947439997978186855773545757868150230250771650897395356961286631138629410359330334137230245956685073463331152797549476272403411436804552088726088819315627685574378384483626681312695532050304686899239547985391386304763207569358469634821322510265497154211904006990792006453724424882633878068123591277584348382598655231004867085018364660534055262441176172660542216117962701621430012554262068393376201689677250798942888433868282226671344303578715913198152297583219674668286150991153672236256265069356475921127541052428205537328933243617784527574476514276850911207005184626651362892542116086608183778760907979918212442573674561573486865427164705180107697726826386393908785244153982825899052464687633684366779369334174115430793962663395913201583803810677643601282946262778493466164913788207539306650169202777822272328773252819631695873294161940540012456679531798953654535758902448852185747089186694894966849814387490593271027996636870991330212992221184236190539846115899585643664152944802412980092062540722890138972902675111746374685885865996768201741168484437099450341460184352354729426104732238076524062628455279118887013294612223533756052451775623653666235296393222892533991734001038896625811393841195502813021828354516287047062066427450234104086740311093635197027074617863399650175404262854312011593341855358944270197453379881442505959631127846037699080494682604792711062587128886812743767911077307336106395538235873725972573115130474236683304087272477379692668975298028903416326543098197019539167711904458473411198149177152169921344598517270257778104747548754862435542009910873290033513785307356267648058396284000394355778658825335910155764315620571720223424509515887468499847003133664540380517670962299499231715494526139209413763062741127111838346214550548859999672380052176958536708960410852097025089000045602144775185330421981214318992585503667068907854695585626869253966259429944703292470651096087347189142779153108150366802128669097966190868045905029645099000637700540189448021475557348393443024483661814551047863949593453534164974833634874017113798726228826578459240364442287853900939706927165738102843490131390381242206962819339016403720187721525987023089760422478348321594657037937711318466251892457760178443646683976099277202587890474959272958833239751855526316286107193277759384847292570125900041782675403005192569766288788411322535744503871881027239621939920583166616346705144138915074989093755604826787406052451919121498552094486746764767490249233490513946447984053299150932559049451332652968280144067832632769911294843039864596296182069821823043309887303495479975857201129270166183823108644454274711582044061580163139713370901985912043902120463848398784541201531205995176549333583525728551331767691883886274074376587845376331948893856111014810829642143620838536375661885138188094691834588216130430779219622466236105556770553769920743547210684107765674094310574779094664793614228782058301792797723738156868201375713390790961023152398530749149697451049445659919118337467206530011674309640228151881421181329206233750311965984763582981022038715641561351010025955075118101611497855973206663359351150241264609694503156779160010706255209607029001393663997304705383466872194299072232607145684201151812654645650703561265139707667575524800257976306877228289851445194090547911924023908113879964897993253520108167041851825837918894201845377926782421774338279785559325863490040810396067412849400363104041302207940335117111975082715430542870078724369293402993681762900436687638711155601757653863727112919819155184612629252925618717998382203710312004600745224192305296291155448967223002742827321445323949825467303033650638176279987209634615821852895679129787342696007255561780436048607213818357829289660078651474478355282059798723825320352406288629462087896392354597798988519173695653675806085891174095513281533951613536057148606092820637516398005246626106472674891226243621162843678605964454502992662861607833253870596785774424546745556509146708932103670544903657250552709165972963297362304003303052492176791654465106774881850151938015002226518620276570518673554202561571883523829407013906778604792415168216828653760231425135931419455886127697721869797942527779273880086554638856584738065993947163298391819135057206807802374363254142762283559676769891864463178559476821893232683871261987826258137536047638981205601696037333572133846210517314584516981696419492974085947647219442270685672862406062881337858590332673944131216216625952496288135080835400264198270087305724187607996593167055585074385303604574183252451067294837269077310409956711339759738971456584528267271186932022959557087973165822778930556765795998463794434465875797599145569838489854835299991857460418137699752298664546057854370022400833198251707942212632828031381031188884760174804879277515998434566816806872659901120278240224332996793047380234782825465695457583181357160696116488823691507337288824619349935660803256772313109913171168310975270324296714163252003860881323280727586898158377783079516810249757549221974804705330082721585253561214611673241615345776977136082737453628770394986650720796807871228235683539622820041862851619328218103968870498514713356729342273777502843045107979097095670566216144284388320989757208396106021600538040703939275586489372187029631231016593305253706162957929449188331675127175141803232616868069725206262473162611802418668674860888826551782819264255410253894279515659163272871867732653543795069362018710216416712440078868359025592477685640660394255947228330599460522190505944017621789838999120313663179669434457897078962214660487558846290639572157302769138513735775943492216256742000480092682644853972359802678467903454428496675801166626952407320901192877323994439749701909829449938844500738215026162146718301737340254870492497373611258032529085889364826838642594776367786283307147622714592879832414104169975388140294015195658442893750503496368267765767731728763619361764809504634386796563160942682649018730094875422064728711716467268641127350785912885693135212119688338747663464854525347271247323702077101537729626026659422114922594106348894534355270332112832529653040878991252017568682160108868736169977465671582514050392630786571984441970982006640980938345372366250531519544839132025663747511515318208698297157108214387146852824491798153225915857346216271540583129361706338968256696385863772903849352075899935679581864091191980676963179483407283792480734827243429508536042118820846849653449925853935442732099881709512531693443205568930551280857511146203128997292690560380018211998128507421435370443919026217299190560987437145651767818559580444840676261010422004670422366552695974399041276382529933049223199362117757597988507081927584575000923637023628005370979563000683968336967774888255510386947115371744592447719683942856334199167266819076124905617767298070066404420545102614591282411091410346498947516264315270686715075167267778467710443724486051533641502169600304873600924422549558858423977183928509051697049819222581337474885548382218402291194210253541507266793762763744856428240883490186837633287823203531144065507601065404740904357038360206407692600656564667545509788554666646781056659131602648734357317632232215519097450718155402007646134438867211863320004077523409358694621078989685313756105474229233893277451428716893082095479678263369051668027506546691784419281309998202831513561438149946406623432551693329455312203946469874174823039865933816254268590499729501723763732393534291550066695661872395050653126128585827469878325636626138036184654037664888588319845365948890138355584378414486989797266208751466261615013644023112097122096699104322909643486355232916759349421241115144064601368040136920240860099168757275587921807550792097119403731033792759744892414440841147943686420744488652794760357766197823446056847497108844299613882017687736809125345299981234109326985618912460282108809122634922525334661349777252736949993564274338612771878417691287533678550711981092308079274055471624531338655062246751280429710768387979284858530805421654220872029851683353915803827180293261854747013370433907920277459923742264934893209327576920438103564818068165438922363784020248389408881591336601070192719087784312621183703363478295226220420111000325097982782357300055083442224195017727412547633215867590047024743748845538383284103695007893758039018038099098580767300667708168423429478530199919502930584354507016933214036450493375633611959243616119543430960153356611947585561978032585258308579072238791711422804496985833789199576959809877114721266464398374401333482778798497222008460046225703625112906323704087191159101105318459227653926591101508500647048669962567721237881846736830147251873600331210337117673700454878922447379369906560304798149330836740211251234974768299811845513584387072048968839307504737163870963166010585239877945838732208793911641480536775559000350206799615177765818987921307508561317580286858139423851725617177564516855665423226878681852923643050172467073870670758609765485721809737830009421687778727060820032771661255866635427342709894685424718573403825933144596859435404140782573402187740299693111300751501991579808051137765374566859041558213950233775685838166643761061676210530722889248239645053120108414415082390252586910426658696095915957152072945844696396557463561028876098389420810541219236442424124298374262531165111348906149788899659597414756001554336726127993568252671354200217371160867324340760935397879211004872182282470467014716530276583684249860569457638541791436473403750997474666134672173076336193459476860788878179638967215216595218634947212091021444583155369392330547780001835494331907003283654741352976420575752019495399788965075864737889470833281695236786755253512144018819138189857327633182653084035426619083483512996512126883952023811192217579157754133963544809507980801336564446276894285783237757815888591129603492189452214127456822888139958098626804833618392055763960718594142976847835770959720704267513459152654779659249032693348696746143650214634441023240331341642821313649260746547466933320999371336971255043701562478776311015504453941049594475112481084554519628600138147926906064914578928248919555290894086224346246774107572941693550070400988961625146980613873426637787466546975289880833752377979890643229122934822067838257044712743066689021048104290724564680445326635489006954548036723201131485454466773785923134976738501776160113327154595265481584469588362889740476850283182693117087914238757705529740480133372131503098100773469347522027757677270447281452191366242277110575383821779460348419287767125794808202308806240471440660846259437742583699558112553324643028943119472999889401098436050182291435863101642070399310141251808803822661882309048342622541209244246228136800147035796106888331893775234516995405007914262371903058268335656929241583907812832960903439269218046123402968516923883365680402566099102735716309169159484478722195552315553386849039586187196911102334748924217546952802194893447981249107185138361746106292660450730408937024986811314755199252852454640262339246991524251294085687583669065406952059706441149504793598585142284583164985439972969852588457878554759002612199633935716378744754246825519336799256010108253018768507119360531301197096175561322452471947635429863146208436824215273481233959088793778850944494730426804772247070845256516000129280159435818432361480133512815441137245283648846566661146946022716417782425565434699671738309203216653067620990914974226634009249538478788613330097337130076625242374209730587000565529717517158286022759954823557989484217210421272887776434825739015395898702636128851539601768865194604392030204647911744767201693815102052678818099994446341166886145626507822492952377532064150251323707935364022540035678476809233308055396760043207673973234581414393700183701561254872181901771771921731829120932075752108546128459673951989756350533891510445158101074924432110226947379714407345443236857914244495406859136503411093082628946982883005517662701729038142974949504985160213268371216642590826330162550046672375362113853628636678002400684627720688377425815476850039880511624096742778251161846115183877346106850819462533815275178372124614720253061901013746222669955607329272611669501435614368948997366266637990705373038134569440360204306204109073840930972371001056220299200937186115104367200113605608129978170290265278819613259009112029753074282014116989612563948637292958023293801153115391175918481149595235568724408840052893542098365491057336074523900342947314775063843951606931876551271562920724746469944178854863310039997749338503675714074865655626959123120220870932182408648290945985156136595857778508795786209172932901319670921870247299274391455640014883481880948694522467941914420883688647093103798625834558817045649324568530673921933113469977416489203475683538515912265185000650709226381593719170399051737114594500934558154243850850266112403206318649514925163159979722240319838039628480251972589854797972987410154076462379870190205925157736989854712948010493283630132658940021083611077584768779166196611316221101252624700201015228534303310088637955233309218904989279803295691114105493697469814825280086712894763693888340073842011210044926264524743718780044067138516725572123792422741030735963824615272458900616776521930003662251595858454976041907573060780458085904642284479914285177914043952609362454505260678205373090484895740504460350901068880092489859056147293620400724458897250632435139151058340156389402886300678594676015901349508476902182145082307481391552319177573234694598851945087711148080777279193782473098862902261699715931438487449055079132894180639452958701951506965163151365675793603707970683821217548216467027647660425749887243309784567088827481922716923115427820610559324239883115494114748249485549814988934253471035893532092820841561293057495016506970885328509461773745605845695378578054188410562961233253229294508375282521946119544945000296120758765094528088418831686322438930589082136379232940818814751324884017368547827152018227384003287703638850203870088988228681071189792071441236576706619071731578947442932119465575812947444610926778640582951036586967602957833056389391787892254660856896101366150310066870055286368410874907843455525017804431297992845183493224807448074005870534323222915581898487059034358378947063649902400679481460620909600699985871952107491798014149534363734754868992234996381056789480758188803945408741505115435387149672016728574206706463974196469135053457976948639946331794133261405162630053960339418480767768497272248472852495283500455451834298190223495970646882469834962538160509341486053844057090394481476294866720850097095024275597271233726557725550979773577333396490074590234035261310809797880426447922984547827255308856588602339188921885297524474625192658572801038470194499525821902292629632592338555668991825416553381569497475929379182959768830454643876560832987646193173259608948945809927543986883405848857624737378136269892782890246202117711248801376919681490658459738735585202822920939243324954446527867136139702599885153409919186762586332871800789309936847290213240163457690239189366598374717576407694164249619038878419455263123063707618503114532015044176693271477714803815790446072577675248530682804891828307592680768334009136616778438737740866232410722224801403921617445433984809181908842085892169767909245735087335538741123869751061002883007795874169391445410665427283204320154992328026978052150272347070474616513293354450054948097962310242691935887277315390602775736925089183299818059267542427521622859785810284195505251117438718336560361020475408432569229530905844435091592158132199031741926162054875911770440308410090693382981446743725100867388760310047311515738279878952892620399690648616555890708943552528899219066705209399979731571918151208719145330180170060531400669557241354189685601959719021151188113354485328809489239118299771669413464119070507138012774381753475290207289471096078409351219076757813770480924577649724792677902045046339546841459464371537576343190427310754227286948544233842307123971929486958627235066390985026431575972858307250625643077142429746180886253592117070233325324235544557917997008134155715252065666332305857275344382075459631215565396174059466901735389462478550818712336339090600128359860494058507890490532347546605758923155287431813709531182751833674870668139344285494895119856323050008314751114296024145227881694310957476825016908614369701458625401241201085779540163471293395572829199734924275713322147141484796819407342898985982957194232917672709653979399280584936055540883894554717766095988243428321170324184159779425484407955990231198045602890193671667088062407718105667063139092511451172766399699488133310480545250152118426083583600615314820171671058239196189827557946079457684617084266608737867848231241651211614388482734239292661196365915303827842762757141564673129751965044176379183733335095098348322385981988467721395742228960046953849886047751234086271275051270205544562957688003459192829420590464424913769582909794909730413415916303891713527149857321993084828814582317409381426319339770411484859806511466975477760308097845475742137311500870980039302829817389962169502993088344582417428318643193837734703041000889161008768608668426631603484721042330635432438817957372993909366632889565151973786367046523616172583859725378699925992932881366857957832767346007682090024704958348597211580506129630360255816289821955879672751087455581296318109261896200490624959489355292319758409762418077855490883354068806237687978578881590456679607309873087700165519269277624105412373854154346411547640082693341959123903053859187748016916049925342458866887062681668621426214512667101680609520002773700791982042350583889790397450537996446314567148797430139263816979052511860966200954067085717340286141690231748067642703110137965889065635302721072979492666784372605642257149350125292469121354466114264432352079560187958239167493214223805227953170981187705304898182522074694277575567978794799653938703270694693485433771683874228631402387760870287234182176848586231608669534538038671465736766232787131414825645515073094187366844480825234519970439251001499803729598919927681567224515388262006815151616061084466050712583749331502273812965384485362201229102143781735662761260352860077200828198436130247238133347714987128979319476630119503995950728450722148185944770094158242231387981116846447062819322023790739360377471397168404351409530749014317583063892125849937738118169025959033486943218828860478245912223911241187476430654476752288472153386213309196377266379645621686054795447506109743142921262591703196194059826804922110164459232725115695220245647181686359370958756519198241243120007688246818460757730666522484117152708171270829985560475442210664346441734799926479330226816998058954188965363846813964451945635088006482141334143382016951612024560059928920626815101154474012406529345084388037467504463914236783772674142174581764546378828750855053315956012571899119572391296077210381330952636417659920160715699249252048777370842300902779495959658242879604124840547822044015259086364852252970839445609839407615495716881370226579577621005870430883983269121573270080992416263606219645442664003306027132546902802987603162065836727411975456684072417777652460996550844930723882108514087006448790559875014956654995455901048991082709852125488413871044789096936573629352586793635216300010587757249192523036276401207015290774590512318247357153819255797168966547621927896738073591145695630433047280039455107265143924000347851440264239103541332714259432413471577120484299644578638567256285038935016926774940572373343561897452966403238939903756455406687385112785342117684887780886956416482221632432429422981939193543598679387375035386580976654685741233589903343718737074735747545704783397242755886385166699107563195000033140037826555939564866109611139403921209551157179090738241099980942293733963338568720849097247257552360118328771278031243970549087935144886060067046841183339449052146640573409870626660834536534991929740568639199094499863635110337206487214787607134225130287938583619878518589895439370439362695387157729848668584829271571597333810570013778522172358006518165658790680855461939989304408128278063946419488364041469233962597080025128038343629766163235817011370628323222020713480792942616812645661065091102551952758546359769451487393713384777377289749580254129575852003770700998476289005459306363966264620132775062884153892270063503000426105665723127674437400143246800344012386353442907465394464055361986347188539907390395500837850082847589056605827102964066006154515807469555772314080055358358989756159869178450935039540299497361656812801708690624121112226312624589022884671720430885166010783677156711181144201641343040943462408611632138914483461718507864873835013315743882774654305173336570162554805355730772972036980686067635016057480414077045316103538330340149456076233418665405762958112959390168561430529255429668162175218874798731012743602555316322602252250749229975164794233905782427013689171280498311834432009294218003972179228810044342879843845615440918528811596246522149011981486763412645798033958156610432081371825557598410731405435989257053746084019678123636228665851612710803685100904141173498885385824297396165539013048465471264284252852950758131889894939384565269916487882139249140346107005694964866510084475934710432593739611963768859187395189454912882040253430710730634799788555321466034995429741243642790228661968988302234957733953642112726503782044736718947780951093033294178077753355140891322449653736470259657008506019170498093557448402364487842790332819029056780939230628006083857680643753215429014294486974037675512315096182298457942467408049399341322389660618248187862110964623711295042756628392479373645541996624810287125420150661969392637855691167942676416531930301373760051219736857167370778381076537119739120395372896023953798252139024976952282590009735771340245116152553899469374510085775453274960235592830241984200061972708887404673462658449257603666582695829684032746529361793906317821650778073246396576229096445950879042328326796197600930643525523868732794740263780472586470043555245404594457047567934855379344270669031523896207765702700347870173552184258661539913411961113703515065267497042811115823479935211057623860392881758864916544202209179380562251791405591126294580307843344749285875060841216319128767145703173755349241971218011974684049096625417902278975773373540175317757293190697871090301421824934493236594930749319869164816418534192117954290365227235256962487540682678318893322855554196283423511572213633670037450464651445321559217745004963877425361283410504436147599982905203060805294215081442555227128739141127472094945644110735764636553210117889528040933788466468185051269002246293178420437664696887923071326355147666820424324366400126429760892331244432043694765393127936501957118240637357527514191822916779445957443299708561013827248421787850911532082999884545171103663569824708288006001175010864987958105720123864182167260668504723694454366496570977609955463096626399216728391543938935843860155790734347234177071286393426030648949274613262695259086002711631253879902813513573768905786867153109589975420489752882745816689348801077046687522824981745178880706886581844293069074283121566001244578284817630707694357145718661894427355927987099831367901206559836696298328921209407129606309046590919873948895370712546248293217276577755567233670604956676217822618773082083312719897206362765076645914272844309534265916124835574549950197718411156324845203617108801790364906743201468186518027964258698106314461265797689617189991677771127119721281400772691349237032001543580779261198908892611872840341271457776424619634848036978390660670754054693653178525783792888254599075653744852803948654582861626391046608632537457033381721469611667137020721302754669931289491028542045363921606963277596560860727606829260047751357136841402783734815416678655862660512466031524382223387707387632307181419322753808205760962501433600064799355879272493039269991546668901859269803160491118948057974431990528743058655538867675065760609543661657558537360476695728973781110543237714521779245435148095606788184666705698372673007040201531386340507530411799853500010987121203800576248919511294270954809001420103184963354230319149367556256050339769520334537219297212003940863699233480205838447010928482225805412200611839083065464408276347759665565316168659555047754468359116629057525253086683636925422972325394509319029743791314117430675400134646440103277987589312512329532260371776787779735401073139904448497439095445463206837582927403591347079348712747407779913412854522103385110625533937400703829819461056850949035685584576499824268441332578491382850677673884412171251166017121853052110054877391850027531085830084325636288870139171944175894041231556712978879124905070090369741131359953063763253246097135689689402676042584921013703338425514520787280336843959033714477855420939300041811444686443327320655803540567441734916163486037228214873802764184503473698660277611217151698862905633885557228449017231606865203121398487471961454783208310471368082398331178953804721537082512143359653940808553651605781087342142215637220349382219851655058120409185119763522069891225830403708437162404642325010821726139276290678662117992601379354184812376445326289394176341024707301880746494706205341640690342981316081842550876672162580729454109528151962423354858357484772059280446000487555875877084094848791145217939377299064688342421161695641487925228077025100099816091806192757523588970307949902656982765524261953008365376781234804901429266547981382835923476632288182758620935183769179634953956438426061637765271951848524113866335655554380936745225394022612451974855436131963048885443866198482011072235074801821079265575290176088145374822560474920443485694474462142541035329126479967894953647630350614599148517831784207011440987409697799777175393189450264778011307088769673920553284376953673863482242824108710401606969776901322801872658659606307799573968184361560556244622531123580403782827581834101749960904885242323563081606375087124314406756720253576861964861029735161644336160795541971371616919466464125198609472112380838826983803780677893481299577722016862456844524386227528134647361084580339999998370504154590549341001585623788394560084139290142755226231451265351312531318703011241485836151550114358930894269961495809761548839076738363307952321195357435239568706070313261272777419058818310945775527372269956088936147913084989260366089551899231877121759165078259024853327591800651380067205425698024557899078494369032438829532262765811557970708778621509409456757157876930066520293802372820916779654500015368987098913859036030100698668217934790248358387900227163518919282980305515658498017699451726536760567006736333052355464333992888387019459190662227196990535565289650614128780133648910872917506067683436801480062384032540463640753720462632668340807343191815462384826849932182044454128689182129377817267741691862253911227698358571884968663440348147563031123374829338865641388408650695986656014825716385737572203362453970853394120381038880862055878726323643231110408134320226112856766656128499260114181024769585155553762547843509798402924111497356712268703068335516110833128409049162311911618425627897280542766560322301894430409340200881075654417414445396782114702811857977019213516866040272078962503825113796514136453770404039241295201462380363012623270492510235362936000794600646588620249603743669855288376353585128683882590134897077728003518542410156922365943542116495084801555064210186878955148414641062108994672764816748568537596385172480208747306778111055724282595032347415575494288524626249744805799576879608308342913589545139683925965935319577271451045919217373033214873182518688205944845605429474009465725544202700557177699887964530639840172158003142356684635020288167787172459405947858964682994610029913116497571468096291764930293164579085239555162119489847354945908847854360256570903139041491561179977808791084434062972088831328530955882645403006140399933686848105286740466986109850668958920879153596658627644422690032336183404730216018679631062693998896787645484958637622555140884163822191192459505821975882895430513442135261163395943620545680699489633668984262216762099857185653007992581210674482668539562353655567809671515591015130938960876310450853483793535096695608535657982363394096023576508019220784352984951983490549019499020242766742764787060644663847353879041245662944677576794446511107003267650287176037890261796673216848635175970316981034857850634085281749469010818857855123612390893260370989064753808527990132657195695269214409055832120311677927159414699500024151924294379159597704921076543725156790096388932567679820366656183486582818697939334193902157773986788918554214791489214858564006715235691672124727174754458946130030774955795017794196513696748020482679481925038264639662159590361679637553105452970162699196089943034818904939774912303382747835458361119106500329602565168990016628471377324280007373710973334022137489471085888690754232457708077312590595860106467356271578847254744903557944364708832696236507303248876347873238689620110601773893684047283395537891337968350581408867551748188104956824542559093719975313927125125240739564777891513045370686829596468823579446455264876499288890384716559180883794370721780585700346151792045248098619330507415365268900895652083337300105661474528090335029967339440747554618379750651302120469331467250697711741350786289548524526976908851934918965250344845109471386276488486198054369177591276675588517605489996600947646503106799999064449150789465772503002922295783335901767134703468696076726819078278808995751421223324362233544742947759437969073880262873337488207772188442599381106833131279159433110846527640692018795595624026159522414996426725440618629383265679930216111938678657333575466489512389866937371234119935501353173374656723595382512788374354610499624427899843253929762697524684360138490506557568704997741165914108224735956837223579943397366585383337040296784536271200099396420092581785380255302542466000067698637853647010708654219036874301408904137667250921940594801703737507278481564078272860936375436149258522781365354477813350485222515510729388884688001072877341186964355870853631329266198424736853810942780470479584928049624813823245579730831668332752402920127896337193077534484821565557156427688034464010009815616462483178932730118746716071091733477800879085286187920570423901846929100918974626273431789035877203467502855796378361289117081044570675857729618608690910862900656751677186936461944187549405630522813909317031464866659611479811829697313536618071642161039078851844825495625660392818234946150833713645520828109384254887001166275958325697617667490648093287377500956967478203701703586752920309887616676377834155429484160633146911956489371320335493641760305982439321141669794223510882403975031499339901851268239982025703354018327540019579341794603841874842351859639318652072789816883757936464743697514607570409279279122386225407094083492113195939064334301979084649509101076111493202546509301231311935411491782201160806664531020073191168227249309083912047969064193751761163535843995184018436406269069189209921285006871334880182979580140653652413015283026836012496423461949136853307046659476031077295463295417922867040871003124814686280640548965483472096110461875312138210025473739597423007050836173241149168382935309983021787094811427206066973672349914619538461432590691963369387461012961849914887247656202385514500191954330830389260136940736510505260818283550960038391569411377348193238389691094887728381373086200231258072870436722901228929962808940239773290684495441091079387615620062810826576258158254204165691538496897540633993228301804255422600676804640799606122716136452428749178507049435588102395760628087960353721096711917178080432304408627336843212542072475775415507873633962868473559252655186638304543186614580874007168288760439973571043855603684746445965981770112878600653649329063435237522571155955126316668892235693640144946072899752762561579843197590601580857673891672875306677975534837299410263875917181251347993333519015393588005856919508250184579153031364092894581770836670941804286359277294921121356842542834562035233250764581048342409395669474137834137318872276291541796237802769733959875786270110015511984084498805160566375911830255990245062681149811395623184502258328821172334358304967610732803703570487148953085945799398965952205373218279485142303591688883934113530177474127101413226063812116394701911492485081442172606568404396633616125351379937782693022916943506318259615516875821775087064080166198633770582440147989702225411028907101119426541001955771152452695930568917965307651220083862787099457061704157416576119981972381068651793597248435123975540099210255882159526537127808984008295885508653846624762095545603214624712309660220108450957767928432680934309754452363537807509226546553964581727426298957627979236050942852535033015605814645416352065943891570634700358534038361691483447081065381160044143421296985587570511792686672332233606820290103456058167550322331780687961709019472495468961220521203192186509548022409793702610763232514081548128911595967582647002791739718324688357786689537043261376545261699027393862554760602121813637193894940608222481927050744206383373524133449180492737108689414872492756934863360478832114938503356361771459461338976418380210223046729120655588202656882213938640107168898489996023258707888977270774926129668280351863971825129662644347096323562581027691569118542410647501157590379617750201508193783506665911541205986804626464020710557295042572393782744136943613874726523387118247164824050457209794227366070007347416848249893864086376455786552742528042501412827919514418104785066957869619935499376925207743084203343494331706015190110640880423649341508919048393954007848502810774687648926096272052523083382438813589434441297015802620222440123675981263687095033711881779199059541025983826238841087282976096638970783210768652818796812409115830008398479417349241586472936717341187349053804502813119263320911084940511038661396678007546037083094335048288244535248366807070978387685008497305056684553294382790933000048117955185014582841383483524427701413491873755162264355889811958307241935893193137107806284724937015599555854071652135702712884937778345093938240252865611873654118905727435737535103285350310152538112504537470804253192625623008078992805762472359731302730701903119271285032162986572571223273215038982320681159822860749461394790937092434581900147253928259761161048180710857207992375073050286591929165486259503187231014920084195270261502077286921730817310093354779608050797910028353393681899812386494433467936157241014962690953939799910297322856037576655897476159416986469918103308763531370086408491746676524421061162216561303498965737962479603429061666911816615371570107529590805494293319619376985441028630977419462777798485751048650854812190669188484084521497753029743438313364972946005028034745363603956156931114628835399193752622693204533722957883245852719871949780338662049450007669987631418255954067108320534656444355350989541391682572178014753199564050788703394256705659201038104049884916411536970680823048108613495921787921586658459178089755711038930288344934227317102024577004582334547656697013365928880383723406486032624879347315403622712508067421241377020401809832959607565628582192238000927040076760143003869472448916277976859658346040966448194381778425105466538268380859189438349189346341770258790080274111966602077333797319321041204577997938462664938621387191201831864784117001921004022290069519139707957791491312543171017928165987374235867474075433010014239432230670345262079811113923018183777450018461214298315614488523881222771075893305974954695647152601450961974754640278679956880943751595302791032699702489868026865387117407374029353179557080384327708530436347456628878613813818331700828787104894202096834955436721630995115938759342663643645625034001162382937448691522345883272772832378266821548493847356769690356598461720707126079253309771474594253866903104015298989565523973508808212703661930755372105589460820011507548142006343545483560952865591444538153543206134227400313895086690806437989963951451946025310136716175848385312246846869422990672811866485671903439882437183067541691892483864515260493013333800736684599451202637537071176613271760624589298183608390839645024390136505198919088187054934187665066004024243243830789327247292227481262180843862622440854996892069348654549859682266389203638484014484596757582189976242027705817182047683259911917494430763093799420673862595752726566343817369928715697581135613448848345484244026637885223754064166844816568490511253953907767317174994023483127913282123015491011870388192956125371798788825339644195737743965069564796281418670770031107488074965954690682444479329563436365684108361016473317575706176421664672358539763506607339362817594585054258213197356488441017438914114717647018154051653509956268249995798581573055392385874211827513029225691816507878690136362775413887640534928495529525938671367426164941540411085062085823192275902054791530450722773562412937218650037025542811727735923758045174985453141331206225531460371634133805912620167774703827138426526173590513954242733767075890613324705022396018146743060333351570578960511342825726857927783787053498121817191561370834208197013835897781433120969861050336035975983403811436408774544646384939292342535971933508819110760004426893463098768734781018946207516984276109515946864313126221854225092880120627930392123847607915282633426183709193991625664984699108849458675587045132254280858513674410824657005309849292441649565103268848165708984496345029958093356041780621204757006323667942678193032052588003898784450772021729889040048107966290781716282284523741504459539155491994436046832696846237712704309502327184440136724054363926536998008559121514601291233961746874810916145548561941609789207285120638117886287718061134544741883926945748497788122107510576854789404554534397182837142464784127774439660312063370796247980307569561654792811926823899154209197227196418133963270734600204229816156882751504230566861345968647759255638068793323744355632054362958562462041560013697315418551928659397241458747363538736235384997912569346170636889397370589761558204920327546136129036956867082951261943087354190284979371875197360536715566861700051596416603619124668652433583930458731364807375267822101209044541265359628269059125895855909834328025584042313121767161620487128826891085489381684399527806552116696528105645461450392857053740796790125297523633084769320060591485129180209152531064940550138506096893244278179669283113862700858222124954128817984596344450037631599286915963197899759280014396455902731726700778087371144865694452146163248701072792335698641529130941726265013993878985567059309638042848472902605008375171930647526318355614962614142313089888245961910914702790081198668116498463722943127779615217729884719974762337761988018110413839674343651886883860404034420575233771949909502700209384303810565926934885715637883007736706083017332924750841831978886863810029399634040366701646513406163294767708155438099838225290098876664962238107420194991100062775821355677062632358769951205947848139571490969518200407904756659131210540096689158319937279074587782870603159042502923969253228227632787988322946893095416194917817115862939427175564377930358111205652953918554615022891389084523004003525836852610221649022634659515400425645532112473912917572243607516707288148175645844126235365703798965938872056350995375574050452264513342124112181183857802478612188146936528280719840244757853728586074698763899659295866500838284835675294486992814622014240991088894879268853713641921992174410861772581486931604510992009516188694351107982572541219839192406205472650223265386406292420563413087788030764086489138653992202306878813013897640568732664460895528888082959013613752173313482238050424641225682803113039637570809296410587667635048631606732566508892780399281928395926204525809278179385534847112013965501621359249710008078926262631869398312230101015962130017233014388514159744071871657854774216469951344538659803424412673775095560671916409170678309356952379653098433634950494028646640419487705103542563830539516354931219301858020863357256877530438141955746033055553697354614534169431799931856620358267930774628071174993177342449870050392932633854398047471774797042761181803067498283653495816800364158808453243338969700510637979214012727492234886947008196117173664453596586359579744387161924380258452748047657875995294450406169729899146292630837269152557024010690672478445784780078587252005179923535607453608987559233193842924330958951304881391992501643698028238421838066204435782212557586195709882424984501210634219865736869014070888485639442848675030341689574913419856692753211757214462919018089505233870757944777402785867639182048078278616618689106209911103683204945037342660663126191233363132458234429844269535220207143222212678388080116588816147433618674501491247410609652357990314325363331464182488170049614845125066180867415859717188799613129903493484883163771505950683280269623541915238527779444824376986411085734067140066444414137403043806453295333114360389884285277029385924820919371903023190418263290345994325874212955537328021970418642563217865646568126554401883432870347434827501679108691314908333289949714230650379627731311924935998740689734354752355300108956214602393928833993355463806931398330439027317061846072996888745525166573586045637419095774722587469832722723800660637584524066663513836506227505622719840407702170892189260979794833278629478654124060631890264276750960274380058035237915125791300061911873774152160122537241004461132777135990843138105983989256304747191598693001749553912317862466323283642783261674687365115990631093317552311537927756764792204895681244634565855684666744498226274775180818604807258349724428622381112817198046571787035744726496248860111245566246885374875018392564747394341392700977223756775737023599173229072973824760074371711178374724932488923540137794912392891380376362525593880976495148890887706370235844292881044991157238136041574605957369711935660469161266565434825033577094532022971869489751561994654912296115796771082453726004419446559391390952095785118374768623300861748958125848072704852967537844368701734884365536928312420514895374506277399001515104221377931987429047914669787080833378747841132290391358843853087390195227214986789723303545010093426618198466752192647511220970207606586443244087132782780518392171876824126827310066334137698097801788183085865940548779996756685358459518957667410514707369124591157000247579133935189478677018465277191161912679195756388456419799129735841948735248160420143566698145693273163458281807600066083846683217279340566671921619756107852715761844862393454447510414576509713322820375117635734883682994952530117944090478170982192739420039010855140156599951259033670344529679239192030992217933671031361439660342056179493635480166765213193636686058003113452882757749594833593628711956366090965638684655707750620783959294192882490611839788184473429221951449220593161774707523661569535354863894217873001495437940109403742026129119856810951156165592271387336629422686569012408741465079808983132173774555573554198626668187290722958050411970241454847920687293908436662996099830232544464914712460685102394547780877036040707519008389242524286745026282038656029785798433297787700443745537397684415580208302824875958208212162585373380230135244045701351084586456439185052712660199692573574112384999929377162139904061726531125038094006177915540654963585595727668089311404548444583913441330489825769811965821727737780873703833790007624134141178566246227215323155577069959511655247829208852236683083488364850992425663789048136614255474358425457531940490539517977095235255782615548160717352037612273550251555866384431314081542789612088280042439680544606382784081826815365311263146811808278308684132680228842582811671067826305663491276803412228929077394230676074926554145003647606559828000214967635025598029866077556027706797280732720759058920774375144702804876408397834756260956791522572875231269053657777859934802651841557982933466280798746003234678478060293650357843453500703512404531980415314639760846575898613923660634484232448569794605977451127392063520602673090650899506440816261428396469326260883448990802281335872981138673477108747371304291840194512710932114117563919433074079507069205175829955170496673000242179120323210374466111719678675687902600763542735050476000472199261425089884757282003441466320467121052803308031017783922411874043604157371571440715254593752803313463560551020497576115676365140787179383345843504736934077277562138993371165756078911578968721915671790722946024715572633480838642361500154633799083913559509943457785383955706381496080746831610721777367929990718682206823798846134251068778069639212878274485929362970942402088856019190698220199246816594284248838142241228126970518402145639707625809688296983320839373413725930837601803561821443146139846512842237937316731261058003496300472817413446457519431778984573975913909469908810948187223363705743212018410139297636496804094655760936424006142068611733121197909103363366974433891142129226042410396271713796011064334785785779393111872532168718522073685895636599018753768572436148858369625518842700939562337001422565552727664871982796101319446014904733835903374836615423797512752631205649048659358833727449662425014735701065688488675367426343060741186059294803162360662656204991442012271684194826948735253787982983332443451060817386218683866776810422832544092577168092656068312642483891299342464644855103558858527997336936266260768926518666330070613073149937996168318391426325299188758148041403649707750531012720473809472933644019390176619839670724691228642395349450701355421086032260914322531522042125184291809681089171409561819729302395015481023857704070769604854272631010534556955994025188843836186682884808820037941664740530852231356597423759479631034375683267212694249873379504534313531861390325365920498176586444804025783621572363368980721816903556551217390361677191186297665004268506747560479104178315162205278971913625553818525510033508633465097077877335481100129734690907594664891111181169266091598655907789444289322567214843014318706700088768590832767897334752157336826807015431670806134167187156022989604149517972744576570937915231962359469314464082431703495432543468180005036309733895490903658305678207925288034265547940351681116095617554323923919276675961065788870901507231471033986147299792612778274495068888627855232906238474906837962909620550708375013114032273076673756115059221445484104929512650564264641770404591262295883987438988003095608992401130274629752404380125503665333823098788960958163040635250687335086907056948253152252227348453999521297051013889386228977611403534575478966821822311199892156653387161573765291348832567695619877690177332853472609415029821687170547405644695699415044218601596911397330621349959004641948300247619259128259157939883871282384989595794230133901321251048773490903680885117995637976243690200377315112931354935154979931799484245833623617896918317945566517008188094997222531031693521199283700521374009228771922710454823470505352161535105302082219253124708162798714782153287638243269472468993648205390926798043796956670139822809508065119371789632282221839587089586055513706554307068690001191707877444928170668702836580952318692605217994011115914599251180091310594751601373360718970481813400835600539925360827589969381282872499764740002092799456785690525036558788889672542520394962797518012749428003701405551048902212796545055934228396883271225727058803964161886595969364411084575798999187949626327852877152403105741332727790214478745315749755073193446369205819522226328517939274686261159691386539506441894250539648290484552283291615363663722017653527527973119311992072550748515181052287422679251276132493165770567216601578027419093951003930417788892999272994603043771622391346702276311311875231907191413208964906130403078706329945366593810522060568090391266225259362546712850356800376176033379292483530670481534797500839818579861792270438166460759104711344037629429348465603299871114338552318608513697767385402087425819217982013344713827038001487288975984491303319537891287379914693755640549868269169908940250113768817887154782297643642248612883421013293755504061334321188529071206651855290189625426267250157769092824213828538944028999172216409344648395439050444062192290207275877187475804466722302529031466065716700132720573126128382067799149284689952270845859763793937997706546721170683881504285136935505666420261476967661515922705770043169584558374909763660779794236551191275428272554762718219819646558740770362283322341229004566148510107494826365036182956907156579188906685222806039713220466754685063285972473114959026030283613322709672786734426543111534121284686162714478330138828447572040714955949291770582192290066927143611095930431978872139040853329011175769790266836322428460467780806802490075075117384400055933973789623803971683813693963553432219719968513767735606054562122560864697974793743209812758332912764802270944794089998822744852586660282640538925229970906088129885949227311185774219025405278336239824596117699435508676257001177066010447221100545255730817300819647934507526222674249630363093572821586294856479541967484624354555243246060196248602966849335861303790693848500298234420247231833094456278877884097600773137199841743428753448434462758906502706442093785350856341294159311625256831944981157086916885954183409670306768875249571956784042390480739819839292320781672125524845913204080577562632569850785073338400370768114258593737416123654864796760868805140173723249459153496510854001081370170927637980768271768585033384899130999210030367991375267551635802263021906376330345566542394117931657388156457306184589066010430476392940288421698113325872410313918263439868852542639678076281128864479356743470610248692336088777462998516865745466764728363667107947722279367699561172727191640183111558297516256670507921540999015086992057261111628089455722536318535695604842395290356322633610577699924502037780963358986753037106608732937735057162568631080144886711529735618384003145245929206336284047830572334598919705566298606582627502295016703194647188477910977362952957645228361019422315340121753589440802925587006487751940688849770781386993062156405151970205888221345327930937384879320710876176483161651189585465595979462336515962269118352903461738039036711032595675340497333296043294270754264967215374398849325457529287883358029866337545710649375705987238371852573880962445866789039772805058033745915171058850368326133826218219808605707567145157418531838120018413171688670963050689073279501873026610028050703429538885423687861861277838405870379553863124475374521483640444110168408895677899306049515380712565651801781721647512410567840264930746532469324302298628353888137589292027848368698136584985517752490065649385608073381799736570011121819011772171129689880532014587387455191330812405973556812183474274546113915201128676990178086753177839872214212908011973527337756268581260654320217069200308050100708810223769646637593047375612516762026613525516620581858792546541037655838673560107606299388157616380968591564086441681427711368992832102078470488132262612451773084941352053740640909230778668135659524160437716143407021495442996465842760270143417477240124489874845675062005790706725545064312237034498055562502184889442190294531428899726662221827995927917222078835588877977238981116824645727586819141063424393373322522817159626049738730789792246910147163470032713517102569451475035631790970712828336193596709240005459388119832858075480817417792123506008878668766911021028206110860710588080218209207848687679452472072546185981432980594006157564635331200054658223043008716727618326182539985226630331522892981172323423489116058282344410549256456217343289425707542350455944348538812005681355095435898472550231467847012985935021698047771659832921775305587940246167523931804624493815699021634015421850644438417266764543077596488575524960126220474509014382780023210211011588039336080690437231445894376485186416861982360975747136107104224423711723679900025818315668953831475304619074939788141560345506727544436224071155047611034931750265848671302137279511765000684286074427908661865050330703099389128796818651050992160246666260902512058757340880777301702117919741097281037974642086651338167641037004117764487404298612603707139134415537306653779578052505446292244684334017065631966379003030721315765580488429596516599027850995825211722896982779189592325515083344618759483576435552170389458940686706723323330582109808478042791710416184695029551297787991880421529828327517930057056922481009792743131234727764152220757678351422065729181950264741584037705821421080543791826640729958529476902962840830572837044748947342449288098975719901873437531711423729528628066640563246188168520608569687793647547449258058997974035957077680410520884837783517621941155049027892415138264096733545134688422765391745514271363904215608597435231035535744725317067281226832924426574174370932438994305568152106384707022475670743691721248290292752858825721666030011332242378727718686031593098070919225056650271044730207195393293828141751524161895474409011021911882069744152108743183180828718689753907999231560760653815524885272934761074544258420315217044305873080265984325277116017634280864188600046405998625377919092871477055019554997250417237617793975223382726593519941424070829278512262276326951158183332968278811015966395194532136462799623091404818243669374208255328342143941726934445346991009665762308462042860703452839248391171342172012037795201594063322433086346270989048430953523641944729934142667219476704330165787604594782757724652195526841914561377067762484756027557672149521895555820747627808769107067353786121110110091755730702835413947596746616305924275405295176851829324290368692234945277488740484331313831636306184094572431409718765736124186002845604948552623041078295787767646069837559084145745111052402717582029102912053130556709866874817703855176690440815243689445862611533941561396562463945154296618114153665350532127732612408321189884230828002253191107069756761478672809613529206161672702516057972693486372737247561737501259545009486669910022364107641085853881171667744385410339979389485883739039594427031528725669321273776892894975536904600923536850999568788889145139330569813007133425970287949533582033561177082978314261699296170539029299388267904578247291215568114682941186311622844375835162608482069623063013203013501310581013937387028565165620678533414462545310939399106927220280835485684347859284401214076912990080154793609058365907489902507762047738229526562898860565001350217430922735495235264936103488520851166578247128902575058088345322501053321363147204774553531120978450098320721077099003754330622695297024866633196404986396489169055202204889818912509765132577535347467491103111844456940358214182352380694779969483128306682343547514605798586824151743792044167405454918057106765798353187357909770814567043328677035467988771518888920441879604987413213616709864033462200836832516793605596985787379390724517681376942509568979563447178190749291534800456222821201080605291278602413657853876366773873437192526438564779915436470242980571976709462899712566065520616887814121296248933619574664560111636384897342581323113234932973648229385933282678935259797962034794140812427724222532915574186712548215723767465020492869195420147329621502085169527187969235548937716169624933892199198520109828702807559936218477562961924251356721819298972336089496428038175517765511317145088802053138681505754542164872182447502693201141429547353706407048653522043805782632593103949278944495855824316055453355079336383514648614295804932097878234595952567918594499661433699002873108309196279154241533905433270777307060935377531027695714964220648405689134389129807795885083555540094116315394297174261949166028940286829813469626152538247323285685669900961581894011487061574446622346469491258265165138641572016461049899174944460786274252884319266446976805796320536447122448299354807477382271546212111461006651102458675121979791613552298231461489876195902614625858248614743141495434119549209836945197253062262664179126857407490401674803348718402106631722567935849764525202680765230235850844530998042347714815910678939347630404889111571034663481851069253321807945516224426571649640895798624812840449180943975760118187812978938280751497104198836203346648171582627230047716009790872885284501128236348499024313970289215499878196139743434679072418716585103681380157477420940030104949239660318957731953041498790433424520474294050659331130135600049028665168406851381152318041821475080639960499374155983262117101974515195346163905788842624657351138466755280889986967622363378253273318802252408785885618821339573555764206612660426071546640402071268904579586015332821532406815943529182770770336577075139832392800163187937416581154828857242412244081929189997449538787208996013252822804776372051104931914260252757537250303831816316148205365352727009808453098073071050404295751854798934004119354017796400278530477242509741116391806931168378011192614262756134011313591993378880513220953491734577089788994928385826961437852214295010060973518561609514984758090956624688793416342961891538363292699930875488241772771248769712641847908337461395583753042516439860311971097246113372434023506008631936431642264909581015043956383120403302512555950190975127780249343016108109781040124577016451988864012124445926169464614854074848920683051416141564369941851969720098498114439055814670838396647197297466401306088319348221465795634587570346751088172486191254325812664294753272236347790143800329426581033962913008660069683554735829565574410244353032035397673910175167225096980292753857589398120752076579277313196288869174051076421323737442753962879538935251015303828336009369027104343981001285141637209934258393957248265909728014273431820671466945059854682371001745201425885863775565046077273712890157196669993102792435808187456509245112034039920345768780187637027024391945232870765537938139841604055879337532003058178046690365729283791234792336711646085936433340953210318571741974912002107281007140821843736036686543489869428650484818531785044520533246565888960902108155784495202807129756654835842724702555434696996572702118216082673308821822905747967064755483304282266120072039563190654334011339072831629274539475842291085636969277691909167810251102653454500913466663059353920743272195245838132923644702065501847910326562134465856472899625379860706495349249860672678138601287880292837641342136174731077008959433723741108170096329008106292544791615603553558211587682811991049226630985662694159252231522116703775064646738006242393844068586218076182271522965967893723538447551709378137145616997340753901896096693612711126631704221639325292593415373492255918092798965463567485194525630009560951076905804241468159848093619535308054763820792169197289757523649695197641822390664505132382932141860515578131576393195211083488660982136092262797385675862614613628482459792320030535901404362031648470346636725866040434319745378017849078549068365804265950718635236739009453464630913083371662811655527189218280388634264877665396495597481383861423942594425385234932608691476248014634569188559236062899380591456936299125506934710616771626932910905086116540367717338678390219501668313695411819810127422932871431934917370173798844954454011700377335431819113548282265149181349106162567792230520841826025744004635610176380541860261403528021298381537635164499396933497050548790978584344718662064619266843163370525699514720011302895655352362927910652436897169416039816811441974223976397117257395533728400066170981546239602416797791692861411585826021264900931449118074715964239365805255541656535993324427728369445636305600239756596996121065390654350662021309019836676556929570526702781366416243759545902069324911389944432563244940592522042195952324755922647954053391387821355312491361772363498413347720813145336023354318405664889214771579690832093747837247145313226696506679238202220667653726547839112887364263720552234118969233781567560926823376481394788419009446922404775659607693467978484825281370137456670820161597133999507247843406284143234378394811970411069952705082093660037610179807383723404871050621478990994074198494097298063139491453625847747389447315085600183257432015361764245612529572943177930321371832983272994653545057856596590027218878812898687134878061401339475140405804982455109239972316141915063624643070299895180754595198780849807471123161071326141527903189020521396612442651004124037554578944684421871614262251880607499931476231064511635313435641065933088601857567227432809269008797021291462556627494402631035066589867520961939302110914119235964420227026014351552731608343959619372257946157756480220887835846644387558193600308196923531967539328109872563065433635105674167596420502089624295369328884365980852275441760885210524721765751041685767844862495587306356586611967117214944880546695313570819669285242011036237314968287518780704507494050595635676126361365369143841310712898275057962682985779956784318313841497098542373426311298101254431779410732044916830670824835515736568555646967708047298616982412167795980198409660224638508685736131528037246578023948235541574535942883996468966217469527231290860582853140468760049558643646177518440676340015331217683767267661369551921476991873670523433236138355701727638931097954201362717114816197158815769652962535379559965648219438580432009153793825086815107486943486203678727098586097756778059831884446916037984777898263038731222007891734319568035589660160276132195581173585213719580328596791877917053326909164992879129788557490560235645884676768818839211294004946517605057690881959683557767966561581071397435744713635006333856518721892275772856444222580533493296147840154254824560125360178578471425785109888193814223796217764290637105641597897617952713011228029429675653956732916985462270818657157616677496745737348360426115385928157964867418815946422998108302173568563574248757241673686078783764960923845775279491712848053140734554188916747635646952455437173702316279082142973642277209581286558511080276533215287533741188020940068433519209015623148531093533370442380967589907445788592195110744321319127797757965129426683171379283696525847026504298607175194475474101778026175005862023122465314663178929063128568788783496341338046374000792192481832049493866220605458192410053189291127040853215271690022783394038244582574731839526672987556013031121804605533121779564427417355051212458717333459844252753461000161754825715504035927155754471964306521246512750565250130903754129987958725279633900815607501355122340182091302357003814446679494536241951778537870134928472177203916772476866195540753899899127035410487976361354550303296815872014562030177143720266415512182685049838293466080123648239645215708393044764297383900440052759908816018307336711194785098261138954052245275846138973211616550753129590557116772119444965986493117018875355931493715444676562649266981947059929984801913086359977928111574360097211737464779290055039957362403888578999448833442823322541324798104358873814195674984729883673563400723618476294325014844541626589807092777666612281883908300092383683594047873045009075810629492783024668229059362502842335662612277036432169164200127983835164494746750603110826887356695267982697010498998381787031895197138229478244907566137789584738127170685330371690405291463515922448718372416602018940705709125246852235109401028278669821730075704581827553911512302973403358512396962076068204646049638915373878953117278799825734339631434667868938933787364029941280225989110822137062635676882083849311055949785443204181729540770787662215429013464376636896876108929392413346501583680168025902942723935305839210582790489095229499386903024288217247450196038478628197249028990626552140258702369242738656686229602560856702237385917039254218053249829442691973990724515538535437241572558165616659145392084176203598828343134500263949540271916868304206835925584425443092065633475805878561996728124755325562169379815531241871525143898250525215236344842943802501319396926699157667725710551195260782169365962801904730721663836444448931360606281550501714148975607822035548047798021429699380786519947010109993069448407563730259329401491896435841684107486185525474806042947767182433450709966067534835755239493886404114633454252049857335285158794072037301928003529925433023962778235421103303831123538640209153698901625559137992947193451145623633701121971090551719639795037366244219569957059348273554249573728067757780963081060848777557374249385237061669911654809673423910316593002971353018939510387467953100640751202826613816382029267158397583961208452522878166599481329035144566774807841407236353414424462744544476357347263277500547415499925994681127160207996263761665326358975621543092722116742569353510353592775504179563092812155610741077165111071720694819407040717625979823997116528400995502418237745567126746725168291056150271497269916193287380250447448441707390802599807289980042823470171310185188339435407779383107637887448546827101373139718357161387060073204734117451948701081082885511814052571096872841412716404700910056187722122454278211012080564292871134816148088577120965247327596062048885462440376044734904059720491385501335056806071425825937154180893376476052471698698944665624493137014580559796862753706685670792245098293642445057759310510728586950580418678516512875546659020390735451091221282115929190150018013734454606573271665551018097811491853471889623330630812277590372150080126716663863788357820168935262912155530450477248519891727426977084134631518175141924150103952014517114341549834017384417388185496723895658310292745522309095909157774190183672026526583671976952166333333690784920574873777838411204194821586471343837210891298601512745151422211547543452077092675521642732058256955847192295004547821411410306442572686986280747680231786207915620532705306311792498716310579749982068880352956943868777251803570870311741434321478514277820482976402332710807316576100042834943866655736760606318218823557835806659031142424870412608412657283539311426559195900669975496025143669804321313959850067059280758616702857739326030502492729226685855536348007202596024063350666149685523336076588664220690402137937362011190248549909821420108468645939708524809001326244216875830545205801299669680416422888780316042240454820309611565655923208654681590227072617917408818408904720836787934505431700181303405379142922925066045973866356848432168478442270816741136602551640541893240689616964904641281531357349694227586430242415184390105348265070250021672247855893882611819380831112801819180308805815093063904675953003576853064147732832600990862235908866120609822389306516151958848569087898310504778370192233758101148907334739994363749468223683640706102471470708004564305347249460743561806961871924208501935844621230070994234247495791932730664443121677675267794082914980317696055164373705873251410845478013108633576264170252047559277682131463807292565305237623372029783951185294461989413198802207585802982304994972073543980095905464675583284647175255134555105572087877666153886786807259941940455111608847261411178949050574785619265236937163028051664179968525906598088391136704415254022313254504699100387514751046570788476094696102405955574498042195592678748849651497658548848643451723406326521146328246334399169527879575934070666483529280078381360332248425289085825095664485388629921108629110191989137213955776830021061252414314416030045111345991263436835463019685207381445036214367613782308946125154801111508784390335501285096299220431940522149804760508931286073656967350563341933020748753684511475214855266105125243934159935647586129945272166031191869856463060715109223069022827792071539676339124181819402906519267757164545252583196935481531850267832918970173343013939791541344877586496462635611750432315473331087988606713922561226730421563793158197376943959412400181273509621331747290693949721549930555669300201205440529360253442452905329524255506179677138823500628086971260045060248615670984961590948134771610492560887124310253665797130928473828370644856047610849594191329591049325018698142851609623053350020105686743183527588396564428501440194231983572464468370305215335937482936694124630463492002759796346264930808405031597424154935278529867927087860522535157251908235820471711518818967919917898122756958129486695485417645645274617153657867872399644860708680837728400441860590209284395161387849016015610639445115353345329157386012414394246530320321830451175856821431279610926293861831473914253268731001713293660916571243171909723843104560001086235807573820396194173381485699389438897552781623454367998889347296031838254995263106310332660322899004365323734468996478606991684909410234041965285275989488491326178640384771446865039515630911552347737786127558814257753725250744121543792184792543683864780522417589301610328164881525915846178587985398851480998156223350673826508533211146400531348771647430505234201049362978716119036043968855430287443891795264657806571482770662093073202341768651601908399775044589641100602720202416787733566377529610346567529241925597501387051451717166099000113040237547022876495882956447246964123683508164854906365249649674715821736327893684347527828198031679308934892705081654906302820754295783940427095629442947721717025077444131941928700976503574056479098617174413448241434800585049867407463282813222865974655836743468693025547287112471891133078752475286442924289680761837767912538207584565468917537766387176964565386374594879886218465702792775236836710999959556113643472675487547292306913187837715575167345503336240119580583164120040084475486047377870888009454211095487191322596885952920802525074270750672755570895778764976907983159487898534986747900419449062630468060300124948099419237293176540387377831995613764305528700013699592164629449504636665588993606962456319590078192025244475589867492096867792147001128220513371887060910266359323525851441905729479488078337793826774932574238872604629762209830675560897540363586874762390389612955279479364511343914875864922030225838596463360152835501470768226673240298132582203899276540759364131876885547722363525906669916272494568000304746686173339302520166268916532956102037672683196097710311844420224478369169500967030312982527155184401978163607424405775486607406058400973375147051398739154279230095816781358580286693129687329384631949782747784947651529519092522744296957834871824189738490436722443588619908384576450412439403484697758285305077419647712243929246556829110057433155205200898545202834213689702645332887491374606455032661378762463266386480616103403531089598419867336959248292658458852167478739811129942997531213354340930562747389699562644228127924086559228977403228251748238144650457894574412525288876396924691334565894813522647691313862823683082265832598686187036632244905593126133047415992242377052882609191037443930502868119614157949532746400927034632915951426139945221249239905331828948826115959651918014935507994138579657618319328467616093619780558454173692593859033245623711329226824743554987655720495542414277941144370429742411320851803559043536660675414705582924527326319324041203274411425169970812975910654171072404001440874881867763771672538419277955389158560055257821149001023863737334378093614489910156264883057062289026125653004255255261024815761369338253257297630433991053298585621766654721618043786959183097521329791991952774094730978231667075022846431629390140390406855101521542912810496717876974422604328258785596065505173589814445412875786958166928304618049961853451688103636191213819827488913978385129712657838321166131643191737235417019971920400274908887665907475877174590811901099493462369757899414917125228476672475721692880858012442790649829097860822354117591497204661286418204705336407361252903514778588437660632411057843146693722302921454051450152838109436459535076550878907581908984403030072272344788548900978420093232278219113059604500812577000832654107440711309819133326721563482607639873993747028193458385678109706293577843201153832520200137437587094038232664188899133003216844645446302819090433278238848717101374403895031132527720907972914118424907948284279130929630897106442422515060593914279067555738723227230664914691074697620356559848608135732062465979193493048394289847666766239434055751122340345312905384217560650599028899298052061576412428678693127103356230752389689733787205772502183507316813597441895580717936759407112004662663283446934388674434642447265853042060294063994297830852243543835679258292575292777327640529195278954992493911580891226356415545380372217380671547484340537177972235406012011021168703259652982363579205585961767178872590413691253268710347423770422861810462308508516935896928066680409121262230980076467291638357532969742034759021750801665641937636481555221138750200388260453062992629075089755604842046077482849567633893625655442650306690502086907599528484810028909881038941984096599732535446839402224418598800705745019306680155928519971941248338777124066186835365486675296959856865854607082183777115516889213752446551902471550431811528978310280956151497224914206258423089198293938173321156357771185167563652493502345088090690465798166272211640682502675613748983728486113430529941730440479086807875757043742394164345735458669592441736236833957776183207506055452057196002538275022615837401963586455210773662185714128101437061285155869737267362728096694863740175404915762572124413474352120233474109779539582467148485130072974843367664395810447763488857539185707421331058429640494597920706822790890517781217410908144505840289499102570129027025808795157144922429699557255772228707783153195338684446251578694242597195629306862131312923539605283596334419803116212073802699348278424104635696892899150065100392155980553612044464225971165319590731663922253208778107452000377184823390192485298905583589679509418019339371284840726754418867517109303040974329196680520361673508696252894018039074468496429628235161573860083664511376264821442113735019274718525982144556323481266838703494628935672777125265963853102568216861575832004895065464414946986401239968608340152977586536781337964597059494060345521406607777585349990953766081292728970346593727027698262719198144080597781180278846809473437140982805030687771115380420028045431709362741625667726018119861474162212754678668664718137967873523899533176479376290577732055293998217545186380441147824831149196868469061177131418636129258194682825300557174576848608072954417805403096769809486888132016040162642082386257630593210902415259911195397469125235956277796506429164734698780163849265215205248875992583705436482366244344771780467634765462880866665667880504352979732255007888775330485779009055252076880492390398376600025333764319887248366872048330932834988210552220495874424620254040455540242777324497087575965712714569316601164563707878795580225125305975633402261489250214204488238600149151100484851198790056634596845265769767911192198518552929238830862493471541213369839107520181744820355709708209189369754388534096393409623614872786014788045613750322243829546267525409226111934094057837466227101315064521466141083348953953956170304775539862127477265489256419997771878265897964898292779343738917074267755922268806906206452499587722146310434884942632255447849379265853912910327169995207524332812573895263954868293127354084268031761376980763593444328232159354903159217632843860341082409543191193315923112428062523093512221426177662995980235365201072476981580766114726030574567707387810300044922363145025947721916008567213753378478661783799409428272699737042717178312826228831301012906017761801118536039786166091466041642950965031069131471718875933206646670618862705641388029170720547396822918114770328180972786340489918128728641583441692831894787197608049582628340442750216053298724644448267633695718636720425378824007643718987356535164452769887567553053593953481788675667146579020015375456539619328505040645615258866123170308055037455987805992982438004350286704390281249471670775218776007085507971424344515894174282341025423405490283988435666137144954713863132865572053097691660318016960594546846648292598842915659585952613924814714550168565176223316618328473249066313381105666512814677673870212922384891605166519556029424663330294117386400955886222108626915786129805513211147900006607041693697749214891093633012097676793801223543596664016046750600833502291428987474424461813939577592939792676870452371438191645025124345118079965681455858987288760515602047881128867105538307173650509137494730829850617441613873578017388249482916176809303860825438927975777842568163620528061289672023068768416292769528182263562793544433554995717767461802679572126815047307096570125164321927347585778851939203130410142674812200450129696196239367448855897550344926483840382429733456212886443171091321816096519634688850565225288385395995961637222269073157275185179146879320844363612859321132418807769428735382989730695833649216339601610841087292931941899094311658810249455436300602374329862799801091732438558644378285058899265185060088460155025402361639447748442832007415521358353174478776096126432326294242735421028547279150793616780889015932698274900788476290245334748648004347880275590807165031494053694410372611497331820366983987745051365656581915103832002307693011860078665838126060717470779052233784018464840718775231774102226424201051603939998742245163733914616298784811808405665512581483036130456540930328792032199154405350180475625916601170272488626458992329539253204843556827411333359603822447708828410575595145734506515410436803478427439635886885790111438499005625097743387726104610433334969299572756764840680393362195724032738373155709081597236625140472727593874182909105076911290460789853202395278670560430347333877139312368119628630796889598264883235116642521120057291888874841339519122777396997400395656530813146014140732688289620285072253618599472209741115431591716297989422469766167807111171413737787565891111019057744174719171291590173357155852173402176326038390617087347261954415119445282772140739219909812962426265034841477849220319710173134991389189194140745392900815550650184989252761503239270624280563802799848263164315831528775027320696708804126433214211045357175632842188048079219030575459831829480127289454303817963015430621357774257565688757538028066478050448038524534000045598874054226221510271532898450314963272108358569836909692028519609010275683337106502479492835260159634827501407972698454322869463463053495215714436138640889660972610038619864131943675840986907705691223938199217305933588347334896534472605489055107587718406259943087139980175150321103924571362494654695016671532938139173089496692778070250488155309518254249875708078299174457909026068157195080804078495861562145174935357068093243019109843156486271777283935000613384936070979026254950907719609245952498111478272187831337139522243341942336683755874867353660816874377208331532521397909321145997212107673952431791471970887292067557104461258048042126099677799518698782341424859743086369884829493120466588543227644876734490557440692685279083681523341554764649285168907988044961042734025783727168832465466832961367583591937453877178291116122725414717067805733024138469839514417613539226962821556910296433437012956694218967493443522397253261415488066099518566841758350792538363166005251539585833320789709326310020566708975081850414990315188232698089832812284770313062135628445285922082725475470280800047106706817889637127385925329341206649813414060255018028299794846742099203044586779939006051816060496784118132920107818270228630207700141371182133421693788481711626011313034431903483683259229012776985126568557714082140415489777875766586955969570310039311926104413580207181985463958602518732561222375746341070159343719529838208070833800519517473129666385280245474347993497589932499699703849073564441429138962764851250013353007447792741621359099584788905658457143527508172712258052151139906746841220040855768660104145973808092394755141742166785422029926847397743391327150618205507222802505834113533796224757202963099446511913276022770770419248404292319670730043817534596645133162272047836411742895715310409329908511834171407350084248313284404237974993291443619309370873205082713885094611338040289242587869909840335750940980930489459534111541611388117182232091302246830088175181215950885129648818203731648023651745818542336082269401771022635794426681652233206296019965505817642127073734875840406323082171100354127955089809310754499730780030210980345305707602191577485183111322437035808103847388522300650017901916696035086741722044297762196102515317759284960952112590356000102959368932097711786868469536556134606224344182813190916864012857618378696168934318962666789735385740393624221599601220804032158275571899618727819740246485212002192690458882139098692224123970766373908463877664913676968740601697710047879252262892645475173470784474427696028271077245351817562756496795128910726887315983576112489489288712925324014353348707454446971731879666469757037003022393020876882329777819902826169387634265430509308895738724810206065031946999731197747563253663518888983259582287167010228734418555038311058138285819892241867500038015155720439485008587323733897357817942875375618800911764074599212556822906770877812417131352824206906551486368548567750261357713492716916888688177457384728602393928611343218169417345763204778131591207158494573731736450339231263900292403586640094984479877914809585091248622874343972304261153098127580996392026543637580083394509992631303505387094883676321180636124614985269772273326196085287604152727552912128814433468884472600519699460607094620191072548298091423987467772327271149167695531855547787002224188595873575793590104970558639066462809720194839788514987080407912304270954059969257783420065856821714276625934586457430048616748478882801426267529741070885024883249764405562165289428667765336175122339667109351399170219447604812721355810726655963141778183617469790317283998563965714857215673104460248333199773101485665103085060137470339492759227228890951288032305668613640467902502163453422938580330338173192029044437153891254021663929505280425840195831190743547006076327518234166359538528484180816400240748721859741380031407497560248505252992660484893557732318692363731436028930924352837013134180760032851309095322924191212033648138086447056589640394214214116101433953339878777182003384533428450692876276851871627646326912116765342130283828220908938977706627236101803146574075534539359251336937370802978003876595252859929666660925050870634790554041283004354735279670991697749659883071345486988692780916759130236188915530573158390421495490596352913598142905875496897210015869893340379504605110005775716856079070428194981414176262399996891629068666134329051609927480892696694241878641514863616150742293508819939177077553225715146833800735750155246981934579961058798300771116611082625336692262400778967524652691915090368243981504029188165333119591695526139476177238230263533868900984956058742617075315459350462503745486898981607871980062966506050823377511105319363497519948304940359445054103895027906001988422717778659317011030012693972872860738091431729701384092456391422152876578970722270330359854186392919354145447179508595119885648285573117437829065501103942735689340252389022037989198767174885866961162365773792843221653858196729733749560180976255000178856989259012125016376530195416279740684648651536879911533771160936959919062626406816373802383623964845656934534237362360524478536185444609534314791581282425865864734490267951502438206660063244863437147187449752150058649882692578482427116315905595817867860400315502715293621405380121427882065788768997298801003396241804076667562198836800093594844869343482976635634595626540395616574887083022728593006824786867375543754151657718227430993077210439407771758077016837308344649523707669713611944291466153735718706263891324927621488849301120932789137763544020889980895240112055306442516494835396263985876815319063294000132695197802116257850633509270843792483925306648823669661169626298472700864635956671706109686541870487316813904475894993603549488937822440761623437457749635080206249113413859622266943961636212041049538513497162972477796858235921453326226321900924696439700623108119039544186108580290436172227171119058383410514588542580248096872273709605972429893310315543971760987285851020201720683693980430858208050934705001012482590061519869139242528642017550561940520488988636025954316995023631959595422712178367700470681827599193222182208916192085933853968240081388632208730107889006163106314267298837331218106512417200208877522250104513489584542542081610734738879884659263936603635732723702021559028221449302784721620497380380514291466930394034552960144962920740098023988070306809438429495308106424704107110296939847573244598212205118345686255076727838887312531098436661428113330716176014016429269407055402681238314475255836375598282644714928512423298834686564544917207628049231571147758231825054953580522839242316294071656620899623605566392820970863426917305231909035762988117156040668815546426603444738076578591078761060883844130259889632004898244558530334735354110476016107966553670326059222599576565043978898867714654150246938900735145772162122274962370682446834597628614769555685002893379175635518221155297386236760676925361609377893074171564044702165441380845762835273733986956942653517750411579801662444035803207646093194949420946162662094297161657218537757859626437891719056689522569175678746160139932602492630506826193868835047373936950792652411773511909731896188114417830776018711163108742395606037107172800070907373101599192912112026629121026008322875796655618650044593662822493253591683274245424829953707637568394933399855276063612470563277008996135661023288776802249355136071273954957371840128505182508757624022410057878907080943167115558518002756239554186985282549282062713510280369640937996404647780516081857357336785968480431102077844832396910072410940641110252468717027150538845007919804998094173883690566670276793069457844945029947976385282462670845462235291296269787810022518291511495130926514024451622317506664174011315509595213820495837440157283823554087537181455407046911934896216782052212899448068078792086848892115836959432335244546738120782556219678787824457283948103292251091942636699686086693263894723635107763590067256723037303950902266317103425864909838347945786563163610663975545853733567609413939199787953578273613279719220698547675846552154307965801396698956998988160010503645532543667090234293139531779301078137529443465928880967285553934303078251269098597220068021232585356099772661105816845026350132849043475921675603865628042917649838308199095247951973481027472424301434179450530228647984305827527959686345747031231820291468824163691434306546361071958855543540325055697150514861228487744074918328098971539402076854281783525614202490377318203035220911333926475927029487759316013588851501370321144091291641218474058082587211737657036398118175492548840431723314560861774689954999104140130845167271980687150953898620806981566629541288467402696357812301967408406594202098891360927952522491567013332660032608539963507875463397013800019849248101454978937846895201114794422236150490330886062438708410875259645168622743334430861874372454133633216454714262064475789702863916035142836913807812325198326907945042867158441613512274093184034999416325582257115057235480236301763488919499746092123916983426364269239969830420076600957307027150458300200692037311165910528971661855388690181758117754497664599607935106964344155966457896639437330666212128599607095566343973246667750917721252578069340784910716767154620122863540507743412325316186702307655425930951438487169939779510165369607317015564097645007632869551895682399282969211643653466024600565739795235285083190736920582475964353340641350955718990042678018613354123333141323098823838565637112504000841857557755637816171416378625926193220403701136121601598680446034785932335194873439267295116782131501765842756010227823836395376212239608010861955306125996428496057766782903206856401064731158229712193478798733930151817599472570219641012505323136700263202580498800432248248557055112667809032588166902097389663591530071492166220728423161364342169086671328687326503513975999571857182491696261117716667914191653399284690328486881880938108645044023166036701408407553924742535167867462676369513984446509789167292533472364989943555915001613649642064984199301296293375563972048426443034798261767758616687587931114919531551219159431048514291126643083290867222036285211681633600108410341414618349737256757755155244329146531149010685645856468843802747164164324269248645213429294477519413804741808914761293750210283608492442926900786331112676433327752754001582037131043491385111435445576533925773592464005041165523510108475986189312900165614980087341058952259058401863485061626183354495077131057374328503949615702775819487705765919546501120624679570403127879094940911559873938337825355575016673914316197072184486591504083680536358159850004091043351168988113457073540832891984681048320560383905548295089786433426027355302863369838649892542574198890693281943519557703492650934207447028696250579424372224128191826496863441199738743937985854689076627478002992201327965178741060729512472567210907871846985738299513912479655675714568853165707220854052533793148735879751370230402010620665609711398857486337112992070679970005676549891036334376852726335523384384541172576870902691503511104781360749632137742563646972421778677202551713613982328928880644792920963915164862650072720133786004984282867938196882980201243381477299178164215603716389740516258451280801146687597954358796266847796748357446861107926124508278607180911422815846849251185187097711306508256178288093588434528511029006798841567863218759235777069952322368922469010952797448976196626736507505234879112913712146119614829829411177862044434648097289011544220124656820319619651024556317487229254248162201053602616698998254364703532533612548440459467198338424455641702423626054340982769278744389484087222081727834703255167627720866054651557083079297834001927431854326539691592541573442425155535881281505382900323188603611782400790697423562390222852439794109010731078005430212837810823474711403483613930100167387784661068644630365829031040395179127685999109737870174230034377519091950882251822098587427459171548094186054393678099980536517572826851065469106784613120887428164051009168994023562352140593699382281589660462220138789684973653834777985184215049759827045625139039531321918067015946757956025660094667437386780271153107651453753543321676572533230687856641141059549108836450753007906663519692847971545335310191227205160827386752204796264086545764573310572891262531331120838767956844359261124655532923663503742137490088988312579648682219921962701721312059571918430755038025306862448241961275446611153740896625594648987691683276229738308719990535340362698702044806437151421527507663946070957725526535595395524329661738063106456818098514299619835848192549503550804462244785791796046297663002328234024470611240488854698433468975779756976002870477900088167947163009830617833779870547766405668176086308687122178122908127553240947619493428704694460914817401542415205747916507357042746323322349816399096781415505147693141296356918068930635675262000686490134046349559227379351143565714457535095437986536873905995165148731031834287065717758152150091970590322600520446375132267401788757920617627424807877911706777306652323038470820799873140350778028039514298041296328723616022279044934906540031072290573298943960576567851668083867725080651812155840253815476525113733911535418240276323397657022603423119745186522098704087737570219021623842704172478296882492683503787611894892866636880074304720279984065268883260294477759004051352988412344207623637371059964273091416154617270551492791267113603246697768925628728023367597497205009810890176101652302517261848813709440496497967332522229481470999006063009927050373356640772688104118442617467714455213492523890617148323402357277648565558495480928439959035094772006632592698535792041070239779213122168335668010176904394122336991248052731322012218350154839988281453071618264352047876734166935202817236294711197464063856481895609527881163902337922027950092680775585186836200193405211460580194195852195250446734467454850573571943924264370089326667608033589782083924964018433421248451009642115310465543759644211703898368879875121981126031401660802574319109093307046520458340289030386763992394361649234417142275502373744808785085248593350902808469157759285328637581855023833713970504019263920436023442167192882860073131100061806646964309307006824583317980968295538652744404007853872357005492871287499217005597447399484423628766711972551941328057740858937753588991407575000271493675665553858562406393019856494913220968166285213005847064372604170074034637512832752162846574136021570926858038991374022601946050374063985362543239630922482637649128386655332379996991007790044205815291479015727332950174096353990151128926924647464829587742797108803605945662904696487592232291072048874526552105046143796940267375280055930854161239962789288302890673228236022950118359618925387078252957751202468283667375866685509478044266770340034861490799177766606418330931394241564398096185772323989813156549602484010547357734082439898905291389588330513136054595819563093446722170456450511738660819972689644355424348577360014714225738667170768299718530670739834527041413023212709144748043655086459043538057499039880475546962971514313547457527981107731473019397231662442570565936518349223334118584067159356118458071961517982995717268226669756098449695861884522494072643009524344137866272393059922954102650494905298334790556881271515408339294082231604255297404904767554457470213595150169407748452619038147825566313783996649556597899982922395585922349863758238405839236296702839840782513765358423346603821449652089028491452109390319750228729063273030899079253186280682445039241239309520292339607234120194891916043929939033475338830849839195659765361326788067816311800986807303339968432934673901752724144138254123153509930857146896361484452583410996225097938860715310731673400276996808605934348036452387264991759405022787748831860280712048283108280160239913434673768524300989253765716910621737498496599883280490235939934062817082070363421627062891482565842138040397215221968707326980872691575546614166728785244652144000451993044929990818106917446223858498488545825542928477577516496378614790311246164400638847987408270649577559377813999817893512195230224915990705285992929716571979234172042097377326988273645852186368001302643258201399256582062207347670640844418291647996168766575340141231373823935080832127563907217318891074683975904897500382134225186676176574712234347429551677688505976716736284887241171147708088057392238268445826469993727792289466050489516093800128893361108733792787713928179818997647864443743089876930031481102033837835956942913438076071587031039375590006132770294210151574952417300267351574852078055165108583266057841807793967217198876325583002131670955258687893795758208803709970957247922952220211034271613718525515166309300332215860115012909105340228089851219478854048790574726832829376239079576534138914291476876199081497255697913267497230850372483638742217937830292315316095255114113483588739485141999261430912290645486708809974407795384312260892871529107870406249177028398143550957917001854758105358758915025513308672678719455585388788584852516278910005045396242824587960834124255823435490230002360463359485174637547486099653213519105796335082661299892384324166740980569254662693984028443671831245091484519656786948118503054440975100189697215957575099672986352918142100475449557572538679911777421607295927836919198775492879362411881067626869397824848043056170589728971906870203251336177096459953994140645845165303871146822773849690992606732114864786054042476282484977978282957173594602453947661978216723170447923521558464978057027712026097249658778056934996086871968085250416839294045849505160610033096828989455003172549090156794398686825524457411086452495650205548867526046385517948537362397492936524960210294287181598026631123831012183583676189306838692363901870487640129012286554335841161379074396655914142412338104328623752702189007176214043022785054525689323714888394942733817105349164775686519192338185862585149010258805033219960624443246069210748393221763461379200350036853724771379939201174162606350449522421566568685614446915537595839727296595081147211555729598595755135371654273709462232600117580536024096356007878256431615945810858937452179912094497034911565281191221204281901379015046128592309068507936696508209997447504741682014829992097462433404103552972787021334641949670224733988129510527802922003981978983910739136131245890628888031566225472163977046608847731417891772543287299628968193434466482865854131783834843098455374404393683921480636151144336107471161933431249284317556152517811803803899951813494499851141225006235174623475346000692238636488233316786682547501828808936700675283222622866597917001531722559549411983487610070222950266009205361360089225628611163671582380429339114126167551363159606924933160034592633477840134464144015260798434395217814695544740600475067993102222257368445881985791417467046750572315135192384990407786615457619535238594303200009545108251751895583338735293925522089116974173487300145167178677578953634924180564329914812454057331661486666142450705573296407986607320612874694327100515079830842796868729507195970627209996694225832284876214488616091028110017746759001580594331531091938220413637363480690114600553061828587557322218016453183599135026857966642371657687839893218691655686074514804850063797793167902267001276286443871378385466571752051855439451365267418586487068112241766712155570124934318629595118625980848604202629933950140133586064674578937599198180909382992751695254211944858793905032390531762570419764008899014260347192563068331309008101560077967099666026534980482700125382746568617194408927916045009284786907503916724440795755289430199708668580880318441766517514593710142204860529100752821803457034896092312512630147341615392627797872785613955487756726348787141172772167532495152681572117779731228610223765286787821936582384740823138695635112320755005118990726311383419145812502203190318051354388605882716505764143950038810329039606133640927606529236800248263070239840606468612434856839435283123009573959174641669995984697621362049756254352687207228704816319201828030101011478804425326494774345888159705049763329664837838474928451691871248406028357324243608860215848482857323312745183940711718191010374140619714989293146772936228731649292836556477802732134386214287122488690668773704796483640473441919513669454514976079769258120877306041925013625813498499685192246219572841482097028524140385015297841235098357748860917616274557013040353290356625215039250072648224747116277813900611415303563728680268416657306391163874561755077870183054264048486594225913033362869865599411693007949439580033369221769531799113006295735869721774225714301120484718183286151986099515809153743124390210882326522701316675242364647080812062064120405133067012641176590663676858179866069000237593925206617050687744673054838690400105643611621605014942063134814436955317149049404391049193254370209694609772092651358664571574814734751885665034609776693547749648534301296384362035336937989279711731977369882727972015787838026476569024992958060661447457988172679844808256000633247986984651642438003454410541106403607465218272613562404345565551759291792235872885204718499135670987448057215289683478136241400669044190309599680983242287540585379056450242452374523051241453739920616144358811728621003471012252888850459040111544802596662687650148097642304242230331864871386360229958493039501640833179139945080232316483462108529883007031936151608993107476039517977867687727162917757723324725436474039005652218106250440396521375530072685196512722851298436190152684034697543321520886633810739667934705176659471449902427752737044170860500580352743876211852993871921509563901399155328078366616503025651994899301137879062099005821845022477020647786775979563093280993006913234638505530413463659954416202288638380539383716977342054994973050764460064932773892800866870847610611420330536715350342234806926180567246375633690914218146151613556922399332937427612207452239073698162363962802943579643442455709400366817321479686059567467354467897738588582337208906669723345147910522820879474705502053142924332980337568431999669193661429846980442092800724635547114269132504278810681918486518571058491101069108370554466806941889800257552278009303508361671289325590013323251950707981588758573180286116566769189263179033675040761033780528628299925239185119004466521039409758866845706402386186003271382983129495364224927214348769830218710050422785913755509627440517506354714319530654470635517048096690995346302749920013772792554905559775940926507746889032433670576634417340862580902158002208039324791100482984671950041531930441875082987267257975516648571362138167165484365087255870503318074674218864066340565926350924524927666287873322537477589804584923913620954423972659291693712982258701226451831415814112400578727602419511783415304570258066578701201463342708271330085374649720274662999272709403965902590086480098485242316746184139233046322718931176392686547548861411541637287950535094580008404852819502658842841023374804319191784761027128395592445819320641854031454824852175465478568732988791902796084830982559739838789458790558734687997645093893238110840072288765924053144560993870904237299751041986386518561783576171464535625190715150822796060937917900190277221884390615351068256084786220083344207489004521193309570391925676619170229482380861024236825237941502112831584563378234007803962494621314531283729899268133065822794219055214178113489026952749610774514668448544160580477442590227390553819777269370785814475147400191518493868061048632439887681762948855328510730085554988302176240332174329074408861531934856347740640338989093560439458080662456696914685786659376163216639794577659412950937147482261841821914480869839072770116435909426852462867684885868636575195695922604162534546635033918860803101791706279150120907367433007382927246253833585335417444291590827458672347975350056203443217131933272282519747267332961778963296453936039313341301005310690469427013851135738500990377972140315558705521551134589513478438320905326952849596540931007547778463174230834166148162308336239836586762836214702830742394562714725085480696854194816181097718958941888550157450436078926843856611267862489767217033173885159101139656389447241691819599737553490547789714660686895372941045443381410417005785137586814330672100751809470931377465177521846233713333113368635600592401284149865359865063665751005463714769082454136159467572183282738910007059779692942862270042543089513504331765844677114264845634397672587892355903132186686005554126454047360440644403611211326839563729754511706384323204693330097044522365901237779450872826769358555633429744060929225029589957065806381386173062392385335542810285029699269541382379155121098767772973725125219565989683588060702312779473247289178927962434693204001428543122589418055090815563077938085866064873214419014325609642611112394180220738522779070042952011058563475922173552245023902092152089099984438219963337929623885209730272418003424137650951440145392760762198094927740777285846770138694381307995640036995603206204724221433007651290235396728018462433654086799860296574065814918808671456923854237504563679469445975082596659195197692621962888834967114799750442686918611485191249758697494477430136140749683545248347400192716059238186077569152321424401860218693878570945102730042214161724046533040143549475972920691107484617000733400177130821756501842517302006504261506977296638392520623555660936144072658604288106992773850016952002152936361722033718369012407327935861676012572131083870887996474122809170185509570995452840696215811847669419235370525420319571900818702621267971591342699219318283020874578714042982532159544695133768506144041478779252742842706413207412717981898686750114777264976607250783011945292379970313776971300055187834863623307963112541530467362264680972804342088616898035267012605844522533000417669557737665499647592781933402914823223569419124580270434366983816908974001368469341624539759387047225124033735179078131602294098203517995206316300658981744334643479560089332246882586464859243209013559647780517248643846961435137776616478687371732523152642693762622192518441101038452382306551455530396014812276069288237252676215352789371164248568124184025620869251631256661079064511306732222019551991899065707134505874799001463191555938379099476756023657679429672807842967777308758355132452938796226006370995251940469466529197242174983143500485595949184463352749118877506173277046822351951673865146039242081706525979316845467022655962266601836811701271639108086476706939234926817068462627049685367825004136718009026687723155163391935201612815388464317883464055266099398413751481376801978232346074023869747030268581632290720851627383138873846659292961956899431594095545609337228042515647065451713189220711523375710755091769422089367274843822269727715747205173451688225086311461059976744495959480822189953461748049843734854930895025518589654923151243618533523491597160015067331851908467668300027570198237152496195309024788619707056752038621546841214772553866484650351229310269758494014909851541796180174080881640249964186804466594816240584290311183622003064144648274692612683720598794774685572914668289698623780078313791249906690091191780545423774916087583298599692213680265421061317043346618217928436794380186204228301677461400759373715774831293593783735558584316183154013099373213293216152453404498152547120690692735893901047572680966390071392128081468316164168630988834703875779050943057346693557751064350511715840348098094959237356207797895469031673804223344714024344390570739320601851666625152549817773903943179699755241448644329849256376548510342148382955476870471167508089957410734028174552503581877219308433664267615377382792946540149559657536031226659920672329441634070806507377096515130459637071183453506840683854046874612836276382143769792299592101869502914690897031880817450442198796115753364448466913264441577909081850298226923666503624050859160839457763894560224593569158169802900887722781708107860361825847213397509764301131242453917319851049309332654084701864030197445381561998386341090870643990900054423661466098750607188545474124750072169651740493877206721289484566871311176368695039374046940666008786303809704748712749132993585319777996525951514888042793267376154791059682377098809194829834617024720564953659601465088803810273119954108136438422615978366381087531122641053152541749222434780910526110242458739413379368660850973324248459619347780514701298156541497721212377022783150476555989908925194277109982529586893607959825683172760807242669718367455293444670314759097854897810456857472982458156174633721898942893413265141149309712413493863944015107096265535584105621617177559279069725282806687085469795635763757320076713953848490789050162983141597784982837740112862973738440676669511458375935440164520258536992884684752203268925676472898711453709434814880131733567312680590093754472780429535921044160812675282430756743741031323966460597759553301458351601890957027603552458875762801615156066121575002388598953349653075938758234349302346435713312180875368375796367089226428980736655150017720908189648986698605774059805116037649868562997118882690673205428349341891710143373961070383422799516180432555125702569206736054906215080073295175798676672944524023947246505313041199461582660285883165032535292378682481095080499923043918467254571261230944060549468654205237033943454358338067542146927218170808644909944014809747183835402544563478262638006071148259442166126486034231591187282021478061441114307826281757392715197365515152579970169029979499266911069877242200982038527073552929107758054632540173861299325872594918882524886507788214092825880788900695884549301925545260824572677181992842734812842578202536863442267058294334486064053900530526789495253834437042401952872871918379993895755986283081621609056168540683937723668243124185136886819761630252176324274854087323000816659831630790403582337807594648345274479019755971684793319468996569187242079583508501112112908933380605172614494005540382175689087339811615760853857584295454777228459788235804318679858950671715825203506452013738295514542637419804882687703343245663255476428453975550810398155361316703080452284502762646513776680148529534394384702879228721022441808099751266717674500093836486659768163930749535984595275695801047024663039272353221286305409230218079451285817618915584998257386746433865799786174671914983487627515664341068395428516501777473426129813954330599474713987277455307832407549796210218702454151842737410184443275962581774738736313883457806579990883819788628590767098739938172751054792885604311884193569113916632945940780284238359236066810232602062911698322587568915550055495656744233356906147432758507151065916894759801880601494404744903379232313545884878333967227046170151194744548064359473609291803773352994651149281528881662654826156224078879443059875742209208344295731825719366844072990200073108745732072114631819391587277971442047939223664849311737665824318807750035598195538423733151609022340114009502644680327844268839441131036699243734605622602859342325751333887034266016264410601990394107857746691686965101531134425932970031205539674994621734491500271367695582306051933069160747084157294930474889397853678312429653387875591276089046484317730220486279412541761377543479476761111463723121667868893007867748423147604826062008815959005486343570247954663560654394688536305978276133419267305063992349431208718725820213730251731774273546655017987526879812528099334193033702925068371711861874421294906244460195599988833566909769724638836624496619274449208033220408053137304966308892552424057712866936326917946125673087178952213043446141441062623505860477790087364175477622198383191941583055255529486084224143299006157476297000379966518675868179092753311950455131771476407243942461965320717883552023315726432508696026670555786553897652336584188713940629295021600722353837204419945714376179382887184008149177996154898147372829516486529036361699439722617753631164464539557863635409274318560341573863406078458385195514441604998109239301873256187094516850575644206216737339106567234989145510425505178058604114838422452263280985774350519584371907824638462426609330322741097037384351055844173508419975660574838759848009186335695556513555398495869602613193189089283257591731441973869423824424055882676842054358754931238488647617895747150694383900736626002168429205365910956285766832128391581061972070928296565015059132923953628072755903016648613598488696819036607703474551124835282836077269315638475858293677475489770071591563219029640289005033303203295503793848469710471928489879683627648171371463662358873999307003656570567450246744215492810202739946946062734151302496100236392453294641361865039114708364360969016383781439143935928752990846717641148504530150954596855069091236710378875705833171051248686512705639061963878889922685406598535543616069191083011812679174860802304827381244087796504346220273616829893767464657678509082781378317130349186504248821608759775733091571540392250505960838473351341284920871442645724695732274012178224915539748312458041375147248885381600167599081620418897186315014329931536701690569253690987059162753134393629412942956237194237684155054637198625468343480130073107488304300408471454995934099589026977207666349080398881635630950678760071907189850953017512251108248894783458196318170667538117685848437653642773906663243378713801676252711385227560799608669132821468961161533997233344000555842806282737272181622726769312560519038047568200954875684507722350782145091426938297643972793954587786372545906340458649408763728198708086864244642697511637919825608589512594137710782477316807642098754145188062971654088777166054563313490556111836505749091286692665828482994573420440062030970885989839058629862933198595036493396393956478064946791850289261459116062213072871253633078763683212038903950224921844830813769191424654931356894403450214930278890716777740204099528847911933762212833834150146452155565391363741979761996003495827215329186983219395448181626937698290699594656106502435864269659163650727156133206578336761409669588119836417589866649609379703047338385263300328591480599021869555220062077852433176966079962571102026820526158290662114837816940873489127837564722767104553752453186140166988886766946781416004112149006354616195368529419893347115242393490260001635308427193959935068717805671003365184863286693568684588438763264358701533320622347583802385855682194780597078093942720012814691564566489490011149154107873413581874246734429151246960593060748983593028821612983896403692357820103172497205160000064965432309683464059160885448724589551691094996929209152119621388218414940651886741448591885419327681411163240207844926934740741596541467556621848517528334105658877704187834107157142107235839423853122003232080586356848673113183604225573557109370757161041273228732311569945216542198166519581711394269188257652001863635524990528218927441033355320887172082985034890460313200950547226456438875181116099690973313413245186630306439003846131397375252471184742419651121287892047845478432062554279298151625065861823656036777472282303671365968747115667014756716217728418384881527129722407195790493368559535622720096654517442068689900809247944114575732552023911978961996970947723553729229498486607829610153115629896456624461752054707667190441175627734957946724273945793634813311205125402319132389763912866910214960506136152839987460358451873538803505674783792250531572957191643480864465768638563974114047471524508237484361913866036972424076171830417912343996068654742595950595432908028906090344347270942856391276130664440015300096120987246485104062696714679916853084654183740674577566679263103140997804184155928134813341424190175157549502438687706675604807676391473946089994469685421043117063389142222896270010408621959960742986978413010298503117204450556418143619811613024028360086284647691828463662831916617882381935284743644857006735587316635052140642618907273218921661418952080736000875587737975349800567687348198878570954712164461244515867556138188594318334491808577435475218125917462507828594980958426455901256432519152357300856720785200089548946505493197579383632210607484293558489625803059212910598413419597578899457509468681979661408763562845813504692851842327262162594239532768193737089242612438586615203970651235426229648064985100826027374414225630068243678342750086187421453484523760113012537877399607372856151507654535887480095902127964550229909450918470395118873688838756852526955183940508417264000163186077271928396266479063555892430364007907472523343355339680275915189422881254210189982977028904733631684471943423338578238462535495006637120241683638485632349764942351180331093494884245584616151819129663347746650141591673537837497574481599976518081729771906707057667756641298278025779957207022932030229589921035501947982685922831276097522435706645819847988399648639812218592255169270708187633206867324872489940303216747001286509383429774302510065364569205347346381397110342417975911139918436539395103000260667729229507954644701484519583619803349904185212807758661626545639598332729952071325735844756317483556674053873315170596617840305395222950123400900992484833553157923161310954442449656253014523651897775977981735521370835226740138802614906852210420956110239447715130664312529266466848418182598009864926801379469379055657174117033412189594717788349959129146543683542627109384848026696963636527294982775346192412554804219665249631840041584764367719697481872247761239005363887595271779603037376642594235010882690842892629128919565132082090286612552071807304184358701653289459230044813342408592785670725663146975766534842943220270181516332998579356809276301736264303676365219602507428190049254940354858156215607184052468361555133895097895215932870816750830615450723852434855580699510891421361168968251139033331883943530834344235613178955766900875499382211010754827406977840063858931965822858772012469041719224768806268742179207700575437787090877683675482541466846271120923230734653663649783234238688120019023444941122227924497082394511543574284762951349335169223454350795210304515054773796555146092120529212046136106469885128289488354699237346747270588247969783963745052319681654601208400539983411668732141715405916197459686879040742216748272927784373283155225079958333623671665209178566420465608913979910064687083887959341981258973807199373359299670452008893149546970816739477585182018935505615265776369029234074101521407523876012785593484547925414256057044733630901863836896061914125545455004401911964067944302910170418316422142438601161303994115785711495260797524255467302422799840161695190931702846786251117263514481062706727828878007547941143794264695045026625521006263819374672508941389617415292334207409090219786048721697637332185297654266075109575989594224739601905395213047617437508695771641353692874401893898850054070252648945070250137164670662781006505023522321279672797679619786017106624770361598452252530483520904422105850683876373851462555941485385061281928714754256048655415990784582676124392279588472413125043316672777309051258777392008468005156900178272039683476173028813759919743767573267811086897218534205111359949785225405947547333483519604326569415801220077530246067809909480981093468787808409753043901984309948785548166186262623427154490048972522857282729252271468333514122539665060232455154714248937049292264656976644762803288975230509292584732423825375800363283412278013431920804332237711403155925939764247619508711818315253278542381084001970252440239488356010435130345363870511656764795517280178129817136187488136045278271773069060337523939095986435951198226244003241950866168821675446100825453931776106276068918956072516860684491605563709548931843577414388468080733536212789522635066878911929913186920896945866047106069117082058263976329851637855395757294709773584797615168628060084482489749413565473373773919955114118348701721803545742294567576688228063491462995741118723526028923320747922092418323633844082264508905627359013700077864114934004453672766592766906679740821326733073570556078345618336121314799437716540989863416335410165467961381556075938341153546563589436036825618865747138416142533331041824390344507155409296444113636432674299058900115232837460654757686887791748336615266337434199763459839346709472884413002900714087445178316560374089458390588005209180481844696275492247671588331483981056128647927086925205987723054174508460641954527910121037579908789371245925312856780398995028993480015439515667086135702169670145086408180699374333081744184067608628571170541255674967288540026676085979816726859878728332074323810007361414175318675692702976902157919021836875646549308602168747252413252097805345079713219720048255785371057348471369650941298982443873311129116946367948772555323104641650297700574818709962790749962637030520548326219891469683373934495183614164726638069997935506280178092861593270848850074784263020704208270659203616811094188577603640923238750280906491902492152155767397956251586231084864205130511355122334535101587613863109826858356577330715873187260920481956972404276488809414766046349166920018056784315881278757183155916299538182541848911011534125359687265403953649272436046478785158071079518074363695768548207638752207236057569379989569170330811023794658245645083679821684133316906086948023648584549281397167721692191446369802607538482204127585636223435376380058395791878599451881813170246436302070263312401330246578893191110687938016047086673766109281407241924890190090129653534167993825679087373572298582951294721225380715742951752200112690679297960102973660759522431690843703854802993726498764693957500823104523048053024338941521364266281691730454882402567574669984567406517413602353273161595452974166870494221392467361553319895693475038942121355888702390248625671223546438024762147047192279858184518426740882647481892668822929132607850948278893085922271619285598600010556285149056047609999701669581683499761059694708735714188931695563239951848893306513780094939904010437085724311240945514472428616335047824990519927536970115350426932948910024605631335843715323228550455874207455167218238341248167132932653785818512098255996125496353678135022535183276020391672253413288263416943329093328980688228924027884710615236729666739125145974307023160987989958567899620116309699748830772112332039685633200278716754841149811483654037316518975771269682625395592394764606002461105463779454490440791894545732303415318301226113218335261407968154589079265389766918649512854008593341691225761615048920206545068551025859577916333597450052808594441644635789797350486757486845163669845517380833638744492510279693174606359699550891275584328894640910898278176321012591257828138232870702839583849162717907607119589272036547801748927935135676260932151924599103862479004016417881734077724399954738448075785292529212569574099986476401287373780760975459754356415131617300973742925381988075342499944132746454313390049076743314332734641010120286696652932132895440424571887623426414767984351765992708392683177833306844088026445167378536234568948040265373738958753738178562047124273331567036720252682658956461049313858868361393333832947411349105797234777655343175968440091608751288251113561149531868440121620130491910495921406560483781763238193497411226364875275603931679109097262464361690489809134029900832586726224919462419459835516436846184400457541835307176476942577226575890498302442684575861611278715597585497616080995216044042461898460865750326907862912145314985400297901708075060243883656090193801476143452128446133753546843168124005316883181458594366179160520374042686835721108250260696971360354989712594325643458723091171954568420666495421444319635999285918081378366010825849467055876796560476243519063824650127364220097868947747460934025922022682789785467361872219186498041099018620625518319438172705237482022983764362171891814250051567288262434829643949758436272770869363058152667609711129388335139066742497208395637677400499836844961621365614101718690085689123713996506881887759584912388890367334720178155402629266209525454271235252505290238797242930828714098325147227217240445378834877025179221566832353568310218479327241986550846938801450272505411108643662651635061557026366823563398082724583672599745393737489310286521161378907866415989002151335087516381199187788470582420740008348174775528864129704207433639625278702718555568467447146143336366939237929533578517525851456055934758616827421957889698045980669490466726935197110729649258079503477367612334439871245320967124432457616830473659354327682700979862423235125748046300801310787535981512918078104484412485574502147093693095526615857659658209739935609074201920465081840583400592902194786010789379486008374214867266618708213524349119224752261389915130852289130042852378320891385380966232491294630532199105367637202982646802592361087132378765871732042885619086119180423148035934207457066372952245157983211254611763957556495633833380190535246840752345751310316409215868463385758171059407917279250122470730657449548417632248615718901679154287874936464320674512161168323658021642563527291252530911106623654131002416613049529980592376726743287825938534249612016111994056170025708236000653631712093209573833062233171455792587938095230592412661479739467251564634638740675087543526556156848897590488470040389877901319305396090045951572475132303784735617228695225937762318955582694376094496513916524526996627790353568505622102019900846219476125830191322468387239223081476344034314859097577441004078165265037156651781577011130825438460175618051030433378215637502278571818382186977159306201211952225691744674786247553446912598259120959444107955074546340671267318218787394251688934172241883338335278012153110825471653253777726723842557670835167690000384957935273144146165304439003699910699098755397060989172475064358384761531179035211872860631555143718035270072114610815435315697823895596105509440521914495373947423407798139404501180287099360623052685950673287845305922682875506070553774341733972249181551516811817011313408277510681749200276692937203501302774708220677808707508365268561683439163992431166406286429519774357356776893996000638554247469316269835753569284130456319340758460421746759624888592906590947014251040908278063185064409239900052430242975735018210587803399416684444397302942925038901793528169521114440717060727010566805938025636495721068573004268552620372022527834181430971788338521641190778470814675322880102894089267859242006653716197915441381190060884425629466011007211922277480508978141080211811064958534040446001804402720043983904911937281679868879957418859597541735077677457198416438361186206593348081478361091702308361612694447360718988343670738894900116157528368923651384751431150124736755530259102204620074721105539928326084266075882827991566474704010218842916519595628804860138409402718462287927345880298798051067096663674438472218731709274250126022057245849496956029496708532542085505408377104497995465441203416285520988294112095232645197716675375919470687757411675523317590084868850849329591264107018398375209962808429177332261433959914866394833451631403849949225153567259533731196039361465748714262336078223428584117604008546996768302761566639422133183942792016884930167616165290948084320246619328387121282993649739373078995510655485553630233906917689454493609663130618062065662918525054267039091287241286331676296581699751460499318175841472251949459279144383813684040078302594733970278759958438269710308983013138769886232243687525535309189709537329767289038867763614015323509667375198726813063851207662212855715953077613276123053877169846803468584779135486817665639244051217227367572950497055138010992920234733096511839864561084067258152498867836281246442221614030946230291646707823371418969473782965435452948540627131776436395240714707295494741549865341413412509216289836889014534886885400051834234370520074407673965464232069815679497336201777379748541517752116502676737543149084403743088898117128782689395831533800828236342395212618870451632617455444505990131148948255556667643163072265254520942838438652678419775559262121720650480034206888134974038108221154359192112608316660787719660929613316161392883376525896648919589353541217457885369547654021108292405433466734167990174921997336668825332154277576139742061366612231518909552597664537934646839793131683341265340864894474240205774197110056502416063260450921539303634904279356245965598640010803896968518479646077336775474661579095655290289371024601987258232324510901017387123910904520927838258934314556217800442105338069659548852052374391031736181800986873717919074227191184762727946184023784338215866708899009899769163785127109814476056175998502027263534470769729227438135171414633541295236555120060630039604973577072900640839400325111816540467143545883407328864418774488391697247670481064316741657404818485584396543297649293430250717631571479653286631245214487966481933812124531500592536299141419848503160083284109572436727305373598853631506327786032382286530800651038793826075462452945816340135449346260885583537762434121334337721704856710422639626089053810303212806798803577310345585654151240993817151385110003313359120577814901662584982983984860991791964227580811307311038095614286914127683441766809598917917356541796607960366063607060976380654719890700524729723492193544502806735572069880058502403698044879515611159106025809004221707908184264383248250800024351418450373361667089620182136717835562459521825930359498781793827642475939269230457870985566040596210835690593611883473588260292705789403420944929505819668262677269437064192275720278792787956823999283223238235906782344270775516468456936967325148122046605380359427705829536143999179527872655744482937650542344186662553355136588452433292212872886593107366617400759542513671839724144733335979966478133347225256817840769963547672055342640970364144122571119663341074700662610368735616398780392913953219033930270650228139806109375536515541436294366387284515635436134965423802772052131845236159417749968590395745096118353310523601152852338433392934318427996939147657482048940047642261948124399626888282972911542599056629938180325867450968212598443903432198622633827637271876890086793670305681746547038343908041912031721853986948434897243581996254540568538428844506786990233704634624043555836344991749410264439113090136269808564395645607176401512070800487071372560363519536802301339500081051414136492573069924071159315128442684100922381621786252508191731005809137305555730134285603857133354353137478658684743852427113552193222277486977606861986412574907361461248865014821580570938213993913753135770657378512422569548009195233095993675596149050443152150406230590385878069178455378451269869494311516283523810605923490965402241022189487374832336949018594337115400244259495489114724013459107304225586615665754199531821625709568174572658612646061705980947746188185543406819215811238402731019601504862879885956563276606104128000688500685624968084100298809494147481872660128376898409392104762490198928715912988772208086493390299281234670447565034838415592260260660128367968858516964017285988942895283865695825348539666961418166057886136145021082461952932586476585709660962215000952716396877218958483215612044245828939643242500113826735939014954755243549082629045336849381651356795689695750379836296796895950053013916967882922746637767904073021572416447261691394176558398472594568216013413023368493757923644907925532751160238663734937543286030433239982151593845179497271159037947024894821030254138334845225872328328570697949183775979952859801223977965198989529908980098776694135579733696383448297529314858436035091377514092241152130651361778874835472555405602298910583878412052510630691406268817643386039302799316665171600405421938200636940203470340780338422701309230380615649239210989086012354394949774457874882863155178501389646196275241394665697114330822119027001109252269259292850930845991406542138018636148198179188577452535649729947709675549337823324046679105444510831539421576215191395621151862659250662779437132761809267842703095812182236994177858074186154803711824205771867755550055649492865366635508192076198691370421618985682486841750859200609909249753283150216125458879238601609096227360185909838522321427969463321080520994105294799834181147730961485085991659506771319912843638995894553673731497658266657183443381116949539321604314445138017550163941442094678575683822734986959756574763109820952585496057530965610075610046514565160957646608233039315147269251416473543937709995676662459593363290340069097302746207814782959508929572074756237421647490957826962598949469844813419439005399394326064316098503252554055813535869108538303339303703963787168450445898228678001110606809786376829924865094662576312463622551415835523675981928044518310514360372771552058869504406826616856930855553032695549246977601156594098913616458021310917793572753031465399785988534886255913294807266147778578125660921388969237858036109984068404129390075452889354570707256864735836086990575027967005764196243012702679735367277487379417662825357850411477432480135877189548657866485187941889517119909168273095192384730612977492559378567920195086516012555687004455143746379245779649252658727056561172454128694521764644998703777827046219508337187784013598553652555196244460613138168763067070291878885032024984760112307158908077594467016080476576772924494015994724051158139717553468387255671265376088061662397704859531162369749422465428919674867538765732403219538388279491605073095554530488340139837504989937133761326297722907804873973617463919634451749814256872712225993017952471549988196810266273148209610684419962925700600798806321606002631444722632802502332185492097562398902381216607423814133260164136992198547476289590247258607923339521914561610835153498058244639848781878814472518817899005894959655326530812158504972585858608010719055448378879419609303517016458901939472201648366055921729719282526584348258940443625300643995024559832848286062426613370746961109013153333175015855299075245866557581535655906400172654117257194376819887649819392722431438451964437742542563700283704744462277554223375796062698610541132637661309867188964787928360440482793624461858748814706442498863378199342120773284891503557909428461695433066057764097868782619479770868869322050908021139884458937452225533718444611111542530730016227200238385294636692845319858636840529401349499931691966714965154909066386779070430835777687975034811451174722707822826427631814757647089274496981282179905147965450200986027724591675660153989323985945017320326731467162355515770678449905962799854426923781840956134011846802089780379828593772371748566571352732752170037995667343187897632752452419727693225400007989478899104721795112707108344884264504934259772236265031274685633762459575585802215647571511041158171596609170690575708147894148551336473900627053831824025297944616516109505483609848593564327524777039692513375273543225947756408634716235551496811567845823726801493681676798057675482236669534224561307620600438212509234063508460912253424268513050033692115943949168204584679923306861648811667752505966086879847265391262950431015981443336695499424092894926989580112425493615432377132748947250677781718023362326615661202190194500615507971216593295172652022326112562130602712785124381477034204139176124598744796785753847625572225024669947233730936960157819760173495050428287937916386928629500020777902024530165351672884241078514654960043613210498974412265280766806170400081212057258453548920637956075747359602811795703681051503402128712734441689848997827096485642095752711376428528275719699509036155676063197377289693902647641173699923735963292641022051744157314180551129262212369030171782577679921674565024797852474371968449275504800668157087895457204879105818393972471206112707222883033584467027596063994456827166010025951787469552567884565883946818740423537663357847181054833623471520101424790285353796921814878386291808697860408657373296655270838590094940196813659868677645138409058360940829827103362910776009810090629494571763923843176375735399837551597626613633739806409523023193493283336765670970528920929584726410137835365843323125519310246426602057963293879195750552695984343792489621446872311961949455251735507246461058555564512209869534220857611813396649370164700454817261146854041852942230612253593402693498152340297523500886338205205650261904576082482345589919583697698463693708695342387713841891437020555920639526339056547563658217269117226413904619409885069106215330864503163567908587714554063593455432995320000615045464146225065208241041456426917051282816498511113660807659619922403250173677565625260327775131686490643593626340659271810413097004030955052126241975098980301256398193507507926355556983774144562019828987166336246893068349335721892123531943388534948194574803888117291828328156938305802137685646912213681014220048671629129867586537999467356508036013698278583826956973170286548241158091279157692108685164403741488033410022189797938330071411010905238238748856889373073838445440235749526471152665767370453948834942204632423613853780466330330876440752221725963555442586316889744595068082462043327466828720652207695837779837003421727050215870397709454381056806289443249853702225938992217995781748612815089857811446515989157516976852526289143621768559644534348175464611562797152159651315195390455312618868800084872856598890289963567587330168731131954729667600941775745046822771868714356688220099855777017231030710116808626543339721103976805644006098975521938702876904389345925351750002128704478723964425462795744267733248383955986519458167220387023185730178568369600298097424907725362346863125078080125202680024850739074937668417129736016724970292520675817421855137783820962175553428111777745612774027550082840189625508056356210936749791011542327490073504343696652903786547763206078724918226150318437416653317692166437283619057123857603222873162780333101913369375114522802950359158995614130291945281184691990005198094050421447831974299432728567997146312823049271040121791650446193593311220821369767870891606105636201914293587231600078470809738010429679073597537679127955721734270653212937408620845422540013044216046183073499243320593153048534543795777427475646270124676029657961884404582163132850783205887987363302737471120542686951242440862205906402500326281108390152915681859108905188599581323891476898592524410216361077319168962967384135727037578991046723324855018572778004068285716559075579240085575233751025043943063817393595319060422257011963723539034254039643849446206030247894809088344663679655457136356107668381417068766385639291396548900668339413648425138201032098100145738614089812249536282026358556352742380586730041346899113794560118751130380536691918954702576058780323431101892271959056158958084348081111135075075357110293699045807462069004052352529493053221455211711390200286244143194835163559176135363316942880406230952553336739775931616863097497519998001732076098710435528758338242019474056307040638655692857381826536012706733890814589076444934897738146798551573072163680348520981590434864186626610598963734803456024207772389382919934320419617012631360541397912804845191971239174643974198984204302526030345100182908789402715894595858832652048202392884922407098611997273843485272496207961629852630523771086783621752251114855447653615339119899520014997970265093055865135892719803939189391028193354018671152526062161021762639723921780469013433135094389386817116519373949742107137532872002426766215608908900929727189646176405486999123431385771742229224429662667774242588231391449351039133883212672755716380888334832053703046863199442114666868067911159194225916985447048118811671267646366986051253538038278345101014652072779673436200078937338044009273558075577972737368121812248498518384579372722917761310363888027430390315961722281296621817540235377898136759751506980597680808261933617768629207307080288417484260569997702791162324569237537993566453948324434830837598573329197511900332450984089655133588362484422172896041538585569967469532859947524495375348313190621455184221770106285611639890658827194549145995966067817308069942837366979627883653444794793088795929217311483518424364309978403656681089105460914428682547744451902673989324286901145401129176072591469038082511997233830419325761849253972750294892631523176739440388542375948970486785462029482536124366212784968701417125035909322480562923097215125542776573817407869397132646761584404573960448662286757810989322472805221620221350455590308838028081692006016110035789493223162078515778242231333779968587789015262787997350201450797211250431385641097362321230770181767627441435290824637047784433142299131364378496690006213820077782206039322747738496884485315809926547208961726734406415043083723878824382922382970875542176458559400637270825819647865632078866642632915001335688115268409790909789852699955708080087403078006373577200013895811639575976021735229719807102874769701031865304130186674277806835457656525687264004108925356129634042669275174736198835042626867152640863222198655518172583518179574389180718880065439506205248715546812159567560485099535289308352929389982653406057432600762770485528165048822249407068602711301663542075765101046257938827683336492785926860879433875933334362328197294534739607860582074588006441670684143614488571305603775277260067379615480621792580712046825711356336703857387213175486203516360706333108911941800110949330839561684502962984890168457787668492944156146200489124770843349521764840296280249161988192297486429827383752546293573074801239514964478396046534412302676377297090230242134663921284823888282424319141909728194247516800004009212267103172508778941315036818960857140468325391947198782978326970100410940509306103318125901427532501593120866888566264695685265830682721855934513045664801782896119806298304900693920765636420060009731111162830839144796088696081227888526095901519463571584497099908008933215603709670481534115741560551468212734162166119556432469338465678781716510112868325155676542030247294132654197718070280372766134927391257757730562913612987718232365340495256298920186648747567254776422874770115821060812912860902582594079200811198302173388914246902361410376008468336841389734098238091615641575239048789925673263886464554747121957304414263155034898844458606616688836373660110139294832641427078971739001056519012965677563677043647703018277705461328524032173995789217402957926076567210841040228067036186229937275368618296386189191764873465063770787234887775266275549628217976930807183752381587142840686275147731895808670318072078044007529871192638833340859583738716149840864361249512337254820158748233362288146708597650209038045675550711674799823519333171930639398474771242501170295812042280927930130854042371421960000509242472197395407715503833181755939378408661055833360232390053128647097468823127440178089966450449104713712696633990313238868576934295918756184375524039242462276269973198571421782848986421432557166449407256873926179606462746082807335689780327570033352392353908513912445909780465709790952326082112776558276056709650697946415154696929595762377317928125704310909117914149406239181683517417886393761087034950423078432317286175859714514820815075648492282482996401711625626174662239107443313240108320910459335434569799820127276481640934938325479724554634657071750490782049816274224119151054816049264080582241420464403700369568859780490643918981753104920509880978408719507107946702539747595287831721348370905468971229956991489128965967755220622984748503784283087956473231745034312695013209462979512086305490407709678964316091836049751628665933299752694183366082854881411265395412500076098349871472976674435625397633219840084004884030396692614016937550071691654998988932783186215763613737246564011335395726295880141790432589342997882357767710074398423535977010334076967853658603150126990359076583273973851509256874318144844464372590262733600414041462939902626431086864408498788168305317211446504420482165065453020958886331309793265752367509838566557588914448764372969324178872788643426132998159684217000108099975504013285306069172170267178241108092431677999594856317896286153102519731745301554285658375315030803333171018314614763086400862473109534772268306778691990904752399463537961785918144635485593530455008608868070164854336624324517801108851807911501533241799236172934801681421541507730953961121670543773008820108481080619261810459127755189444353950801595653993079345343379113722263461213580145805133589364782448369947647374773507056949548352549836213760868072939016774963278790584835052730221278974625386710736446710344782914882055563742300444891117653746485492351995365632531436272505351487766852803605555079345857781481594250213727100278891902099808417816313245941219429772143432111317477166131396146934706893142255235159759914663483277044201105112038286499055350780575356537011692028638668156361259270811678126400406761278815283547460670161828545403162895861167546775280990035680945661062937310809469516587161861565044590408072759575982512733135901843388943642318984564545169229164673394603006159994989469039952819038860958225441255727377928668467808074952595488294518219327283746691813562705945937479620400849731702396405700631597226595969545512858411494478256427991375668949772869889052378395511396889546935832390637063889186755667188974943309334414207264087189374306538138117652560321806544918183280573135102865109894075954162784385312289223410664931387236628959698535944495921521154148361453411125706280606033506849781766108870116995486430775205964797547797839171384174926136280836917319776583416546518981315217967866779339536965930661757785352576648197083527001516986898573553022492153587241130001767793405582509372185809561033106714224022896617405532354062067526022959093220554345091367801884826870031131229932801266784118309257641806787244337618784701636018672087828496887110682090511713694289919549838608519167926624384086926901921618664494975642220832005637119274204795659240143346945744863348014254164026285033919268936883345418909587230657310266427387595798372288769601027402990920787683397865423397120966610722580277505812248383611390067518678427939871130858493693316079377188676341820487715942767716445472142668017968703671514304565096913738697059520018019274914016485862795660508402902882802008564517154152550337124726949553537980017039126912143351325813777908247594781733034881690143390845019457087492386210593852813782475362154481041227619031044614220252537044691659046479067024796731734131361752071997702317311157204376245995531793871246753622185609110587776654646176870149177751802339406430194714691394146562516048254299260516038284422038420888001127001355523142303211849347921659497392866887691244771879550694431383752867897695277427782008958587478661174158410517897691151679500086071668057996900868557264436028717885584150134834098158146064622122309287944834699302876551715629793228161840824609934517845081763805501091958029414674433013383265245713704274469630623872327411428437091733182797599133657334384847272285682760152274754917276614363408237835211591243678916785589014555753174483927658489155220836512818438609754590390717683351709017417673730017237509074911966854604731218714128365030935033524060991460705456635779038025485522097125071307750949113415274087417196109554406789853550737866806973965694105845103954361327219657611120984430328016251590851439979632527425817407076219671775463057684661839184962481343780488584773813589664379929672547181942924895333949900469702490436169637097446537073555968678816133448705085122165480157259438002608369723403684241069860041798079673357746251539798942362740984405858113419691275290920174895979332284138684094338478757510952684696280483373879790372261986555484011216759737046283791345656133480442179629162145523753519252978389839167793181687604909311814719622893806689338482305399245679228549996696425184820755666371598002479530615357304247435203290832944902430790261805020172673558470661479451447142738357235415341109200942190209334703908957429506177652584265468400734643118078240102559509710718772530215941017797239258630543669945125334954078864415867589672791292057348522823019074524119774207976968833931573617860165274883638847179534641718125171629345895972310189756290217493725153334147544400420595075877525063281207146667661385458046330773979927088493004351790131886529354881531081477637355927195029229888483468023195646942121792793878560633176746597870805012384510508249675491414287415410138406192592611402676389698082729527745556423837545518025086387057310809401841002310238287642002673386009125609316984046466294779021468143782588578314922127802694175344775612887733910203856717337706207275887250646166764861919227836143532048050273830318904286439430161867655226317726066763692533017772717295913944157248155244530168510818543389062285475515988835406475530461728471132004741990589190190718486746778142644188274333505987396574706489443860616216592080963229726969916463139742767453089538347364078307894447175880676972398836261736327537679443425215739913379879362822606752177888990939360311496802414687311634077278704468283397941542783001899805805333288805685883889354593471597344168451358647351249736017547255884907969445462659825580472732117688129530936031307994796568451484923341863576435105016248409050539880201831253401335207785993325539890437495764730919743128523126500380182127960941514675091837127647474463197397089015022739714220221062125248629225717904760359500407730380292732065021016628582738756071943211841575855704056099513052907984595517521581750113208705910632539603627730542423387188798397209758749086666182813719772726263658019896532714890311716238742829687131382352123493366005396259577347574718761895538185145390546404751433211470956863443487060036443683411693668623356420266138703236213013928360754906475414477916592280994049518869515673086690999496232699230020267221017904605561149049412336579406111717228777187022613427685650217877048412909889027394626991323776364562027636434851790898004545167793841863916940675961616196008597354740158894681003688991423754222245339294260881817822433342126793052235331512288429164268358258430923353439382335147118850980429603677753884066270221481060662084616537448211472895156837830101477898205526368545745391749919136501928449804341723421627423307477260322255650154367839062190779853626724805529051054724575215815542385473397392154771486843024381830559739162294113320477909697328596161042003934102743339439365625405819582888222225173159654983884705994563371160188880468982097595268361496646349035482952880481259917131022850557154098816745530893410465194151219178724285190761463940498651376365151183786299472175358617341971639975174068258302049767532198870297985663909767762329080935661436136989964745337058656218287500358427103865859684801345011812192963457533111266252672637374014141731101113488344127479518722882684754182848349092739027288733650171664789030269635789969364194839290820608584339041808002791864768182525479442415451713211330814784340707043167443043482732467197735776510412270371933783192558716719804581642113646876668638791524885882737181222159101567914078363339686321691608624201482336563503119299641331519582827016207943269052858507384846142518760955684971955338965625186183607672687188013118275153237956091574981332975412852651533941566484692023209669620201000909030310015588635953524007999816842441986142164181723959684766565402187919498140676621857806376378775052300184262983433566213060473948879795825835368122526855059651045200850727607987093769319863506976501393204767715802894883690007029813367216578551859814836246370398077266243447680101018522782505247444076949507619973912079816722987253245276628899797314525502219971039182282980524038655173257886485605529613590769223926729149095511553564785214962200783710291470092959694135605315726447983663559328413377661774911929596471941562999220283202312977204635491295327976371934919183017781850692967964534481167656265817578895719918378962875302003444371406326029388802744326424997174667242802806447001673286407334887103619330853458651846539835881664588211179488776136656548638498992863128076112903723741321656756659565605542404137401350977412818032415101824845678920166359762792774733720836498333387869184124772699178395718009070540596464749024026696013787538541061040443354565209277112296589506893720965198401914213255684486111421664139365230167407861295199624333864376397595378009139494069412183896675653592963760655455599669765086271292218253239698151225573016536073511221569262882978691036888753968219095902558661013132672561842117622831343534843492792115977016285626875488330038536703458228279600308830261033660570132491430458131540072104957246987721791967710671944078894498521621922844637166892581520973786925392810508662525817936095605068103939796340062839308352631921343926604252168876063935411386678151735144233552969524518758878007314089158088075709547676528286806871455989778260073531693120771673748001399078473495606053558366927580997654400229218090400590925927893481208190373404672446722029415973503381699680019330553764652635950334623633942689167075402389552669689620851853301127710322902344406367369515330237391641309494974124248218919950538361589180944967178043844683585213209228644407270072440138387645714577069820580234332826695298254217976555378708819846296210486597124828964282144016490308999127362783362236962291318043711915963683338707609189585734018220938545845429434710816069844041507914763172444520822834367817640700838034228177224129850571054134121000622803060521121632033510462079515185447944952089537180168529821955399878245892663582339089212195531150959707660305888487923502820793627110646064204816260842873373539027126047195549600824455453428101290243211712416905617372693233473781707065985608150867758634204020869261193174135653275470407059280122111397243306309740600548362214667378624749565584913784194388053466713576928607869465548716298938368011172126778469737656863550283407577175067577909291816062762862354282569706841435581154480939513946472465550437700596952064796718906982032892219978844089649808937384819772244949574232859706717509257277043030808368954391182995447520482269365868942676719724637209246674703821240706870088740608590336493103940306148871201738727060589786614389660922441847135822495075866345105426520414353942068024856463453918344347491406700635269989910082321278303240786666319568804153660561675045585798689208940915198848384963958792334380477627834451559966174379156519902155278567980567188795639845070302213561082516879725867365023887711108117284007488826884159413854123551614866430957255768270073299889407139266180000214466663686365885586850807927465545887661427014309286565969581581050130812210637840526534739741912321102148177964968032443618053488846318524076145776028676322672399540729370459236052367107706396542740430668841262543561610748824702112326943399482896104483116448962045390225147587425987472890023753670008023209887317122735137658027584718288738344680982260798599846142708094436397072638438874629773240439907258429277251357303225590436668076129786896813853685743446822499986630248741167361895070694609720392234228496332441590198564733529803306966211530215135254887465097128936234304858529407109519106572482885555006844581674199692847049135871740971030975150319342994954413786961412045469235304234359170764142459356319152363344456118767100576819466228917281524955178718052455805171148257221705491045192449104243394706332978863385515665163288543715472126550029228603831262537534752779572909310146067940680767997644050236149906229419436252738986382824503453087189318411354907432551717739295802447547260491786090687323343895597840729340073882744444308356356981256114659158694086942932784188985906037394326062458501046449022395126415401906214128396286983654813219322330394246686986310652611488967218773822926381733647218195420353315785600783761358215985845589131194088697550892467945830054655036548254199007928771734975569978850760639933738782859902347214634348639623762936777813448522291299261041849239650665012089270182882383182859967719227871563036568165752198978331837037578209659731680432804038557603211494181944581398374455584345807202225384689872406280443159980684641544349092510132145716063793197926867441708758762933175916137944376703851513710456987040172964851168967349621426124201584349782505698877668947675581560320800832575025393903218546385125580322912235452138458732091152795677736585422612917033135120992790772358184014929627375652887181334404865285634048635513098263333332082751823707062309740512609743696535831472115086181730687164732889776823066216506506767846670954479572184531645669636780081247149625203092910564737073296697963557179247009963077455326736269880990701880781743312465481061119881229813384504784974193813579195518833296444744359971655536171263703594685324438383605743316600938469054820997827052391743397213870202364793744397449919124935910592464972407726253941326748552723449488914411717455531838621270514453655618577782704801247943907812977819963560304574281105627794401811875241901463017449912549191431629491405318564229615480365367008050280296764979066256383610761220617138517374399724464992044872896522867938179317920666653103396332098170820791137333383692142584011183448487139040353292627555324865428798695518029061874294370670118444108684944659626996657178561138344879217962750114556368714869580878302114785712719145373774308775002908680519815831213420351147677635707911359559561515749893410278748109714208029295469056994877971974682048126976760711712859820841433240303242852375246638605511673921936571878466752825050826819357377707425398401524527909606495502856633523385021029901164416775693804793627053602592351590642506912861654223886373549107895304999010209390028706170891784698539990363240658771682989484765973750524506761315386786540580479865532339597951891385614574833635872431007227236966074254329996694939215306442156356441942281105004014629395529540596663217195190846551856735312420051277296896392117206614028198723263139011372780779918266027838774507094416239763915003869574749907777400506753070553415138069775178706802829567951004178992965526801953129271701257856264408541357801113021385858409010400895194529457331875008036495525549021946070130512298044895848647213302312953224710276375495812550730956599506803725050768346352810093214479078110441614858386567023411547909143750337156354368276661150255522328122145340270096439987153985168300463411762550775438060107587398788319417468880076570448232306332005228267781470672258479882666930398945205850662012336244184484954126071959225735385020310808895399031519719726222953291705244222000485993069160055152899480438233554768166474949321382211941121302253072656880341023427197682718563670157791354512950898852485565133682814069019091196444553596213429736302905828111708284670576867735613594046943512224613440923749868403469315575775252598521603892491897537202964244289258689294829284919675468331254470306964243616557409902342069630438524510024227865532929579839915865982484924410313310890360609889125307378402829825096619371489011224159465868244589439006910693478692346768404620698698650010547433868635622421709171711371831365275259368782600115103807972740180995044699338762056713932514409603181340635402576382145375377850700720673882072852640025067130087944083818459471125535888845528270523821959028248790509469992025928103455670024104916739186827475903847941069414240084562363687807250376124509920456660011936954410086746364165305842462057476077397776994398984611341323139372301792195772687479131476283101910892367147033006365191349128666035216153687610257553125263489820889127894340619238800845183372889046451143571489507516568110071482847967612502476987791316971057555211739705961717009664118763988856428634257710662346068105767217562194697725111132263611142071143310812407949220327757031779292498586297271723665374407905430768168265438665416210680814746225847364458558430882919973972444593549966458878988917108257677476452924545683898829678798184956930560176864015947445759545960096057528891948510780753209976983322788532088166644271702539008404966541447270080420200107282464318409763580445383836261691011499585406586807207934226451478580066299277274327399620220930116784682270763777902397823096115765365485849115192558755226358542308699572984694839303737641448804059235809236103201095910115546535215768521965265506593790011010108287896380265731015403278282152671826268755992350481931932166245455060649963805052146943311075269399270088473474845468523359173471664249855619691160081440523913412014709505890562984135927549875221941463928760732365550787522876598631219264868789694016950778946650647147771161639928666793477770752361091012195093466720601515148500531359469836189257571679243070928874990375150983058068059507017411224158561521771510815895806505105270616066493805298373938061311387182786146159479376574552162624851002858469708555933646292264805382120719385379772217977394082161486148259504920462367250984180848885142070319473835400851873038703797332963287759175444501658938896432626810167452987230656277992291271869401075504089834309261525457130357688177660782026657489272033829543550278726197500765572725212514500966244928095515965425333514144755090188990839047406288842549826783928227281865806329427740929567088862220375030802559600148416856306479583025690045279699238017886869828892768507445752430175026835655885605011405891383574305380453100127577243398212766490309776597678562054793469013869912916225607314335465388950167612954371122620558284091883333442194722199609818304636560161522429490373157040824654029215529029480233741476861212635540273787870106131239244945630191316499900014146766827338843090487415604307252113296548215663524812221489490867940181550149601154919398118043754260836504346275045979123311534135645079648009477896051251718856546339472280490618664997349996290877025247726269922361155889023826740782666328564237771001841372564583072867964381781248148727457855674901788873520933470859001573943709101696853376398641923892109743531689943558472330706091062421843487729970405197282755822351276050746127115301809109717533103715458151231535321046824832164989569783990688563313054846069571192009872601977775026561269427772152686989875921963873082093400848984968307146670420444454951270289662901254372188736565861053099216314759249512722810929243820384551958733189964719601750409225629132996967151300104881064454571816668102547037161797450863521563555310624788723302520421261722739330363801622813946653871229845259958649494382911670132939562106408572040115032882565342083158176360817977590385149208800216442136301320237561711318172107527131148670080512035975785788584723227410366555111743847178720364643390907872916072977759533946697223158294920533205574787451010493767977952099227803513438783383548999900800773703787234258253230214430440729990172983786287432555319855096594600235449392846580903154788566218292636213967215078133457697328524155003682864003246534290520993378994845411644889634934073211003706845489418261557227853328918691158471016538318140312972546702335657299522500426059096984926449686166991829041106519961251182169082417094916608680281407158351549966278297710338903637117533881956692945154240496535345077337404635789856594974724382513077855439295173798802690540369747761567488370008769175384331481824857818924340195190293412531419041818217735527760235853268579416243164954484234513997066652974576638665163492305065797963795114458397206695526384321430117210660178252815901018552336187680026091515668367134376133283589738976088782384565474610985436647099241945916801220129134570212910233401333408734859276254075434408172488015063153360783924572650258970934396512111358177532380709989665360038827947533348761031195342391464600683391754252416312479006968605204924506447498867325730030847685269352057266470663665559977458843015868402040231112850615976748978291904348889667613543346472341683983643055390334738507882108859527718306238929000204160780169584780613167407927758635766017402031814963559887538303219735780926953609376665039126420910112236767703678098011841212855804928526017345472193436423646254445810328506845106216439485476880284122296866994872416259418757930147482169927393012314452308408631723645007198691723097610200314073437578893423247538761520011394570803729282772706865735505187576806551845338322754055830904176892942668159823523527379183037112750152196747540731695482699032182063447142424941435915560877679932594745591318324678266765356664646043694806843833797269740343475685520846776151139591474451441395715416524293515127287341387001103507911797954439223040667835924667731407912593784142217002350324317164280558838983159513573473239153696311683373223192090726443174523389438709391371973487996631804273589284952014430765858077258706681584810392148022763495661522841611393241244662203650389940415630083147222855231043948672747526827186628902837466428946190411731807960993788097586395936492498195949917967621599772868348092895512672088095565340863117133597180682174378582894893202162902950347656987102888206392115245396225010980717349508305407812775182838396617411015626592180855135088497089389632161509011250128603860879581542679687860721240323928301054289068665532960549469257774769729795953980386892156102605846097476020149437100248545628799612361272070968935605812247880202794563481828815196899629340925967971579991810689761441033269531455077037634522143280064386715194148444934283747846533092051780635776512568316404344247193092803455000704549035026954190842884387087110577632426906426563649997618284423617576446984817643493663960923281991121467493819339093242895750032702489617947566920660402372836172122355900022051714271549719952461029702160635186833348623453189730865288662155994691587469170541435974144664819265037086609598884242717230888920949035234015394597802366019681673646832004388917286769348338356212085281857683985472482675315097240659384924084728256609030216395368321666315205961601624397006244152818062483264310630823728133431406902031591740756197170753500645522130811896629978203644140078008286327175109178558468218922317796668502564276693744286366125037297316847347687168148184559670490581551401437717615220071331678020244467562028845040631549999080310356352872562948758501512207030203185078634842285368995680186756515151954579508686206273527336883932280999640889698634548868914487046411521459702044776825729795938887310595963811785860814066428664909824825065840816063640736452899667568908578238804628474517912390682434141819922538561407983569903685142467100608702729114398830305231687918292676882444586905612266046290927792297545916819767281136648043322849382323672845002876334587823953567761250500309201584744088926631705062953651104610048998243083547239658237551914217386235343182757790973047910496911093069602055622690144291311699530914932578895131622469320096655885235116084954744231153393688831353950850242549569809936159217333480769509978604119521195616132402141352136863468545725950445723165493659369854592843095134652044140931251321099531170314578932452144138133795535560311503656815925405065409804557172223155661655050312541815684852916043268964590709334791974241047716899821142432164699056111906794298832510104123168066772434185512797493818263968393663389896628615728846278432692035128544509866555714370976082613508906180148895427009266712972457641837071320648021951386483318540869922827901739928001987496809214569066245470272249188142271396037618511892895357812022993646190734136140825453265538820706066636152906413107382959408954253200086898833150826971498082231306220425706044467524459295626441190232868599689440980735000000451417563459504104120690013604783468232287103891094149668966208105104185468576618926148276569091704171517166015867712279714306292130793956255513867252281484662570103540114534122381463378192499948518023984916811228964045492723448636916930696820290208500817645074711510274369404282674266302161958732924516926108345590457451516291157440198261040634964228392638564043691284237747951803750915092892765662791927391583115670938701085111434370531534019556264152401206554992399427260943093917676692264834014418130326460129113580677276823287421982505605468587204769434798545941845499401012326547687175263407570094108850688574860382655838178629791879553693049093019320852772768476901033511328641988117418081587119161829304424799421529935809908067211166428609329639042910888836996767591714243327767551910599949823153555253384689144804222215958873785559533881964949393494661256894494618056919152944481345624669303476389522259322941326161733301061553671818645610456900812423408624397792454141171046692409467102100197336152990967750727303776120772529847348568420574310937538549484774739123595414325472472390009809346659664121736736383775800150220468253120476345855247668127762964880000581565574690629449494555549317774158461630670502195362090680656901145714219666900449547660587505759983924123752615743564240610418846328852130988914295941871706754043737214597152831654741389964905847420530955754312536878800115235050067220321127598124706314812478598767378278166109847788950471722517581780533203040529428047477030928009376840043286573131458478000091174717590002349265981820157092592239760124127906441374691878240869949682220544939128137771605405537366814883635812507269953759330252106889297542910230494929494771992516861627495700689419367948268840617553405097360873590201459029984757222595133721338577660571356810577431500877418798901062393078604201550160883306132726054033119795405080859690529663385740285209661832948559731604338945816900879641448311198134145830770821838387993845262969151643961035237538967138295144049676415641198962339735715665994441525578243743755720058323413647256688226146254496242580618626955947222285364827759093780651915191963029887400274588723860919852962596628701155711225875902634419856498582865325144232528337990647685160227983174423688339602722877140876714155800546321577422194029645837800857282165795476777154339793776278571229658619103134355535445778961662209894663764226686312563235692629134987396527674567891259676046352969263533306115760593172377896048713377886425229222670919251206801494397634266858427491530701430971587230842522709400819865761730566033994822488265880398387446764919562232429845882819980839914771469467167245454882985400812499276132664262078047145767571096106626375708780173324234750913076188217513675069123882013287378060642499099368136376894380175876865776322729989881258788011526274809789928484288868844626598331824884037463853483012544287593323746439274573672522601978913224614053625492430704409228138563724826858317388756759874156672297123789392654887604603718635325041483188651190130690981216925336211325659742872833970425645563193630710675429503315012630291778231954146063198740576815935732173497454645833526865019651274861896075923478617084695563747594904893824770633547997968043709401790194685589670260264812138726845820643133579348255655308486652434842016202620626889726450612057636354295216987547585929083392320968244982805250850884732770459158654764425093729620490824978222412816230000945636880116193314459676538550602592131743095772489436320572669501651883038577903915342826667531033150593571422768572748722645897244561188781977878735861661324313826974243805576337718048807516115423693259607790660747230456152532501202367123185962414936336432882176860047142296180917511300111604617357253625801700428612969921927154355966946048147847050520424339454403269649706056156011148818932175364149695317910288108928503329837544791466691436009644139822802664090911082725333296666124324629954308889350767310180391186122674436267311433161796490202264976115223440282947688343238239608486783913292146505757113136709066997155860871258214743779183173051405642171415571217159255647090092057008676656122870165944438924789281630467624298764186329833715167322781462121019136542392863380747786112677188972802621360844541244361054623195178228021389462291861422026826908954301851798892273667878987908969688238644119104659615592985043822942600831825457411612698889874825412809144509987734932032815880100023869628745186955108368092344950598804209626880098728703954499637834731125595997375159055547193681982950687426541837714107443925249537444038522887055656340378607438564623414499856384098231376039610067077774621731706287715698294188648083905605271758628610242525070916652568575500944602870510685305667240161960920539792791889199136533516415947427772384887997039069561955553135908606608434893334385633725864887697271237181850519028397824150225595475767235227007343552296282974179848224656324070450941117860415251525986824540745210249684270407713065557153414074901527902385212343776096477066533984478023009187323794751983359138691790125494709966906624657525455562330547519742528570587609130716404205521217745385181822310271455714282378707962719882766828009780922111813688282391929292712917144884460778310430237642037138647942407079282263716411316869127803154072856581312473324948578241531037139922434742925186840259900077126226409698341466128537600662282616233939532294256317590939082090381372138070247514315591274501154493708879116617438425490062463135393160363654097805423348975085093695070620635402123260611298079401413101465299229716389986393750644721600740575445193470793783015590838136921628223512948107390062308366930524171154256055691304972570845848102054653838422069707717363416613547584551875060283721361727873243971248992653489313350828277030100376315137028040358002991649885592320246986248423261041105184799759600641581440507742202464422110653012401166243330248947142522664687124729926490668479203296369226988236227950904810296414791484348383353900721774463642188392549075172346486733218154729792734649311080332533290111426914119543933408645306705554126832898094288985817399999607057488189770359455826706859378339135576030349103972947930689924649364229044990095498217154212018002588319784333112772394763350813416344406586392206064293458660941421627238006459221796979494535882099747422856739256077896037530148864420487759593274326562026880995406179367173967458542888624877754632221980845206856746891146812285361352071115351654889997409229384162933141577480763241552673854336786708296661632870818021701781788057070585121867507603424981954113829373199411175736754753065286379027819246441431512403008961995241033522289755991023230434617864502907960819344598713110883088630077797502067793745190966361163700421098101629705532318925047510512118125537593032095039519079454638100100137281877540800163683067449444806418555783680494170631172001579538839673786526062868536316139777990482405560885445316464953582344909008573013927330081666617613314788377988286946098070289769752581180288243396915751856927165984945710633087272010525762803039184016727522117642602300364563325920640596066034339975118775903078373630783263430640085539113889543842579886845845718005251864792992258462459875166686546281314864007832791408388956082473196439019392458682622616337334143151518312209296693845599059712892853569669314856638217291865732191820490993865041530321315669246551680093283527401936295707963461175999003496475611877154060585099379265412965255210837669947135745275612650681708175489971127189358652081403260870805756662197558430574484938467227475680886218109045965368584366220516159587577295304430309591909172332631450912635869014692029079029513818470175510109566462531145844930125453143029246891825686085807624504305331806219566841824747426377185865754883156500192116512245715753458516824809806125000088359869801496008835655576371165165733022263426605546421895305243993743249394850864039494483964551319868804705111491983419355830644359048505573223992648077016163222735910825157193957429034333248630659183582564039029115542194656862650895764782028238486040295130463901264609549657858585467887219333646165305160136160681183541956375919099156754003664628639137582332220447889636453789174062331829949041479667994996571662439389001452437538417855084181030767348719507086184037925093213351849282125155018276704297798176929572684329323327114233810769596792290868529334016202112484924397612138896091076700767508234844024298296481166993108879751623022838573609956154842329437616701266018941595357910107577036134447595057951759308844499285939571666666937425231897280980998883158982017207643376884650031312123500356525478275308515663426322890684465483155809370116656606953267122639440327716344454533744575816368687562609776781205859465301579870996792979410938327173709182716314752634099039726726772871702044654966972284185491559197284128403874023567044009147602879338166344829677585358434732594245197540557102364630534561268705452869535824103322494725579403758680223001270643725736936458474806191316818708482144352286107185325588202807067825087976582697923023340440072076615823709261897821361856964956637150595375585635721434889056324095909961588044082337389554859335093913165887124511497631566366097265954196351895964035909215695002103574095980891574042361949722418678888408103116304307482726325510982556503836928791439853533064587074504794873558799011747753813071322549566819258088769339477179808377497438305456782971587597386542854723010611768112934966323698286105689149304632326245412228186866029772568191627974405419184540354683249609947710610616178291914288642198956103980483753975044325204392978528829649668519094496767971586627223657523086967917724497145877454089837623947141047974951506007688431674737047216365984042918725037179221336732316413266499108804513504119646274750975897139760182778625903195846630268617197439448120700589132381908562647931613401844972146171205487582954019452594442153917139922591539577588570058926863175003727124680867376793381611705642339604152603836150760850871982804216910513707462834648726488996879994706365336862092390575966062447202385547041706360906859574054324334011994153566942455548496934882126912428093633807615168657317223472985454469112051546183499947636410145176030301102181681883400411696832159912951935580681546224760511118747482329205393855544045762559281822053626963128635435592443096208243296485408791860950966959946841377378729702936690343785681291269954205979274968312334803018430876072036813685447355905000694256216806207023393461162460282923484692611924570216265267853311432773547422788460610644402595611821355224992059603419921241598780260228525109432185799127692457795939054956271377792169067978823879620003368192642203945619715277928103987998437061592473525002199905684609644769750603470336920762411486859575825486685392577235257008885893665937663978986564136937622879936147554922756388345160036960320431954525476883711767749066413571317852114724290705208881569124873526335598999628999162055099917062958437060725191539936947769866599438510195796413459753419620342378680606355922344238347277122938005346145180123107822104977141460275560624943435147726530926618602974274865582048409547900250436562983149891738182095345116686374749884252845461952699912487869818246774642289281427479737437738166678149796308068080780722545293071193220547633428470290819462192015129865077477660920813298744879708079275282513590917619463724647100604065925213102421157554510519180452407316491554066410016805116892266860131532648992255968138597134174584503950833411739755912849218058265432298076700641526128370156218231570593524308165861685506284303921415672701345078168955722670530161970980113796914161877586851030289704741872263299877940491699585668071783424109075990637051298164310591902120600530894556471149945944031222466025770560290593194053678769013886168374407492931660366441925735284959964809282649470472871798826423067775374882144288333765088917680506288098060853021319151837302463356024702949697473152058610687545889612466290264678954699999651147917787290924322134999244800947780780324481148478670809151021436259926677613257497247124157521374018822234905582792137857692037344036629702932606053071074772020629783937964178136465055459420477529330777698704190623419192437062306911277101921568629240678581317147991539236705438157207421199383059106586709608126081549070071016261961005937244719543645079371871089501631926744973355203205356570880672721374736750344401066548588238225857233847419109015308858043007866238402889004250728595952376198276919246262620632997710532714819097604235012551854733504878633815910781080404970461793350096862908763091529992069144165309118472643238314660196286921574076978595054868765746815669279868745381917643711079388927160582746875376268908655015701083008663823494588528182064545070502536290425103349901820072864549506832065202917006796894694871866811406183156830402546848622223641355930705926680981034811757330034741939490187920147973712772656086336721056027845496339712236629834432441589192266898718136178108433274189171146839444206035524776518102351004266977093382043602518300385925631208684783343818936788459922263685359411511002458789863059650126887108030742192962467842020076950623515109965465300447093479969204202336685220306600724532609588775871799446831380462062796867871066005797791713967033881160676518888436762305149415675465087841828923007415725242349960642478900790715585168515175243953147651379813546789230566971429451172973483712650639295660246151828251010183455118655889858602479683367265697301925875950174865477641662910018275767460224411782752630606427812499036963707192348174919843287680289211369697501870553163650236360015940022887840679803451876835184295914257410964330353943375394361726399154991804815329999540647471110466642181482772773354070952043914010168535873505514484811384922940435257307400595233338245518526697148206372731649998528793700196329202017485103586295760857157957651908150256483122292282008287619114110710128688269844640036340886689541655954532163440662405569324294727410484902832458500175258879742282657804034054414522679880444221992766931121685454147790698759634926158448575279899583217989392082374033031548805953860488296786918448464436864436318639714000851131306496621174990882004990763076375368645532491424227319333351182293694778040154607255284397807680292855830053218146106811100380755413928786216975886132750037174899968489352890879060677706481697027464078554464261886757995914323091427224436066512648883134626904402438729611093659058104560740798187861979596719302904419780291269693907237186818794010695528688482907584566367548005637881423698727101768451613380091277065205604114929082094261735379757814003713468266588163515270427771413843176046872328010542281888411881812667251644586881551308493958029024701946176214804985915744912671430472577479682704505132574628302241286258714021987689702820001594040038986784278261694858806323890171348350456915033452146130201620335990216337889404327921146549393862308419042801393496047994712396611683495188162029087792022357949547175328855607061532373184660579102889170733023272006802214793271042938989354346509124254771085916689508959989203721156556111942353358796651609481552696511599138568694783741453062562186651641250879536662877034077557573767100620123696151539490833328210752768771239552341772675052428867154662577635503801962491547718850676203297324228367824778695546333389674639893249752104966448785105500505512034620595348292194586553637992015800632127412367018459842977548686553252253542823332974406871049288286084602046162443528352611119472471801549350970312406882293106133948783077746193270428367417007851794166028203594744658735123785457902924422721575076768919162684875531434374422016718152271391337235673839904205602482176245034142840773746726775021555230505234627436261586128831562665058247239954089840119221189476358580280949146162791310933126752263214889903740625133971180746669672396973416794248711614475274242411225838914328570165195976060149917253644181485733895908469822582986737318178598084904944492869882914201836370516389405978213655310955151122811654976356470740674288595111249349175482748364851153388937086733769994916936199343056586027895810938144226093753388041006516315803435637638688895784781623721473297109931646030671939080125399686245959210798478372804097313945476553701668214001156804411634252039435812349863849194821216053243757572476429331577751787072905667085307235191282449438552408870671863316927587487059072274055213446536901310354043427689569310596083379565597135080416882861511931133565940615944579207724558177260738832079881335318864936718895519186520105568429593106130121650261915778188614368959766548304044830767246749360873477518696059021202539198175989397159634525438274220966722103305438003788028351208652975655851309632829714629148635935794066901334591757559855772385384308502873003538530634515784099957285402391603665878258735394626705964186128007067639047632280905410425057358207566441511581219514968503496616427227924604225077580501226473679614878466292518983501545061834037109753264445435207139559909628854057009062215669384409432340814575557268006892308088073946837521388364744992433027483006049894159009276864511679175214208544153938654124918992343372007355123751110514693688213890085647967555421859501969562187242156166183493943313469804436223932347590858657973900262990721361864923180567478793850160339810041781988903394953327670892125609206410306012067227181080640093410181435934448102472778831152825640232218316449509598565508368403231095534456031964871997765126689156580138586550994789336385282586961350715185949853041179010627473368115568908054417471450844158230698325488753270981965579246352600634996979186978397192710098023328127259004106561389292576194139049764088197651055905902498388250467582159443929308984754312337502915553753045331360954813523969919972941225347487139979281385846661169787334524026025069334088996174896583338761218428444429775536862353872823364806609330152696823409940400232751230799659289530918775930954170566532770405524095430205311203660287320556569524404299661055028282577459283775513835122638296613735086702339314780428532871698661807872034201464416918121379782797493166612105321079822046853757645128205420673331747143472901894849085931532067560266586466001963171566540147742435699332744748545587213139205646247153856907749681789653347680626836016537743073877868054257956904127922804788722279661678289619596776344134020722258359755051376919011479346135882456120936936464603779919531342351079318936471845068318128203987617084969342579186005123916124317638491764709170527036564701919460508482673847529674032151358774313201764792407236605886617446092022522517289778840312829899620144683423464555153813678097594804248306217426148147475105372343648324090161104823785659506162132760688341319991249196872394964609716413018597159128348222059595312720401076346193428353490961913304232691672556776384585297533501245900616595200599844487391742842950427857949749006040449786053525427794862650505037743012546119391241428814068615161102516008784364386095674789101863881948816934784228185035492825058346612672573148553531559212014820982019592746156276419556297147026876513292455953413016004765561766020663487196863833763236587205236664863863493124310453505620320214011401471312782234631811799935190116219434721916457726819915172675119592852313821340975054641082198305224582567586827692577668397373776663403013277638052320027120961276078455210608677608791776714184823541136700478357132702423977240808993077855839096992404921683952892836991773743952117097623444529917256483016189040019617022497010175727660580055316451872929983755060038651835019397657351765248215299708168826029098669583289199690024071058198185227475280917588669810012453894300705661394536175291747401427265498993925167210316274128737798758740233531339076906786891324751377604089309229741164529038416649162536702914669473638827738462176831388887670008264008367153167499380239566616133489697095904646509049779172357478123423980642882168661542905443770928426539943509401425408894957322000883576171068892282187788804366058068672733163990645797737945738568560835994139506013243852316240298473864101827746615012390249467944271848185496651325621557729289420377630765864930183375284411205511748994612628232145015226268547041314172517322894001861265435034224697876346812338944002966267722251841531884970715800324879420595636126986415057350651903582426923283704272639101132783086663114725584021706389613253335872828866663642456947774558980877711661269990362710720125924020066453434309525242021225081689463708402412008752751706163860411880673431898472626753362832759758604109394711336501673520825999132749844498769551103915305575321443479429303675119159562685689434161025063547049548501699021301468440403401247095361058903921835077506645191742435248209533597113758192587863359858129695168961946527274408321771823969210941155149897252463529238133176840605342555839687640958998076124177220432830341309331592798497321244605946166578540219644187137345931318980412988607310512768220044079815900783739230778312374398631843847288525501008541088300022021539150459335656763853962331565839726544857762470134304601684439530485176004380546445788664947162088942269510203364261515584857131186509287219735497869190539221924013833077189389340748191707392090702930790330151905742254622142802974406488830374421849891663262329105357664101130822696109136331095286784298149156656340487732786442522240662475229908799256316583443261040963281559690318455597417765247897438211014423609526652378286081357846879901233179314116156450156852027350477461042991526081968479378020755267925279850069130027160618794976577092503051094515924437345532009961698168528697531309711787293883695333778175784144882671989462574746631667787538832062207886042132251699040071096644055598184297827957250640538633931428694713243119194980171605469914340277055854466321991223662903969610371359623364314027371997128222528955060938814650974933532862969133522705460293600860916582892781507642326337121384121026735511009074724011367628965146035814985051628714795979102309370173616926411396584477833954500974840140993414195810499225928807472214356071228085944941609636106908200506303143220902452411111639703936508585276931392406366961083549299316557083648227395530795895251131282501724908082565668506218053903348724862495214414202795090509995024642144139217556811957990115820740588361057958295630213989856092337154902180005634392678524224218328199918463859032391763878007067567700813395960893741968438017191543936798427332168772844511120623864760941278567764753477180547875498784665589023427688553125810259427821441500955921657319528990458203638875438773868711684643433833049725183700379933534415816413123828650775059469664303810935620335063352960405126328129147100511096806442371243925208498792644881118527926787085531694303962063858352347021949525612621564984333666910016552666430763131369677089585966299881246970507007749819835463143936575255908474464394153718264838387410034112360897107131933998042612717996629943876863069704768357977939886639408585380812366660175153484885240225895387936052585541254608317741641257456438371193420081493647859095799753342299451649896692498261490698114751474122425886485236849191439377609199630129655920876968670618566453920355319512359406421812064363099310839403544450045092632309271762195855469332555331876390690731454972742410346988120301916897457495062631799964562179092202913684857152010121354955766452767783492761849225548322993388536521979855123696922601412126399027671340613741191774306507040367499911974086961175640065980452708684779301426222402320906640119837642941463059734519076486740392197130116706369245090095806478250345737893042277481787282837253258403246137358331283861990311304027298351766536438979879417244968458286084404683894391401288554745158449099876738531830278125455345228381991411594987844103063056925955900867437648769192102167554027963870927116044126286090901711491160730784771796197910325028789898345063390854018347766425018246719889213471260990857800175598065793992045257956967574718466577593875356794480606459486863381847234098714726000628628988671690129892766867449719825063247257220961242896890290241135812873112761880609151316169991681252376199231219121751677566608780744088462280410918337996245266372368705280218914879916730284725574167727139680054233894453049836811402210377620598916059413376336736807279974627903232768095043397723338865964222442446595173488947819357147416826756513275519028257297924852634465937641872043211317312401365832929818266031117619089101159991215362630969148135139413280081784362290483394776455669965601604133555726060716560089905076908574353883880808652669151050904590149126165644776409255503472458667234990913902300398618710956892146499489031451440680861982905121727770470568164014529263724540283968962627168168256966475967649015035337168746514180537563421435246148549485585031637066462329367940127551381568288302186761227708848680176587109462014516516415848535607231289179148905923756145623830501202475263431351778519348003551147110187206711393841966454400796465094228178427349945627281835589675288312034329559920779121221313833446722296906282831415459464815168072687327681805608299678270478213538652171868066324285457908619794747268949757598107835070863457222942484149116400376282914958623527530380400393006536743333182514835930829426894060267622697073132533475739523008578055914064463301198226972645875648635358032188630068374232321021655547415662001945150509273564473964277702330823930850979714019170966276563747373490565565531408874655257555368570986988717064734295471002043667555351366972276817667139824099856738361394308623188657128523972115040279692107920620721303176237343526301757322930407842915070754541811508902118412425235219792902688427175310276336545706355840346234856269439002227956969497266825716532339693496681683194753947697405606317620810081560020299375045092957287743381178142147765904634112914871926818542837933963120284468173055516629253197551621609941269056102783453742757764030933004077318458991800010374636944920188916953001337621456533063543316409646573555064534978274687404703661380385224367004143979811638615532393305733803996963534353896223690335856137579620490006514452218607234016330885734218606493903102817793849371533293306388333488859461428395682276048411988413723236676735387999960004071452057783208540097555813481818484665719957677379299189365614206873484926333711516404617329506728502331254673151768886129206805258462108783828754373686172480723454416541731306475595418177578834938638930402503427587057402711639876692335300249834682449428477851023659943108494841337680490296796185903812825188694917583449208436399104080190768821041772259485124331330485564339969525272739235512198765889281662608241873820485217798861309542938947304614864344019888146842124943485196199764246044130578902187537301852153703239897933552769491526275978107145040295860176500219907094271787347415948968042507127296124810442826547764399566431747520850642802961057420090237340146298520180572260950027972426647563563578914945280452117949684371035387490218016171569418951635553773437478156867468142284397693418112263163456843189785683999579459066127642877835937193684653338901984961436400174071815461861930541686344044202114320512220757235348180505694411280508850412893809975551527271036627924465584674698949607711787660470482442486983037989283112604401477773717116913679343259449421125282823941494366284899442221190388291883616285028860807972668214772241140495216781955164177794661858831067076430471603068012645609899996271708451047243590156197991183546919767050478602543357414728793261804730240220275960675238261010435664921773848204027636569876634610831239238609507843105903469193756746379971506908196592405049687347548764297713327734735212438629343291777908317440519715714992160000983049076875093157566074691418496047423081569192793608024494062306185227651547471954795095384975850661632776496233959626984619097289124239397677297220823337960531307741218269497689655973834641889067156177666856674022047279845827424455309605670446976888787065693149962875576312563135686450684627152412754085222427823181068952572202845079897391012571600371439878366489661237868870800581874468245005087818556750185730560994914683822534457333737827001680856216964154304229646310131329514054578002099604006607967336953998200839537025522436221673352892208826895466982494835663609902452531419816362003909915176829769843261189011543049571481376935339467596466648964908002617135861191610601563707566619522449966675582535862689055510222592159693121028389188715840302943774010099544197661600641257886707053647898645724236895806875588621803155577373579541693457392738716644067495040259193998068117857439492055106454725897669972554663404715602357607769734461832140224482850033026769593229781971028401651526971143567002992757819177989907427483643780036933866803400212621523444012397895500737514172056152818873504154679592396566087329161902432553174665151249349495805207830329712291892202874226219355493731897059583559889653706302157013422301059628230290757636763246587336272232736963307293757169247881160234589813950816498295645281793704468386591727331144755624986407107305297518652335600861540745467678171875318103674971550404987866802150079682141714794936347059054911925727571143252722378483568734179632067132938701818941675881773810742709423701559196018737984954486638915648274042179404505124048093230454987282484982139936709682858696121583632407279536194357644763076789566727393162025080964227088706318159469468100741796670880902147397910709900442566705814489639649234309530218118055379568178829888204536497105199963372706410634328946766760347527519437174165365362987019860172336799028800922664421556335956123963014838244146735030656771354742134194071524288999732759074684124879022100948048508649920266185779529169251494051454555913718385472362481376026066432634005883226365883066892218108753621593437822772697573461567519821903551880769814198409024883708665659690780815296183209805714498586421095465539515320929490308480585620906901975514090718294645484488800959075671997867037320996146737077376615402736234031566023354463645475423753042350771347217379979692766575717918106748752071701456813115433683170598230697083835293978373824728670100630290108154918990905731501572819806518038377413380004544253273855340690851271538133682216339231963600070453615421624219757125488795770190011324560442841219600960025170216919797724729343214372230228691197213825189860224016193464522093558309527559430120701175222276902186269954581155842202226932761162461522818151770684424029454578228710325303638536432448265013121523766757414875183939637868151082987464627494645065513250573589738651509528082386483434054620002179208041450733515664953468237564989657514357520783978379242458549142122679701959628851079581628664588014247191797906739927287784033729373199266608333925932212937208342057309844348897117937416958493337859499171790944187512719305516813359072815548273480507652060579893525072335074466457177096661493799550229921694938685690359606659538872650261861931316145283870160774150978779591909430794138183352686609841174268048700268674710300831093557577941056987237900727006150262225655680564558780257078067279307740930332384483112580797769119764763903647029511405529064952596851342321489512175090074527149443837141759235492268429041580082845896235634928795179315227296377824518999974774040036392126562051910391230047749784212878611763273422242455988977338740955401876556688718576213888314126938390768636018695322894376150744609063142438511895338618114075070218792818111770293086939086593526944161285907224682856275411192119103966980352665052611258366503109609646368723421741978277585302767175424322769236212867630057357145350003006495253938987232437340350584573210557520087602172087423044997126317236913811626485985899795362397632837468872791234694514809742548627042813715270571762247920543934353875550494962967008901991481705350344831862782342115889421245512655426737056502929041894588968881080894729876953910854810350592573254953242883587703431743272759579802088550658033048263443829717533463135309378060885981649499946211975390276902144157261336867415821026191604197933044644043141268221939630006874588087459915266840942581734262018702548655761899697610978391360316692592679568209751447405624859967925983656145758700174964230802225929930822034361809534861350660037989915195519404811972145099886770578088808721298738730908352118550989302634476891468693657130984431496147650307733669296596755548942931619962886956886848784726437128484703944860614931780574089552941858386230742534177888971906154818571706509865854905870319413253358628198490887629217802521187150748145718870519372162145958925951852005009616498909241856386096221253082056408962108586462330860434317076566623271233155160586241790423286496001449784886430908628232713864109015309896342915118587401609043653602064787131951772865938970484057027161236165487334153842223742244305265326796849543057162031086508378058409267689125826688081771527706615792903673755364457088936847571364514953519159895422289147702002863213649113177223568877538954151520079901945183560723948118020826828798876938418984397574383661699709594172526245535018514196473256705507168947939819998412926676850830315163182540309830725070776264116814299944243048054418062594127352640025985593818714404295705517541364748783061011598443624552807529160347277476489297631830542882629935134740949622025794994267269448776206309751519184260292715181836235268557976797800896755573106556647839057364623839705108417229030353723019026332995048005743849707442910495011618139111938641731159878742287943990593963441632617394787295481350786877323165213064865323305080906019342144745909042777526627615926129256466422124262351428676883356368138867861390040369319061002713792931178528768697317530191548745633209495124275852534231700122528637500787623400449988405802239986327795618627856034483196847917214458217740701073394466431841673733021872844090847759403047967955407450443954473848316589624491962852971046559076071034366205296254716274881541133637765447602402752621459534919936039444470190717206752934132838017505263238888035123653462555843534500192103534504424416948954360461172178719185728060272663009265886390715702317603845993657512555975812545723043947289770707550849404766047854557585918096610790105570601513477894177791745748688451304393066210513881794939022162827929987421226964209336277302695826731204715059584101776600146400946020560300080888979816235933055818084376366185567260346514203077382935639231519968690821574326321656115986895198450021007574349807750676957077501884422751884972890103863714421540054090653870432741847488010243739478981241145041178024652699586980586188286945244515664242167095877027739588912155044289012576305374466140861714462046448029603079036660445578860178951454168422160759966514417316484807573585074651810626778125132561757278450197857437239495806208902772770531960186195283734869606565901443602570062363285576437598013069101876530043607576907822143745599189648022079008623020650833020287397473973364939316419675920481207308284059773345296957565696714345567701526788510760070803059235847109935799997843746641393366751430466580187057635001033484165361606271796825556682237551504130887926525350002279597653882834356476074787263692732382997069535010816613634570767008913992624746288150392644609035772426233911199844582198130475004600296428840580333168510083179766850532831111810375639694137607083793862947710461301420088318330818986980837870040178902042283660165001444883797259190204961154235916497581008915739064592895752668404539657000984925299261147174249502338162434194544054688662728097222420598236380940246917056763560100171881035545120768088841174838575583155375708387829487307749331848512876037596606761886444705659229361734002605434207557170041934331082783254433532419557750380894516033823878580842923361727988621440879144761528599133266524544385909067264874459480716217067040367083077173676390029157501708362076234860339677712270111366119245361691624875620392077943236096795102026755439520037509893028561207156852853055327438096125491699423618996733321525469491635706255830545282246597626174062188401993572095627690794763394729388027821693996179350515021669348550275418570273987725257066321512192204363296219182712291517583669438926038749061482035629896962311506924405086744736437747534299676634343293182918372875254440002746198961695700332270557287071274532725762549059643449606048491267500742658663890674588759435658407236820943789436496240601182794169354681771404894922350972756069226885865092033798035360911929564494873494620163973046633283857196346655079194138676717050360475279061217269725349556142912017745164696124526706581257076195515372271503463093034193483795277155189736896491176525432890904432828550051668621099023893293486618042765819963734557149134278199344001928191956133618931197703044428623779596381586880124965273404547572084728147951964705749602350891477459295894590630803844914428705080088636678435096689569716549727241124668852741109987231273108116211988943057770193339337111942344339254587560857128538651487176018529425350347685358331506587661971258977241181276856552551029998060224515668935113028610124980968235632202168386292829052511620522624040275991522436371601944231055092105651097309116480921286722007337219755932097518001703989365489891501494642201869884839050533329953830891483152870751866687151958227864944932210570936365167658854729218096477772935024029170563223973126005880844570482348153860282084070185421036199342641415857958524079612076514598126671571416121351974024317770895605141305442492455789498594661030864906646001435581643800336283362727802126955644469108801770104267766341665678869970519639347469318720955256190406381215991109885482984521945812827019352046465539407470712463553051250170631222232502335346090091910041421895336720436840180732869803407509120517908693636693081130907632907218331328496860230584551533354200422911247041568806530080901218070178208265076084020037851629852330124840303936315215864590497959406855504444734890201168798786393707926849114500929648163414033482493512459905638328784148433199769354760526922591915904095172132643531985460111644849900312674774214679724604772631022023348266029588996558854327121073191172662246540560092724229870772174827119318091217971740618030979272418573063166781781822322987410760101600155284820319489652278311359127761238381336491243034307019033343545679683606324991766197169056904906213464952754245885261848714683574329260239777264071589436290703362433006804895373245202965271706723881992024995287082672010195435436161772738358774644897298145179477053057390125609537690395461663101136629189880360575173893553034105929667149216650912209329014383572121600509923487547392811253427913957419251404464349632488305871546617458730470648249293903031188967252637002279509152095618867539584692784158124377195545150614464113496634133066046075801683662544966949240579216969236602054425228200760154607186669725630521357696597014264810714419923954230182091069701097166764343172730859485768484197177451857693154908664654110813871878890582647621204966446432531128782101645736344896698988629161608885992079205159096748843441128004717540046052946448197867996209014878792987979229907120432128466168028702125298603991758768739769794305834433405247733272284965410779663316297829510517542285487228902880924463040796918447773612457186126902161704559040499164609617865449174759287379903282013392826490926056734836817986499947459201529171612025992891171884492756092636252098693824341230754469239115232072846593079142990267709530096161749497509134265734978071884349289641338965034330897611847760122296844841095540673817359302022157707569737071959049469742419466366326107004198884847269111221935357432376583956682024923062762861724529939452468515919922372052787127514309582673436824479198474308836647291121426962146744625319716226306091638807600005251654109212325194296325571767073052847506442815328761672072596925965899020180332475626511874437044984965949351236580268080438617056928399841060471389397253033818812077160589274858082734275780018551292961113164295535329431953073921551636940577212370872917365710544057798560931601755492023110808180155748250058634811646505695264043834444617742308011632285235227838958389240504284459559561636789796499176183187141174870171607975529078807137105089370682927089483662110675295614471750616425756762934755950726954195167247455280055171342545531917941383181619658740912821061927431931359415405460351110897281079633434170681535043004652638030026360172527696884620968056773672886866378807489350946735174951781209953381592338214515442484240810464078048877913463034838941133145570273594566925475777542305336300737394877308777853277183996636100235347850840743198055504153687831623707783705770258925410283060080944620645261277623310648781579902257497916623856895153438060194336060178662849489783308359183609140558120031596595375296152251241441950030230901008987797976700424197877891118653288492982593023595899482919203310845839909228348543752893922618742455258834749325562989496889948010193066735900402667687307992703007686129205903064131015027524593650220154918577364315764551296507829543128512894861557432985031330874084777647900808030692045621807811530474936010830698483599861188449204174211651769003690342894726655613929125824270998096225891816890626083764039225035014862662136839912843047841904384227032942998241908742877398822631617504781492728717432435558444943239860558294589396008673929920796487933726206213696713598943102873128535306450833479228479921584691554339196318326336822150175299685154409327010953882992290990548711580277433508128240130965226247161740209217799883225611629197869899691177439505778460725947639584893386614551386448790537900529774985236229451018956025293800788677782976480005283275459940682151594269756564545573964531307495214994032720629568604364440975243786428101045513056109053804829157034662609321111770176107465587485830159797594095454188952599180876190762258870416857714925343551020803486645632863851516792105630956298181735524370538083293269970556172530778283543520134454144310656317689817840227094666929190540929357462958156299988109345765643089792930452925107609601989361639908097076256121995434431562483246523476190203264413355382895112883048115556994852313414600907257933800178062165054086297797463295490036790916661234328359120495823790556137368514305216052758630613752048519225718095700604624403305151878775158348770669713857006415341465863022959910760397345741296660760234934163115805802874304660432995925757271904700814802843956260802725730339785156428777085704464972852439735098325290726235948062856890900210672619576037232943458199514122346940894763531867891080123469060306971373585193659287811264528644793912354519135007750011552771250708656923786980340494944070053574750235463875229706120207948712426898909721629881983834268265953303586701295968984109233771600313283767629979108788419982693620150414367649221687816316504125170294842053929102310712263345215443439783560688313173386618866671445498689079154666126829998038312775527193098942150498145441815657502623355649664448831925543683019404885807118237204327718146433714018712824150815718574507364461184689799486485727851053489482242921856608299540809707599415197977886579658023755317509357161766904802913812328594481911348221328615374663781169366284874324705651024796834205794243101739744893147072471916343532671963738313343921587908093562801755675452154602941375905435394282330728803541501367695446505070922202226655547802685649314309517516193276932262679122581842623882369841481864551826659569727247887959631500605278950028845601426968979769215420644738926496082249022025214184435042423182171738008226925979746208259797054098916872660153582651960258020480589912599643392181255902761556096356175922017817530486383392034367991205721816489038039164745176911115655884869049255978766600353497070580351578874013412387052352859988369782265915279542665447422017664766376200727866901728554318251458347010571756439681968964456703386320822697218711603840965642511419215556576979398417949986433021446900619954938222474088682471927133854080331133297183772427127492148825648986275466520530903649111626811436180410582528812712492987272680881251870937868845096057460205557102598834568508234868640082260993002382559504226199306632098472615283684623816976977958967177241253616773871523042060478644710256588865573139551631401125552521468785433353081532766361854893476196491657625535027261680624786677838803151220616593348918872237384399903361266110874007003476931165137436556655615246221434463643695450556827845797758899589490523504170048921650873109756470670168552193140896833656032350757512295546332674930773401351723883680560758976882713415670633545817731751062243317296759694355149527158074272738695910102614305932482666446195448370283136635926747070444784731178655329239141368425019243224642504105110301337232032328304239925416808433017051694121538687224350412134329806995910337968560272958049260193521076973013241158889023408662876449711196708403414620988282649658132375537062285040532611284466636470955100428548391107865982157267263285558208408326123996680825869666016877889191599769652551477687855150302532872684824420632768981222275894508653443627187630533601169004594300796400393437341857224618800499759794201888537648002525008759636630085125098081509032546690596372695893825175310891265251392780038489074079905727932698720720425170627822155171516027432295451363710219555233647792111267429293708291516562379609939635814746044099668660612337215502401578429420088321692135145688900573943908647048276396462326978799862634488741201153669899405598976838593473032697543974512480881711444013479594415829495832894513673346209927745810445824318854573644595644400964682435820585633529575683443522280397572432906300665072314871264276261911692275332576712231783836000500624699731404113161160113298717244891527758332990709770210727836252288189549636427842746377360820899843092314416286424741663651025834304675805176125806082210783058354856528735031615969174755467164588515554091776671881660471301835244029105698883885485445206199888946001407933205992625780259913699995746039695122670351434112728571903862009605937904527011426147782347457360539910305978790219756248089869030286287607557523077624518315694969428377348896867845293508881020885348951128478058466883103000234757446861844968114968756310699144338795277414631015049042297201770427225373069557782948014506517054229286358521739994625593109250888118753316654344484433536166875219460503276701298528487640592887122615413296058644497237179367080798653832078522444158941901561927857465637012524758596363531505535789014751993148100882201402242283314063016645031993465523795082734375694402853563243489600406604228187199200004350366770910484691667114387160702368635025508503972526921692449365963426725349648345176264787618165428944024101559985717126152433954186177885815148007410274176542579090481038222086049076746602136048644363494598494984882483681488320903248381806060439093004396747022545449619628181632332713707685826129955576398000414481884018808564785917633444965379753648643029329694126371977932238174874636958890273408166820446334413818422039317922150215559198546741729960778807427868849925304852854210014195253708230993252681383574884512827892275706771080510564513160907140596112961918518540428767927576131951183521880667419899970270052771817711275679119953683137987077860144804053228339578142703454835493713946969036582188390298266543311214692120759753592168786313658004564855088733738524997261010366556708258853821694391307758834422380485221361599461619526050456579658438218290626687181652025126458261768844576455383769341169073092479215207201298556739760122881607149043412250636866556490461921060116487364343780035871760329760804090975127767034580203036688589572762336655096725892643984686931585227162496075643337190454665020794801828353867201999414189632080078969389371786762601385773870670317380433727361249642951756691356728109499934197551920279030924645499196665695880858194506907069344519980747038323110967506989010584344547711619573162366754266410519666502266310368518367923931785533054470899625020479463736998581820104184661174655410634914039113575652398443837716789267239116556579533426440182471446961644972497556009874527826276304597475441752654503447886795029661325393836017055026954415210353712637857237550631487051576720606702571702988950139167025551416183412430371269814349235124241096712409958916822507608694902245420689877559047907631480457623027324874662675911325756208005272634817081882086031833412707146666836973979135406345971819492685202178764903538003772698865365455783789733775857283928428672872218234402624274237237035946885551057128585716118484907508116250422631565100457863460412647828448014410120944300856949243183829630318653330136572121615482431307104330904370617868957891741694332645617685269526020946199656245432210432281795227753261920797179795394868350548064326739741385757148551364564677286699764015747745442613892581140685615749715049958998146701004857722735803456430007653149615630114394329265685084670672850413844947541233554952283101258297247777963485414936570659185000418497645078976039318699095105319602169510786267462719126714393341920745177638616895026513842143712531469785910131969317157715889393651461822091942713207586745919189216462169129940393949436981836429519727304686535022321271281807422695881884057469051636053445812934319867613827262002279520267585453449846416036558223912573517825407367326050939123047364645780082419927567412110779300203921654274790044002163733486127557880658225384755999369716197276146152749215523615022691346690727402544357298296868926036515378230177952620837026392256687288603225480441358548235917582074021973254310581335296263581888288965556336887967839346859416265884937976595995589659270149200086493708708615883538093126992566451819147797955124374475395370234627782806031169495931718933322268175232855163878747088455478377820070359023421438608566642997843477192990875431950668596119996379529601882297648980164590375324866905740507952051859264179251157524533460230099493563892494533135021118327406117437948252850532585537511600184216931408631772818934399382676039554792860115313275910950009610267413224185073015940870727876888083166763658649067954517920433037711460253429362661377978425916661707391849565142101304694481596542869458308414642523843577565624135429640483581331741920007908622083430489899447477199320457858854561080563965471562527633517774530076192327030119007518260514872537412859265582178340820009785307446589201317301961420692357673886775721705241264040218083514316345504486184142070372761850698102269373740775640933958593775914937438550084005957298067300471450100290844790391503573274385924432398572791140052097131347582906393876261594957064125304312851898373081064692533527697791054895823450215490373054624248991448650767424775919825469006975965733137204526752912833530693231092781386155998985565525142096692888119590027885792530223324284254829733705823983694290995790306518267432411376558006860516930170987649180897212682858306583826079165046826375290425092280523610828071493319160154807742604984641550675093515630718177140610545291461393908686136905669302299143810467226743379528318265711895914060526056923334076096542662146653337483339253297330815532531777240066890057097605715501927603617667039288221083310733841348981017147975346662865477043302499139010453269269566767846639482982778864680272663512020241701937948902240056021408114074439923579122471274613805485330136399137036662274520639981439602615223154634236703227401208701944315260669230658810069083005091764327807459530526556243754100949439612922255542769405588344977837702960084353006732284626995024735481713156923545259047881902610685818021439073891147418824174169914962972476630527219322606156254648591661388598371564358280596576944576731790263281745037663973425084417718827769527709018461904855206827001488074449590671759129574470098004889237733953274358902054208510392708090825447008195897467548448412279592041167637385822808361060743412932480238077218133984245091872850979040424057720359342158327640958463937226723036220554391320288643082237114749097615945460298658052149120940219418513527306311238773592434521968022254038913912202004088292869927203111677675162069143917064182399910069174150332651657197618466806796238903244323205370576216034426267270999146492110672645824346783795222785801156500536727690931692552247137472807145669387270475684821787375135640295628119540893694693479464056161513929574952445033648732914911118469685923274264777940989329293562918536007142942616571675322046359563844988260918005980645897202329856557543499864190984877024854059141004898769205612071388906065979267934482977157736830679930521748680129910582949659150706702025718940701669980481273290374103231019179126826480412937788790300366952623061485849393271360036188293751133426712448229771980633410977488447945440048057092465015779089193241301341729930425734330813818656093188963510231943778185853843130704515548391603633799521714891604365557284830468849039910689525723542904654780734994793407255708312808662560456580516567523861560762287848749262365944959818358075595909516692554310243729021410271772295133388678297503188403584507782410313769435140334521379235808959630669475707737201588536763640016312108310967354040806667044157502440494528852664067756554143407255378196975066128348557713313398832022865125243064662535996108866126310901175101000627544739234001641312765548886191808574737804700424452397919123003721035340155836154166456771670027217344677462038920642437810730621238295388230527394529767274798254050391039274045181571783781367461146493611620800287116745810860143648345136604377033990143104645831139148692858532244617372921703866620757988446210593766412730586290028459481083058814397455622410185358473138463174504069979310191289767458255218432030622647638535784885764127875762113033554836176302856486170514201073343589249232156291277281103502186641069875196674564208644186355370727465066137387044491494099881566867463504686613619994498761166237612374701266457996535879609754739016868470942334792842860755814303625063265364481728629887141996691222277359619207772783552497714534295424239867625061583562009164610454522395929572510151730044485478038793898311265967572209474175673016580465633582421883077585553359954845989974942842934135249922682388240241715412539385397583810476788646023058514792524088569079837930054573423464404696324135623672771787851790257557321791642658293238757537913288956559689777281917673589839859321583673512640175925002431519749064353021377681274438534269862840907029833440299252761531881978021900450907904342329896580141082069732811086603956888845697900385539649683626065586856565027411347846209878664738583851235288863755833444664736531370368531621003778412658288129126929991012666067843217546308415010950011287010187920495440916404817904474121133418035963792427891674697037713544427912529216002333473962439607895088213732920709565247540880684306422934189679005910854547656908099889992370441071161509339389048167580223942005524282416064286132218546489009841146977949982333813805279455853697775113473183611858639081641379460555031961159815385330994317314570177431055060781493251132115334982595492487072118789800651007897262526264370051096271541310087299614042031936701226354896130696698602024382192257185337458143380511709620768738115202449495495875309463119571407135727590106627228253186047361816566807534915667459461299845285836599920614678325325712100056625226013149882275571029485447614678943125766382421217477370250430625608699259308339908983166808087134364808320651034609038434178714732147127753542781042074629406335146001814702104796151524414514509618458548726340626532832991664985616574420459362861116829778118905958201170590081517297237778644098457367422074071569145101354930577106278280521422380374850040993336700994117650619292613762735759852872175416360385267934225457319735959206092725963355258038087001591807844249418421663435590769482408148823401605272321476519162270586074782176135229067107421298976497175458744797566339789251212801780049787203585110922976136274646177645555176514835176679313357553329775796219903711614974121194561786069369033941350290873711464167935810820566046997202538718090551578431055559090110476696136450929346218672743938578084878434978561964707052189300972849328016682057449308219574919982126299869661989719980154232189866262065093456303105779901919261688365232607472975780060274464495498566056028103827479613111247700144972753765040612589394627656615590905377896793823976089658626463200051918820402607811675351987175890784485983792418055689905764110657680634680241787273461210140974261483915349385038273347039696394967430102988268926876523304407307263983320271346637869319371037792219812729718827919564191715958023709206610111352978374791293442066093409441573286262433205869430668081259397448618457009781343056618065556474009045391284793994428526342037867819482308544338703325673469624360718451126596773326613959429466947590763639742517636417907857998428776713036011432770047027617590786280881030303137245633573269766587529951833913957450506383036663510742989764569648473253633963135907519066528154425913184944592231775546713517181214973277941334842959183679367418396943494368045555613846260294871530024467474748650908750647684787667688062978073917571373495935681754387944855935095232004621408749001817281971744864590404513596079340319346177117566779130311596140909575447147284489086852909697119480228802235354629878501964089208602453261595003271087699625162342395641745660553865312133604708782307303486548558450197673750802140909793595415121548909448225782358370887298706678053781011802843689675234749585583332299138299065216644852173917580313963462625194942825884406872447430162174590243598971468492285830119466435543713400007441350599058514675192897750170158407156150811834612476327190854143214438499530227905017660205864143379757550801037504699534761387241900992247920542164756822131425517179928327669562797193210924135994952830659103517231160491823575507545096209645832881258900358776637124844812061854704774163111540425353369500086210365617117911904813539986285078461661526200608871730559203796502513157209851810220488281841074527968806674758801541811755259529059182234006247011828161528425611336457725912212032386267656345878030604455942016304118720305301872368677408527116497061292309889212084812514911482028454546838156397694147013495720167587250365828615491324183553081335726648778212472006533245947379571581680655005018778267841643934599793327583589287767205744140746674685456392903359842295898856390195609367558333056298293169126463353894666319628399476548603701879720297764601715415882472705169915078678612970919213207641508399689645733025402544947028408306057125276856507625605389762503412321267093597554693028910553692765959411342546446002904060567419616609544664598859602846629239361262369390762819308542909413868402844073101918660335421123423584641724357142474284184916313922479368513566830781523874038360505310551276684615169351378482123707680378273343255943133858514498722609812936617930661918422506372188610068332512803458907664897641207651992618154580100440708766075833918944967808660569236947694613886612916874206098741126760133267627579692543127281942949198393496341805222696895291128481473864734017359412461148175504136467730619793267693015816708266536000575013486970664553551601087479922983442069695342799872108880972816303042500144626583636308506799668769239998105022142653874826419829678130757567707579194738674232936362051987765719710477223551337759406777742106776497038880769776576767523337261924546584036532532234233012483111302418242427750110805851939522395442780695413952623818794662454762528252578557542724525208363778391328149369598659104287957919202580099071286760957676210050093450301555664503123553378632585425349143633846980664462624312553357967715845259660861652273878387349071381022921743588860170399758315929702589401876616225139351664469554539709035332701922979267685016060745993465576398337473383139795164317211378885829688347213304010746790800324196446861112616825432163225779370358947141019053514235563349291276150932873773514085204532197253651380848010308920202787959772615801883102250910033940185280003813670104563002821014986652573489650309799582763303256019070261726269867638656138962301572319378527116646656000886294508376518958370021858118295949045420841001234476732536979654039362932399706766977825208145271055249667373968179466679296272325973478954974257526505160734727732637976832596390139024064880291267271395561354871320790032275638231945408264633429147233911896970349283897804295261736173413349276881600005168172882355255287270977509883090861831443967327263690993018365377008736031927023385863611186190461375610971440700212376912584030768068783147724684236390757415395319797882575691549811298847185032177945731687085846695694575924271203681881775105913544500474879562215157960720968646445315201171121284271562796697812046081333634268361793143584930401247217153075845030095989593745411380987001032613459795280865554275007098917425305158093549850224769919895082200807926274085381153114403955049466560163164058337523351357419681812474757574844923191212081279198535741567196815410684322091289079972799154373415859272718383290431052078194144603462282387528513766816395657537561965959966840639478568853698557386991695887423917278159861122962784855481050221051460144627058761409982820657880262366008281455067298623168119055683657979572567218651370608587998999797613296646489718872334926619155745710693261156132679860741029408468792649507728088127021407033407078651914202941218816066948576857495782706296641979740235121653643890729887973434806814589113553978311813227176731710643053928030894400789615989143256898726490578733664321631329974004100351490441296994408592293913282115232753380308262060205745470638133640014982781351538559504273370464008818586313392850987420624048510228507202102431005318342225099306149692458481576747022951179820766699707280641187631484401029449828910221918361672813436171980606688718034494609816349773679382427085238651923942633735270827877115757701511506999973613536614000228602751077096923347976127292606797947454758289101210387134031798685812773018612949334469830732601057113306845405200258387591779431798256115821530041969714016600236944745984537484952936524084578424648169210383991210161777194997574504039943031733448926691251940437792137511242514626827617061087948246050796603349438132401223956958968737261281210966470418204612899264699350461953578537199700887953733795215499773690556971079872950942225350202126209687782748813146473723637542292310792574808433395472201760270793540533311564634853795506437560548308037213492350502663641558507057059101483289745727337025029390163285022281146877528393505318766993838173972164164677913024407028904280884799413760683177513697344512491997870958798290164444431368489831466185910221846860046291615887402638076913295891563622805390322304054085785694936566838865006876749002206677857198798330122659736427678717409813871955589947088070210784061194836813232685983651110465226283519669458972937536838415912081642517850060066759292742599273199422155571927392489470017727024068626045578032005613422757223681366947727363222893242001352911103834067445597222543361684233519816167985525250117569896335465320040474708846098988411574255290541567918097225665175824319764830288782753882916552610136722292133000502028789368352886214455280700477331178583816047131618875092462108381163330763008397022535210034144963388777190647638110629357079557571794415824540348315646415138534185989697801853215938905143341165694313200229588146835206349119430393366870769321916012627383590553866206747871613512626654937683334955527967445574195657851289824724225473716691461285015445683198592508175764931347857277492631186436106811399845750512338211727741472540034380061391145186495939432215770277037932037178539988548133386125874969132536666524255819427497061680159756661275496996558726526356071102012517389256013986889007305983334188200128504198436382330455946462779743638928606696419357029391042132900332723783028139409171252269543402090900139151493987476941879628353939119695007903481473880932646292590470852986317632722710557029664300060173206495527971476930412551327434019379142274881894087420271791808158439981578663136904408809666385362756680793954717395709510910181334561374060409430595628668677404621571327076930619317362881440492038421743950448082047324112603165088867628165094258125316870922392255914050707016203692989491054965239322067078710102428091481010889994847468223102184773113499764979014745721146444259527078399576332908045632747672930573273302843819364284397160848732444081190747803429370548450801818803854266127207068398850255002636305468410051972006326822268938648995518899932849848464724031865614905120312986936714699134608912549614650809640937688350187897964720806657279170693895717764361408911038478864319843121527952268953459273846782051622693449162456320929036693527845199233392557709586111854541242427878720759655413335838981421592594419737726206705606067715218975002635801892243915711853846565018960867526014196089443915174604593887926302573445876217044981906846023020056095137646446556728160343557730836139039482797404695160622033612132209677784782733848071313560071923617515245889224840176895673967032170945645737120312569040130324801523065013875725040851501210145450585466544041017829851821750222114848341477219732460668066274247101080021289763600349166280189185156125688224241049892976678796384551319353088633851294562218567976659247169920558939387112870646172092932533377246237046776965010600593655866176988730702667972536657218550926067098580117822853001242010218053523173492521567967004017223231362816883196350833365403360986255502491626208473826414884976717834695138884365422631376431700655976888039501530092099073245257700770724866036059393399680222769169096727302306021673954106771224487551013775575993670627664374709253416156242740117551427128237401904813045991668206624548336016806622139151773401474920096300059625521038354206079914559991086058150989438334254531834699467408830336938423098898206420254334151220265913987236533214257773011303987026315883993038922082867095675106570695527507011585363075126779704392880391712843575378166362495574471086592261379364188988108436295300324446926525326809656348938634893090259192157371198195052194345152918523495467317663329328746449377698725563675617873739050830469605541332821377699911308145890599274818337328998326136574648489328887512896379667943287576158082841851290457634963674064743585265546664345427175631956248761789071972308154085247658961277412232263548219652092465167710716446960660735557649685389474930015166555631751103983224353328816756624586530969050824117520603553048261108201530888386091573334634633585305091111801111123652143051973484251776348214014531192849267958663904593674870744635296802849542518311867109272407341137878573474107418022162531774459973849343843980928844780928578547469501252516323768317462018617149096580222131142674394454309482016023846823521892892707100044491090537480201219433342068495126259258120673199726533580023738249296978747719624219897652914098169253521279830450581466690639556018188556241783663255443828109464224717208696868467512033386841511118654279527202837326674127506507560456576147131124007403793923060089821792123791916359432256762149655078177725976679385865542328846739109697598485157318436370427575718322197523401995967161838765527867424631235527994696339267547783117393597751845799395552798660506643811087881101375517740085076768938739512057102944637076101557398104497902941680316688680618460839306924130592196775171933253978074201030548486370088684191818220351332896167902346046921530687408623561067067248061309915713043513959465058040225819370602206355971147264282398722258048059643347633985521470335074191871635472655793455688782057783353020858666234869042599884263318105731763924869186217545170288036973102694559115630423243001770200755341207742439375154751414588028643735286732358420058904701535108579060078138364200451690533860658502648561505969009620710073923136823972445262686285834014648711601820153675047568062450614656413610219685100334353205698002449007964432102078425941257126991627804452531395657112288767479998980131512679607095720135239727356501988333285616296609420985797255676205692462109995748591281721441206430734784668899077892071743624090458403038750473479725761311641531380520609581098305617146871142180669481175504505113701802593003462872177562623648726943140929903401641579764474378470136060569801626804018805222263445533074530165075326228773740355384009329458313822906496880535072055724675908434842056325975511473800546687491186953732885436480572579960040996022551855363437637498692432462270609382088995756742542773387950181055454480054530743202632319692336047032915329815760227539419060867925602891931903557541149649920738544810854528696209169614926838814131982112139163957592753197081553120802338312148292225193150855201404809884697876899835523145268192849431392081874143389708811338647880495256997512122801912246956587841364530112093273836328959045257204379636830030655944355137028712252749964669917523758885589814930046762379077143067823923479861627200068983258948482210380639301684531374432959271215171181668805371118584388871817142201351083348245745394849858487744597751599405522547606659167149649339005313505954314843223186786963309245279241107951393360323744697948263773701603527026798049432363219165475943775952590946498085342352519698600768263403222499898321292520027862158894255613943207184810160643760027106900798418263152671861864203985751837880769996616338097507710979027369171167717777511709745694159410107357615734641145555032292719748787003073039634282568463244212470476939769240036445739389984063335895531555076278419471564803138762760044828514158294393495100394500770399878859666786803727130462651934530165155938448584118362753012394259296446222499511673380198559243643895436836698144304124821103119447905642608503116506012277212040996981173051471498259956672393733149603892327615806347249843269827990144180748224210679563690215190519482823831086143096943497583968581469305640576056598947597558822735727329088864940735590786230341441974909868645227905280027042382180044102351413953665818728252890058265616614720345718851690378925255426877235796335345619850803511487656600256055534677083586359338509715124888428143434551955817766770977575345738622746055590909304977953766004650933713180591095461616847312827041380147797831833653970773335113000531957979133921312995335111631683213364513282359454378107102173594438473889642006226971075484247875344762462902685547802136006928056434751815809755771777574501754541767578647231512862542191658102438812721986482654033527693418674043455894852149923726829942389220238324460282381419420519857719505887716126868940951567016115977777162759967216301581942655303810605852884164767046951707211835845076907515469328697010145210428360424230093024538748212207782600786143821329072575356075868936287590815229263311052980684271196452551381692534064784460065226211361296652264308087989681234639014366193043865482673866544334052788244062880820763335625170596522668326209939691651349664139847316222009234744802171917380989587914113491890373544761082931132558615370737563211310090975751112322567006751254891474479417100937204809620918032891550593310670546987027126601226528879212487479237947993065333859321842951851782499860985996624624652668312065214153990916371872156259046956895117168532878479201287156514013699053765253802455730287969788573658723033114828734548936808421871538712856511827748208698138082423250250979069002058163825946922806555485245868150130378231255347284889835067864513308337811781832369775931910888093700472231562509071581540777731165527998674375189499174965807450588923105135544039802194959021424913115546647754723117979540152366106838491709315200316372551073905150917405405476421590974082418442411143479450991161207534011738125780184350015216271635671826481043188061862512816759413802138179360197782771386755245417948376204558396049051338664839411735984920428038687840366179206925450293789149563660265165337287501692337369857599079786105028076038993595896744151907782176941770904918978361437673202074854070743561564723743220219019666184049763955708329028883548598954705477014369038709334738594673567478777093739952729572117552777521379501410350288325888132022689156949745752250173578495566996149324867412619585346924281330350468485350761088023623531145724335764424501919675504615978472616536542125899295914743258687561939969995845349357182119821032955440839992650479903994809834434343698247460768994052356271406542372358010967272188149094622435463092613364531964117299833298736591419261183200882614283699627857800736419226153826820800152603011405765558137794544949032965616658609014923753643264953113825727337023190371151877377019033424114717926574797847205319790785234116285626489856284849505409403202982263065811536628278774375052773457059437049512919191311577295223645639192247374059767283187949695826512029997588341593162384974383034757069268693341565049538477242880057268916790597842731040072806983801274074107687853262658610696899011339885937721492188561376203315198451150883443595680938384901258908921581024707190381661049507611817255562788382528853394982606901763414568585516979835395585032958200353787749121974666704565368402933022111355267794381232406373071102231813815839323032587720177621472619144169532309610180497276381633211366098587888983494738063620630607356279601090237253156653264267881401849660157638577789622246390630579532035557028694153166654461014130601212442208261428347911251686212067584659574208238204176334692317253866554730417899438532509198797568561310908396350962746602107287313147678524230778349274165405007167642984492849353831428528310930371313417618694606261929885482183522203560038022810379503001459744741429290993982072171788351815860265014028614235957033165492423169686235162497073278501294222945336094934037160059584432502172546587535649595938638502374813471932379618835776065797209100667293968770443884239217421125319743913816931810648863054369227639138873753638856746751917256147920535858150403503282173631699355928153002968693419148458162142494257613639639158839006517273837154295212809493525543054485514100714384034823377600203571957747576446834219039456352649125793349065539685049630205910260988397640038936310093601410574535143240558494985655612557170869709640412686538838790539096464452504654466603952181141817395524973933011053428061978172782334317735128376276729161135033405843724959132814418933554040835708766797452800263381410967453101884433507207100595219001582729704723670319723464753960558563917398037360537898845673810976016031810961659426645211528019423756898223581220983307906857607174240678970087367998872336080775207505326406052521865971555851165011726910323483492512839030155730961559736562558323038011875668533915688698606833421690037361765323552504984654002993366277243082072253690879345578649438665276436386624792196130122061421185104732212980244797690694016711775690313558238666345083589862596580733926928305866626606076744572822916842185491723235466540668218943728930551415373018721369242308158599743784134731268507252851837110083658691075328837439377255559421427308472654546023617413255814181446823217110387724335125800445302317715173750851839329979808232852680303985488955786424359626575227059871085984420838869583556915066471870987024470855486321582057838086204470719849416635413845526998151984948321596423810322530156079740350347554081609417853611745632949908759775877105054867377304120722608431860698838458080891143280765635973419504260939819468369060277240495256470973778705601500700527134288039022490493867273726933287572801839202079228358992187230343092567278791977998461533890851861601772497294796452259748590140725839531421249624866206299761721552652692994339372751792481274719117752077562110122131241244828718068667654360575241289973236193144362920593847057333781387798257238158746119962350508298855398798870816475840743847561213861527999747164938076755903346170844395268274244381835370313618965630440130136226020242984748869391638763738916407441000610799022770921965504294875191583082101834008321640751578751730345742564592475099980634451352444206690956427608275491825344761615719249975767598983603599433193520966352757841154108400055381002486893482105991315346582126239675217147981667267072428565059903238757681037708713769670466293899635406365636783656804310289612038935325964895238158042672957503849972356164456990629117919168386643038298477057111255954622908935940261996776882911456970315778477879875442561950124645497426519011202812359922739499052006868457913748184476908328691417551941276424067451459199413393556087060807621109237992432296470625539440746133508206900120246938188377200188344334969067266254297359076815394970546887744893930653036904848788995686906177098609939131679417064625301052722371772748230355288138647415192325158695646785798117460136113618847013525800593258011116043276269053914234896724456649414530622978495086906862599992647713109159223517085535706070160531556925307686662104460856814425859355041713896151088820214461278058696417645464784922010801217411537254206479731530446282732626294505272856507929871906113098069672764570856510512094487362758056424059126792629556521689368671352098983532491702588051559936704956028365091383010086688572050568813491098992096970133218151042356393919628146975400568248247075190888366874223048266747090660022546333516374543882589788597246935737864817370671429106408511058807843642784914509374105429154055338480592585758885488309148218928023483174810756906684786693518462013269112299179997232758717880198525337808532416012347316833181320228110336