Флаг Русский

Вычисление факториала онлайн

!

10 последних вычислений

Числа ↓
Факториалы ↓
60
8320987112741390144276341183223364380754172606361245952449277696409600000000000000
120
6689502913449127057588118054090372586752746333138029810295671352301633557244962989366874165271984981308157637893214090552534408589408121859898481114389650005964960521256960000000000000000000000000000
162
12296942187394494341101789284917501765723005994271693066207625211678145401177289658609880984670515317835995074429904709708273401807824365415928975695099566042246320538220924308010459938381430588227927174194100982189204709615293198326390773410925903872000000000000000000000000000000000000000
0
1
27
10888869450418352160768000000
68
2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
365
25104128675558732292929443748812027705165520269876079766872595193901106138220937419666018009000254169376172314360982328660708071123369979853445367910653872383599704355532740937678091491429440864316046925074510134847025546014098005907965541041195496105311886173373435145517193282760847755882291690213539123479186274701519396808504940722607033001246328398800550487427999876690416973437861078185344667966871511049653888130136836199010529180056125844549488648617682915826347564148990984138067809999604687488146734837340699359838791124995957584538873616661533093253551256845056046388738129702951381151861413688922986510005440943943014699244112555755279140760492764253740250410391056421979003289600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
25
15511210043330985984000000
13
6227020800
500000
102280158465190236533091744057193133792628620827224248408083129207090240468345858138107572519819834212485052911193616859880100125479627312759333447069303010642433194949031774292752231556668991672283004753870621126203282740895732492218711948667779769923410376502038977885763618066418788498530409894662348871763756300186746999078451897437716742579900899100839756614581877664897862438427238260356813231102491779119305662406293687646293011240816376699136574239481077709503337468878835872109053740951467210682828289287508834908366440330147109240768730852908067025550269567156269787141902421590936342803746820295856279125831385448594969612814768808720452696748681532710316427049334715279099199165250993552661900277890011918523359316209757868200407180404107518394242514994970964010973885491772238758662823793895022309309389275086717041128391933962368898449063000542140528681064453862286566418804080118056014145563293922916489646588890466895868517049763784921798573076572545719859903733045826318918777565353725981355674134008793465155602824885159732310505238876394883836662432146848856625318351826723459406947708617932588306669941385839232727650907548701004449646269663886997370366536555193362767219056312727139546918035231348981305359311653947843418529491421788105892007055580622229041093443961898079926501275830303456485892071754840820199529869841242712481929754794560176992283088662295064841588059860985149519545185978582162778290611198344681702025921850875319893513395612002355023979583447791796061804803217172154227189205589716837949970680421354956703358069408889989203400944636992000169486946593870787054394118764054603969582059750281047475368801804175599570112874660875558178857089257322768752989457583969202274002409024574029433510167900578723857167603633202778050544715211590236868502581368757793706186501942913233812031223382229019035887362149217952425446022353481521387575716122599547815683352241758349822571490661693696490011192063402986341571428942040700628566565905135635980718268507484172288974980018610860025813694317229496157436825924419273278383125509797349109367258093081111810563013006566976008594989176963318433139029068310276624040921916681787421849814830728874041225841279419041005673075118584233306624122801813556508239244852096811226588351631617909882326314658533891460317076894994928614122784457127801343322410507340240774661323377089950832081250256275948063530690279163492180127488775638243901207856727269557177818040775826019191422207601529145602447455447792809870881258253481460957879696859635186710837624023365585751614547160922908380899842412587787941266937974703030598028240216252544318370950707336727485859054922878738844843851006439014203033209816141676244797147051171009571914204956452573843302556519951066513766307286975881322394700887087380398040392183454340019406517046273244122161613959220186384845190208787644660994804937130250369000367339126162797347906173324947539248603561163542906685981241464777013502905159189329304372720614825782760952831580954325480972458733171987429219739201760322350646001436931788172813076358649115286294846113824624232694373538080165173836084754550704360452585120174344442249366561550633490630882419944090190814941665632930851233373414243021439400830471626989018058636154211518978302467297515950545942084248829160956906098203595992506222989156802633753855430792989362486639201251535896930918646168541125484902231770202500385365745322346832813883211293005167358994289867270007135141746906063385756414411379849891884768165065812564057800287237823738020385036989383085116752887085120293430550968083602413065284144697856908691946009949975150205549525574526757702529472788460371970637958447372267511938983865143670095459252391913706156852911588537252345124819514210008884495228969315295090494438924923023220187340807294258897630856391960523260717977975490542908970786108024148453389844546417029984521067034628267215168181656783820479507601362917031660501347904767306760002408877908669318437211202088430700562092279745080386838837543503699572659438539882574393798933112081611360796687792366068553924230533562102778363391745355893468100724317295626658996687513652883526605369965412843241025860547780101932094430111776676188982165612678391052190629569447179847314480527595883194026092262704407915655332963977322800638686705950315625397428015316493233837949254132921234146448141069724478765025803453509301861900043183022438226642634159670262625674413638482101054528128443649155567622985204928835950595187165387531188390127175364729353418945973957118321052888449981688356678110648603440017616459307331932698710346257829463155487548240225614816586155888561225698807045247230258406487994497939991596433283472710357380429006185149761606901635152540016669027764023186277571702779961539690417550749054228212957141252135546122777662527043014752673145856930710849808328018675848839346343756451342803929348120845549956800420193156054219517246400350874124771998780927245654076134285621133495540889907640273038856402066243055277008653741260446194637986622744482651055418195521169543786943375980833746813293622072702666091555064127996962829580691482338213766754994849693332866407403259062024029154934833970286907092632132675704944088197945528824385146395558256508765585148185805020804805478433907027762174529631723090883148888448506408058491986227808061213932225395199579866944552793552744358268636390452059490830707219572156078832434418985051657841055604965727920221667814835547054716922253892715336022816057519149482370409931318650983524070150796989920292409886970610990230832541402549328506258357172129398054319927278938734204726027241386329929511403961787321609970444170638251757405337188589491289026893201127201118892337046265095196254690319828365832351470853841197133102881053263839905231291570693890104759863530682267397769585626784673972795478321512628117922026734793768049079163894908159794930349769428232812059118009639853444677744289286053640426128455756291669927979860125884525904480110312694008456357759968003878654760976175835483262534074603190221181870856004721638412083617619848099200866879205665422622103386010675191552578934663125321950887929058429057157565258936314337389899400549741729770985684429506349392162314183711459232622574926744531119291833741847083540421765741847838702385286190589664873929875350804865769832344452405262367156184952676711609105647296735128976535446352864028797121825450878403578168517394662371658940360289273525420172605489921519073156112889370920736238574053335441149052807175031862874912835850368277264871784707341009925954969672707235276365678697335828741461352655543729612560331174975457501448860991034430538673960189259556747670675883197952667907647445230279656288992017046017928342631056277224937623984438052159196216437853820882838676886660302266295016872025921085377867327822683713896038869634115588194123444235034308639342722899921105839000582749268096507203939845590015190664269602420184196160281392707982904465509943997173625559204307066528772020695522204353872315762572658151055201132288287569272585258154179739178093250072374488328756950101415250600121702028785983819642805558329375017357584778535266041781099190783615131615223280383810657243129125440776566136811522808541848514243741455210890205706860747992035226594876982339194338755778297982769723035058600500818858267542156983875323205561924060637918591595053540729187515714263695963860358720237298431733723377372673091637983738923938819780175570976663806325253097321206150914280626740120198380399004895153727376726862710484455463810573911656657359546024582013961116064914904197122113777055350999667151755724637550760293559486454118799898860552669325333457887314070015313268300905934119186126191053688387338561724197704835707005292568629291402902110639408302814889164965079432369491461501289676619123475021242614122611465767555494509703852224000863607250260117460512853563849389149714877840497669139577745128963094232536841108969223173001617184974395062640182033908337085472136227833993523505364591506277675860308505731172067623878563560949906688047914845709622623505184448602964852376104084340840153719799815244000528232753103076956878584480667245893080784847826815222424802724312213820361546028047379084567240986415289145600321764180105264466470430462163385889837189507574962035763776878871683594559114463512373334435100705256966382434850522667671999033986404135090112832706721721063018174475900402842903392618081470491045523042134097268644220367008890624985554391027100347468102280788339295633666906676438658443410225463174865396833182461316261962178051151948246174262865958015038982957128956751453806791027812575291005958261434475270858464240559610540128388424962324745475928940133068835197014818526805500202472226704907631786884256173170710572510313913717131003257852803581807204652576523604740275344495981066845916807374816454832289310938710994995763065137274752894690303584488123237885165230765415769032311949195698148356839386945803502026004242437204307779644862970983437131078427498016722792922586469037273944689126487352867133015966154211251591945250127142588779353229381634850981800813770063896253030387513357164192319311719493230015283159342788222059551074660209079889228984967102067698114694336241348227401255119195667627343696816304570084989864679246502798442695096621230880919587246955523047373750079274951347388489718998441873920275452091223170257084235243804905735710421116716779591178043934889758888849761225577230573661001752590743418610535470365763604967507117155480806073582469080561332573619501320984938975563036118667132567854482337669861080442899170108770685034287003630527471453801395448965683559561038457846689418999694828396142724143663907219606625201802498163909181882098524465831544533355469720007681821909141294438661536919577940722374668733602094452404297914764006144077401001141254230324962645922226080934969088752114839358392119162152529029241250171688005429471029072160091799958222156667213799918565054313771617981529196240553971077811630835539452306372815567689832984942453502552226879156407925203002639096285866769117086278588936867987156402880891081459918695438183226246710745809124302967064141468419451863086621644038241420368879530683690412969955117866626121487652036231528141973286244355796862743257362609986334475941464476932297569985881794331054713160792407010985301836181007324383397366598767063339986988987694976388230607611682859342082610761269535158018011991306739335708056226244474766037033446262271605946676367528502927786547312260256710182649778612912247654836467133620384360780958733409682799007633047740550697465168082868974132712546628193240582791222361778465171426501452554238952157426498226351589307709812007214334899164315432060732042058136737752353869425918617236973074794016937631729908138493918178659053687702366086628959913118887386628345378718064999018119817890663501946349283243212231035834105747476871942443466842923155434090056615659542669246744596706784067577766222127690564818313654519400887441638314197911482900436812601817244973484030551378883243710737312100147786771894439407516146554494433684674739478859833897686743307660491947589227198343226343702146612885600074744920862530076372431417798728171772632352844332599794181332776570814747709537659532365208228726817393411779622815086021323932189098743190394697744406760816244103549706224987704022912775184616069291947605939099647151283259760704610453652037037726095751378683767674811212670735858055126066437181938251586964400852012426571009301099175256667826235922497747812712453315397206056595162026483861987304416677412769831008540288152208982480229558354668854564581321038876022078373623419965311936950919545999398145511880341149673657873028268675565341357179664419600485935099922279195049375119988327964957874435373277609572174646906439146941017000689912332673241996321638595678156821453694865874206365604389194935469852895488690199250177437494125604550941654600559988881111567882080783632828911575329405269378728191052686652201220812355262002666392902190324307477884347497973197815350660550622929688675876448487676048856806536644640571537449982486986576234536984711393452050722413061699526964401037961227674553451959718901245521101478282378151871483271461501384882433578197591052214158064534024866206411665043996879271720026820281652230327660298706122645786034479326846297157217241147649951373606690463458022423935782042515022662736581590027962573079711485967932448805668007441742241106174957893237380047973198162771647453446171112006393511003271954237595914266676186927218147796852249654478409911522563601734163534808446318030090678649053292826900904721646783494886050087655859485624374702999089864000881782979350106742002757863031405018918125949970137398225046844826723764783584121198903569328282864705427001929630154520015844247775863393578995461572412968594389647181261195360573304272699174475248443752339761283887053659780754641198600555238819036868482581479245687427214121892297030005343124317557099218635208466183898542409662412417177938669762487930637557299480641986841874507844986112226460099776778240969199728611480977457053169610492183236891658703019649953781240106217810455090650301934001823854862861866155292128202675386468211023405792442922942117624081041206683502945960205511246378821184396365391970526830035056705509435001273287432969913263214001637096756491582277849433763768240250662236509896778225377257903054033718744910900635553415314357657521697702793592625227886320828940722599127881770129548579870060958989848291879017591650269555258358233881685382206949004256836485309190903588862359649472792185037285331634617944524152711689913310892585225363704939760995002075112168922032801739180491241234487680429054658870815992799526902651700778445549204908066302314598948248945872416327005130886027119727690888080174269575660240175918893109126535737804344191974438320538035539180225820336815494238218786664866775865603282342011649586266832350001025069557656189999115917081910219353776004289825266661172702193329768018322826825593467380884228707350558872390125498790065508978356095139025270138358874988621348953632723623454357778599145699252934773990672766684689641282139079861906501948078405311313242327379632419127405444663541656699532285386051790589947655844708313000619106812783847178036218579100620352789157662571288569002006863953249531950461306875438675298445033929617163049944019487954241242028438839681732406269484254901080105395861744015774773031622032166058918358464531860410266960256321443109778954228679493660550795111508758867690461163481789246683664910572490191823758603706423056788166989568824017530281430145764367668622262152186531489528111909106206184747943939291502761656296369712889363300722686280066743000655049658770927247706545243593589580500843865145797231507674982340633956445122712401295295241104959453964078600074107404193949582133374246589554541090616408724222294021566229631919972786342336411156816250389852198175117463960247171920204530502873601008072560982278789181481298928118748866895589839395512166578580185641778253000030538704683397791732261016780636004902862182207371780359745406991895366476940216833094530347058057116030567703759890756738516083673675797577514006320168180420805229505312347103502777158469300064747148983378183867615330081739464795919988063663524095079172582410927186387540940547482170804550772260964685875703901395825047727809324624267385675977399584910566966254031662644060438251616140169184191341398477490708854160400291031339288761438640193731361952109917955293758786244376419886406208459422321346018294387258933219385970499944801709191455846839116147156142433430147453352805689480868255222445925636676955510849830681065706958555075182514865653014069781188144819648052427351373046526459507841284960635684671043159247928632604566517038005484202145366146437300418240815247015258635821995225740057378566094534106893580962061635891581300452392854103710536067960014383703312325809994825223005005796609798191991322365237492123858120120454203258796108904560367520907513100282333127775161343077605829471744526183175513642095550702067778021081084528209281787611866740837433905497161436968698108930258043889896592360948911084436476023324833585628013268974012136866367862140601334092444494421524546897011077850673798525184841841020639305807205585441796225328667601496260893788977113035329119703990758651646078819544063477245559728652784971330439855141408178659164346713604994830856400973260430891718423371381073970533086654059983143510262755358323962322438500846353780455995431574958632210695032528541449101135856155981418763553976111307199606630132686298676983660800687848713004722725762050531905163149329211680633781682489053707805257701333114526552338989742262646645795365119316468922235843371397376844104601930129157568980678035262529571444305619330611128032693498117324190135235139954300927758669335393096491124093844110749443697502758189557892629508020010302037282617534392147059641277140628995423974568788866599250912080403673345886555134678706107648552429225987487336041006914612913025531129984837133170271424627541191117084456838086777830865078179946958750039963719745208855676617084955534301054888612940868334087267962678095269205872953602380342052716634383299181829126004591398531544462915035567170672743192675339303758769636649807915703878221232342210530419611108883385706967401660213867743392849716020874039805606803822719984551994411544774266563878626914145704020073949233793950656537024772109534307598477857216522775152898773338725691023323952008507982966403640031902078306852859217828597807039263406379683756045894706389889329444377178013637246945235485970546767570462054260824001759825131693009117975929259146149350294033766052442648208663509614448104690255298326363188018599069101628170108943656654025489420459924796272309784935371228461746570067508661184186679788249542519120346590005754562881839080923955443769094621447883948573625678000061035374323966892816449012876026836582379814418508446719443778660289314288535848732912888701403578967764680392080712643894251700632589462490679172725817695707244761632779039309754212210795134498169516755178940220805393502462135808025026769832824500987830662872051537463632445117931452000763256157134180347119723891581149538570429930258567957990398819202017390349677631886976856463890771433225973053766851062451796691020706694400879384500332562790045176651667306088639310605092414469142445198143780447947703093481548956125652873435113048813773107280053114000645256167469401086221425227417898813926157096393463326907418708322433474739479659735108285475350984068255303596219198965579004896888841974840219808546729217696846103766378042723811176442624967505328238354209116756142801413810039410887188400287976663016905834561756946588957742978101969574099789226656216580609632069093472767839923057719196447947110959872761705050418297299898580848083236579133853161941223009864474908629488783680215714259123150582459290486109660412631239396865222066356674858653583440130371119436330921271877274264169864403099214416318913467772224039134754173382186733851815003212034837432793550063456775934071315169410314526835413725398437644674426918579878575578456877597569070040293801078678479958506133009293156536745987995196019135002030800299034989812370105500172370567019740438906363105469408598450085700006165065463101216056141698783872748596813986743399751258867722960353851615052992701378024559084477628042680906527395607814240140844124990812627903825096524983155208771614851098780919604970204329846489464581955919603922418588462283039909659891604025058784191177797981584208779234919597596201528629523551932892108011325303405360851544139059615150644952079097278985878663252356551783685962328804114532729028809812127004797796398287691026299207830684593258743950057982974773083113190079233104712035927880358128163855645562105639817875459934756132587945931313422906880840246887024800711621049409172239455575263315233112137278846610744610539614073636295320820133786179590579757940513127095607173671341436775219808659371488527759361296918358856743846620498635332157112534377309877049169046147996383692540634226272939127369110333321557174308657992207710997007079687734278580241538322912824478788331921152128030414504204021541957264933875099112882685787803394855561725096608907177866796892138213976523262286659108703070366101444392740303281734086633585456894803537622554103543381946977541683859490198541465031898551808154676581377293888511094819989115099972718098135449539587493251901049074953289565587500301785369249663752858265629504411570901979605306515729506144677776581989443752197713819378921339070731502644568518700485689732159688654748413199538758856436714695639434484091906454233300501035803276153563781729648630154728275674705067386692043671987169169929528213366648683557555889537734298023922217824027471507069095729794727418223388087502545920086482845617713641299137069155840272386735457723852653846916525675910290010958397735321358915208103052038743651668813061558191804076601417000686863343150998983621345901133514402607666990878576477745444627323716551963990696511842909134079014078001848259077595344102509157314996508336189569773399762368308430082229575945016787937953838636151055206472603191171901282654280452963263274812835345216446812658030364361079703200830503348051011934586351034362483853293393216889434205091567685695616054284336367231721412127757974328210345089260959244653653296424422999970876702916565111867939077847945191746581747499373989888388774747238393201651522323626312706226002275804696640692145866750215603988078984061134044028523453588644811321403226935617508626164573234126948430010943501277578011725178584316949273430159237011149332409774841914142795361642843960271040396864874243030433579936277302199342278000306120607347764440638139420850348342978272708496206351805106075791866077941064481815392672223886894422247589797776669617805941848892573353848375432253406147901004586415826671680815349245826888156646975524877473820437318038513654854673793093778917601633308546160582696777570522904907409967155563275689968565991222590138530783081568482396003717939360431691795096974005722848105073070663649268243729168603937195955879112527978288975361250149238780134601386596889249469830296070566292497083756318460656458551392535763439761140317999397984398182112167755569570916697460662801187331855779441582200512259945638660489023635577199755938999201114970946160815761298438817016803979730892856903752566067158920530965087715947788563858456326584779400843292695507973866208377185255477693871906409072912422215458138957863311012027216316402031601185320079082275021553143149853801977063509826499921249131004210794098351809477834553760289472376302109978229681902886374653554292421306014010148891882509295808213379666591692994998453162682448096717751604133512011260713732667170446721090193550857047995518664047218993342772675108309342136948475977996491442129618774116680370501839484012680407480521389673510446182791749944363543806648796767129896681072964361592852495228426474761851970171033378641034938013434135269360483674940302651985968526096632968352208361745618531342154678593318806985752510380594595910168388745748850550209651852604426284159680090309490903643922407903793355840413252297975504487055321355797173845285648438812627226288025553076108669263477351578835640318194143529446312501861907563507483580501077251470679078474948434249874850234416549541338580478673769422724355941006510355134861783462466068748749516474643537047009278170159253824897882799527488893492985726636221868375014938046646649181572996098803233043696550466232158304720284978131250070655045059262255193149341532856914260423695184825910344216259490511056815297043460289036234659688033079404874476595728407971125422283377477371037628623293156634338808024454079688677464151788980405454327827732250898250645458828733033810062325465551091678969304269923963811467062707161076198998951720705019986118548808309784855502848840443172574912376848398043062178145065780364145167555070713035094292142108699194144353792147512860845186438001716027062256347970718145521335466923358000857969772737794986506458062971500375863859641205025018754596693426913995185897016871560109222104492699039220116741364609463529515898644721663918047654237184037296267330532870900012195027422798334547252538357339509493848961749101565254048302646347901222570451143663674870005133601862238750668655841848422759349242983008036156040118416682796073689564723925216851035971059009028846379533382724225140939212701840989013766719235634834705282809215360235665744249836098516505661834615459416632088230132698632893637601955640331627228631380288733430222987785491655480968842067365378665946534610375634685617721744595986828943695403821195265569849446569359367136781861926424802875290624971351777048215767071347258053511518629000697402380193442151044418113261174728588687975179102833976105460224457490307298213835676204954530048640878813127724372113577817612134264118401247594383093695747983198725248921532339775770141587574962138868214793102624780321825513531522046978888305005326112828990827776110755701343371202058928112101500182212896233816238276433658909149945875368329401447081253072867778763847584262241117451894916135676638979014087143343081877944022304461338074137940188782351199110328462974088678853423100923307255368166632297011093784394961424431366659197655388484710040026779476712429263430757543773899255344445225516791557426914340810810895910046835643764882282969252237856611636700095661721274146546197623904162560237762923081160244117574133965010279380270030696188091399749455900296448045384468704176278724755746032621497803490633623332166168906943239281650502971046256317332454368860672726226325019943439868167244832984098014790217575522656413481068379291343754959860016042463035864662446628935142152435522570660862440804647626799186848876125792246842523300440445096006266564892418208541959414162785386492576481303997605938590347693903182452393900827461519501809676521220489907676043339542283102809136500870225514723932795933342710558144522360239878227210837699116678728395539129266525845856967255588531739295116331692474228470247114275063887355549894900485738313551286537050565942819958773479318579475454434989290649406079335400863410156553644376733525821533177486480105525280838022452499624434969965230722693257510286364253115569241636458530922602551514213007512368922235501255727197028425858932789635377631636413656756186819947920371771898994790624340303315608779159872778067569280581761761100001752080440321357362969617677844295225726273610747584320665524179915500146651040043652500646277560724930163503119082321273800333366828061047597728825253570506266365828898221209303080116045185252025047428305885955332474899626321532213578012639288862412511387798464923397127400137921495082059298166387021285588811011218470054974630788737395640157680429908439608167011025257793039629269386216028565253156639365746484135299171148428683886719782852051992628661459148406131082332254175824387644953397974701634168330669636638891349291320932007828185126632027306681706640622048539719559989261832955866118578392056276957099157641677787451199068989630594403393424673160618164610173091932877174330930122908222171764941950569734675750156537200750655681274779759527614452924616585487675915937053799321445316516954139044395202441947968125961449960625644433921787159207184297848004990591275632089347575094202337269372769476674536014321559602823260715753270311539802291158539239179623933411697647691222062304777779729855231863340039252571122701207863349941138133023628084446926931914477727210325631591813809193022216894839741290806225375021975032273055941071542442475425653337166710838401471733687093258995602557438048811981047013816897255213947908924220950465035055810485891944692210662610064879057927410610535637319526382298176254680496019013791502861702414178552443841605195317383787809335852175346850697043849993369884361884056485805823812295802709566814428198206778513735899213139920652967688010006134051228898540704220380960507557435306255196815569486007730216087895506852511547616163809560336023734471587166467424218704857105891684310040440555559687492598836483011140502047546566095283326989325382714764295699552441747233217797099466561693062226225585489432324664239298979989986658311286268939266661483251866947572874769632723199983700544107328096615427560609216127330180432077371908321901272704893295382250662433441028038407976281953280428194101776862560715208769412006886982333329763098595834606481795846251220239514099170230520774276976482803147604848471911346689385486942953527680546527886159969218455875725922223648122447578655221346285119271935453191775272327031726078408064499298256944804594957900755514359282136980220885199466272963812261528797056280310835746284897181744058750640248053269984223068575019158969940329146727241513553149324910918140952607356908224583736507476031947382708801186479169704017540115904424914043535567351180355958348230513360439946608139465591209639329937249854586560428812618665566347248444658163698566148888880582858747473359125209691486509359785244663718981507746008562478404071746266115577894915154647893319684294852552475776903038048630643680556366614910170268463282171849419815023611371181202946441971781441164368039065298731499865263827392703936587717065334135961818216675513273710071971796339022853965248051317059157019255112700582794284705087887733051919261970975893097062248219576538382993624541892735376449530453151194838293572881439064431991543629553376495388685443480299074679291850146716120402240921912852083465664035624291794501571015793047715401016608746518207279618043812216894855391426793150376832839592943736635827681306280661714352436056968849047321411531537898766442783977529245274243256180827228543427601381694556240187254637746941947394026451863408796027367487725806022174292851975659339831241621881699653438711267091985876715600679085137286025660861830763069842293122623821807477137331340101504904379905884345702748263461188977163799959016039108666706487473194890631288256448640361779886400368253898613960577672753761888105390217784332879761854175908489780020217595935320938645579282240604243094007961374463927482058594449286317449737665419467730636713396242426556663155159434500914346032225335507783482192676302686741979893722330744485985941749181888557924715593787232778605517790565650117167159604937053589960153685723292451770509361640182748374953854869131462226095497388881487110204981275057624446414975602147031494930874610839017539423588022665532727359971716818634104823602294109690288287111288946494502208831515252223402264121610849695805498752893116514419949113984418860004369444089225806951565200572087505897261907793323950361104480429127270720480326474393970776666183865242871711881199925854579113180257503810728694622995262996564592270144889970535969934826180974771766646879203373967185745676422197436895891618098143505119158103093831738736744296681146148950543864426043914510034075877541523381551769334742734775633410989837639282462609852705635409120173411531181091559828067840155984761175417999395412358037432882887008787010606475318255058437128178084257566682721694202594851862235154958545780557942193926564144279876016053867534832659523993078696178786342582507560922313588749446652750341080266540811532847023109695225310510153041938920736945943487859809121246572274628182677001423670119791394852021093023969830179790160303477338335157996831287803862920431720885352773230219977110563343819208435154860385441986138894642458839809528998435152922983305684707193330117039562942239168491342349103113488506716278041138623403018716105062696725869470888592305863042896897599386478182471574233281652515275535715857154203780244195502631340837532836303372378234153902244747258056022886573457412908895543962651093652039902938026104151254314413114946532049647409146176364839695802827762449781274525626904056688835127767921698894755011000946376552710869428954476024588554119471040600251044018725859044926332945676505410873451147641179566646229556815729810116503261199654903316059164017647669735124487156784238159628005376089610061061532815014336325537032175588086661170935002094943547311618940305832576533070843694164295773545515179894083980790699371069416755038235529000741039817700647932967803081892480461128378795504443661509626408181621073821437099502568939309048701266548459068096750009786887976488128639225335471418066413885733340389361993015320881457858188171462893329375515378922946701442617500428432897150329101534176409417582361151383825920143504542871173911416309243417052775974894448317357339480754169372945654856782089113544985415159059564037060623546643462317465990091423292106477792066299990542579080119369996569770614692073102914187260397782209768816930434704263398167899825745093588191552711747278054935197843017893975712720244971499744774090449414814723559366236862242507560194258773983142590062106306520340996175273409861285315595064290465329014854198575772480443344686045822389031381888761652782424591881755367371352104637100810135494336932702396525516108966747816025632339468082040389917120356008675027291406774041710695117891301524184696304535362175115218347129608711191725284366866279778177410785685082320199155512396324535781001283965983442388971422882377728772020621247005011421198211001909133771965902817053105295740375529639958520995000095070000800805336951960241170043145420273423966334071053551453238123385386621263227282735225644259981019704751453613377065786857933898766698951118591973367829360731895335386581423961548957656398560503232856749974006672122815607594120881446995966352328642349553663321783199804450450146471418667433763866922149782766003662400452298413980237807587723195565290917805427225040454864035786376143106229154377121767190002017607050528889967805882503430609967088443880436207202054361612952952408222484278543811899584663892451410899130009190043372589218302260269636461249125460935117279373442844561226456236104573187696121667806878826717105975098760072250135113674835186873492432601857554661583455060573023868013922080763525319574946080958106832621702259475586299957318183727166950546609245898973342365158540108406904600429366886035081653166058460685728279372920833506562248844331463233799291297268285984694727490943091581947511100520124777712230424498616590408402727581021707093776235700709000599830264115925462943536029635193205166414537134685814915694643922830407192026637958729050353846370193218130948516336587926404455963641950290820952917302486017007973691614180369347634627578097660503163530976359084290186372763510658401179150788461759050834871149919255976206366911248990160903595012497149104522266505928527835765636471573772761111338429405761218187913389982521807917208989368565812043018574827729801103901648055378210869222139098415574894393128716174515498290846555915213482929768677455500373697029656356523382711431229722668150457690795361111321183504715255487940305062904195995473556647183385163073333679908851278094380585136330048789873004531866334305335911027867604331258743558083208626563489369825435023667415489705941082198478503668240924173166625162397807346672784967831156513997093373775649661723222561402159707692119193866172807016401336578379802589598131199727339624580586861710277529175147659055390307463609261470236909277336288704449755021940070100733759749558659884556671740070947266574301063838621937634847126341904600671237601159399531422801817687721548684061711327397985587208358249887541516333652267058087792050830311002385017653879478886065442472399273165741722734126009180434452150796035281550176878625819398634816946705668342660284820003232697212475604483723728330664884099333952670362321435651444485399318104573237672391390626680535017223668455009892327924040410371891890536974498416323855268644765334754831630351756027827088938327938421429896702717573234845324479552621778359450187069096681839623984342027869063243282900265897634628443162379581780607744218893950905559937792345608748818352352830213439281896699471617059077366029784489686323271113589632708409855963831936694069658065477903456779014489776359906043218131888971383163245881045568249868546707158242324318011261781100863894899158177903928276089096959304150142293036576113018012106491508053904126036670019670345387482924447759724486593021068622876578970412192729649425892490893119791249919557611611558247630957496381168684031438189080886955438194514511570280379282044592444090671980995290926365425644992565480160540906874985044565728322770339105174225211336372577829420427322953489531132025954253269030184536414150282472794288733318846187745687454162509487777480430085285280473597384662740428680702492060753029803452418556494725894330990164439268919577107137274723693982715379945493770116448543661270859578934162969124102516477721124612786247663296206156365465109754910733802687502075878378246251313877155748262752566393556194341630083010935150929730963900022427563098254533236080100383769370677824067612451923192244370930937536062891954003795167011745847172911015666339111167459834194812241741406344736981022800346089109787275529980826011837194254370999575216480853124951595426840762403973326944908683292379873557101302625971263224233574640369153428859167308471155102925415494641329065248817499026301544394612211745905289310367216919943018207621466078959484042750955472694372402539170070041521479975440641482900515240059661998071144196866990874661140113862961827848938039119458473667070467643034008756794800603941252152461802664445853002371541420043542775449830821208238083237434112275716316499351486621205684579383688314309294573976908929435188301195233024094125139165897647777518127273665160443222171046656735576827562638235506110103067454643576651527690034569539732513980250068490509015238787958628123627264949165025331617230966299341091755308953463220629458517582076067730985550361665895475190139919257416916271050597695394644144233083701728471322905491219807662535977839099804394779657558853631370696268850077690693697688240648000858605671075114661633654860108898790153351959374900431970816083432534150677410929062333827668215156305504918406510775409799639367535927987499375787468544638276219210948286026380170401637503635351406937630123313334562892400574703818615236477681165912843283811169885890585395812239795197307443791823387590595723255363178812764094077931589312079167436047295597566108181477537003461318893497454072951718436477441698700431258047213589696943710466642273102114744070322601084473450244459967749382970052165473245295567075403524491426017853812651343168489432047877154559309692166191004070184192084194819878693330988734856265572722967936561567665655097266196475849840538371311789939501737735177116030766257245300033259063440314725493878818597944578505208556267400441045866553807731980683605901612276283336097425794124130714640745292494835735677322901752637611483624055639723570348608961138572865070120799281401052354086819617352416940802682977397882782144302744051739878794115571223240939722982300864650326251466744722755611728093304079270503220388162117566546622562833740643189790476132180770200835449108144860119569225124410527563782076588306967146982703843202492982478241785023319485660955191565463536734124142438220169779278035497333799482222907950339449438911728669762303994537849316394846299443760137831617504833443150707796595742285226103524103849423049354090568265262060127469035748484282179930779363933703110033788078579767444915125768248367977225740737316137351623646082935368294562453940884692546401463834039141881192220135155921411909009660430003209866319165878666150344419328016067585066127161777866082946850807637367853739520138472305032558596367709533560611367964806933078520443767461858117367793275684482632858270295123751094089658698748634996046570151569470694348666078631780970990956187160318192441065755089004399405640210652123041532757224929194193104876818111425137734123113291743766052512810583455468959797534822395983196481880815812958839604128054254204423149802124277895923617276923871981019205395417784251485834847841790981401783387179217017944121631652830548425903913965401237245586402169173290246183668039671364065243227128486471165567365060489558622180451652585074595575767216888862693838693386289991534030112070292466498232086622023382965880212787108214885618617410413067900577050668422534055612138744217007007921981334671950448788282201078618292284829299035162057961807443492618477393975578756700496608341356748512580278589556651161700827907449218269521948045747949813857888328640013720271061934198077401983720348673541936233855938818916096911400560930481259122598942880471887745568826603946225326435864408211752747039069194928829191415990882171364530644134571091054698423042779578003695395067170491965825311319089946121162391805716359847392514192988140068840565642740557508070202924504981050999244587359628595225857540294232775601595431563165162059499523164957629063779693446468038398444766052105746598602046587507213482089104224292123483545783339242052538376840317303598512348073526955878513439521101445729223737747347586846281975885741673163678020675829928462184684572179021847056338656201760882454978083833801875458348519963510474115961760933685291132641656449388282244351796580387301379092266121212334838821588945714809640546570192045968072964524184259882674173153967366354845162992152461347433499405905486726939550777438550369618505724324048662591628921205267847045420430857341138727896760552001619163257292774090372458748941473132238518839209672936916751144603977162454853281643407273216626594176043970060954364932045293546724864757311865001871981627894097508725207796978376711824028528827423307062066593362754867906450500913907757022701671250834690291774240004274088611906177058002788143990773265248874767710608416514687216953471833113657654816462644769078837565764243788894310329819001701190276177925437916866750623410377470370108776833073168008947097582350673091811729792395953577776342551686248512005479555547986762084419373622639051626093412764723078188599338962567252280161111976155466665361856796728729434624028518982710389016739623887854666037853909690970720786876242771499437521711245551375914759032445709545328514429166064296692872690254279378639571626204000094194439774228541745328509669700629986148773711308859663405556348688657093251357564818572571924014493421247397276170206645139636140560859231019402522725108914678523324533686704927884868417697186651928651163511176266664904208113948161710889775600157438303771700838817293717028854375364721131948831876680370051818062838473300473172832319538483592327553933739785025890979277083828287750508820972303557714050962354360184908645255229959113829470167806573567222369014987728519402752398738328999556829960748000990352045909439866563592132037762824151546821276451999051612919391753684268300530052485438435741815809488030263400117844261666345490573098130523634296401221068960229291911400473142089010059362204354652328021401181762378677797451785107880003195083254967729284160286660563089163600730288922929690012381414374439183105968161324476797996427611274044281654362452192538521495714870702746064117306584854144348556354247396595732565300985909217674067139503069267881057523463070063617748136300232906318131390249142981732527881944516637743123249290199696096068167086562263810941674567326330385269148169480143776488643558455589832601835350435845984958412899606998180230190823861779600263438536498912986444051806681023600103369052083254387936230578913303164970137071251095305895968950906814845712453742310672090246938326525618820344625021330791487609609389637515906767222684772050638932073364514337697665015549979819969627736479564546006454717105192546890911187050299022966921730202792827625707364444717993000855614625145223370755122503901869471123175720271771107139472309125891858400841284876333431963404648467986573813904767363026836603512903068730684384002156000916044306142159514180310381097211438729096349315611326078252306092777887964217254782642645868233984600513636064745028071123020955366248242598007029432059932618482048463283591174927650138256993826030772756821710633060311560943939733643764434213001132638548466144613443262629333628031830796459507838404816440122702248434724520600486325453150177581539780285522090828641398198038011910304806273091497370362754181848124911062993140525286616705708231919127602192217675607332039047737388130862373893123584074594444348600331465204763607819336949532319772679548681375750593032210506809748863264861643033845156866022605541986879736075837974959484257995965858219572211720111943090416989261365543285945550546249115871962063012412985604069186987635718532262014230458185308651004085689429811587435485525103325011086263862449769272485135843195448692756333951463703171132536412275369085353510868764239257742726723392983368439780245773440269367122166659335470526832314344654814651223770356444606830004722330661807489045476251033657704670343373906294438359126715242347400610777189580913760005689649630913572785745420172148510870214570317309752432450439678617079587526944343324171170400565577810706228604700965191750601851530840945594691652526504096738697430949451815058273683686429870597873272724172165301240680231339907442247866894131532655356887287709946112476701192227075153868591004918264714437234413019519138135263266842838282174991752416942070140475428837504880941512945652353368705104477867563764268401809693062772347633069339285944425203994067375544107908396172152360252946257205187882636330066345944510936491129278292442697199319368100228648843419108104339085533363208531218054929712791649813799508434311162376161932292482509111162268163739662779476251337658856411870522464090604667888373223216106506445679267334182582711021974616769859662978301799708423810860789320982666262076694786027102524512756167227047297555306619790487832874204840363041733442428243939814248123450854002656353097232035813027755742377180795419405992917380046950464533958573896571100493069279480644032827123050217718830048458489904176031749259908166153535956361768865407027897862285029911007849001134722250452197032384767072489111084932970471914531433451770841780851170293741422717067078761856712360059861252904103585374980367187967131114200519278052162650731868234839543009660121820383388633822336681795982118632050188147999706672841974141887883238697564887555348962001095061388874935609664999345751287752912521349644014985256089752367543475428166667096984235115853606729512631922245471143037763741063134928751583971237411343906446364088900536035151107173667736828064544452344961348859125872188840803040336547804647177973692829423859827807782242178073823523636823950524087866317493391641865348361417295919780374888225466866148989296181797492089153136123194025161666588874687179087864091906341530570986330961972933507016741396807067117202108345167315140562509564921034521363889755754169622505064614356338583486875926854822060831818897306422619363118406395520782207880997809111484541969130704758991101081101053500187039103724041171911307768514858210203148744669236112949537778921029492136739373348213622054715908482887493202685030637180524103827233493605945386678499324155667167511007670341879153183298888644310389680754815775433735292089496295952953585341257213894744375906234241442246517000161546013053836582587847137086267008475111095159812907369930180292575430469183837841762569559177604886331712928217212696412198139353009317125938540015203986733475291855752073770422777312701064635634532472461117311009848147289900483157093383249874539787750537360337231227382970418147466318676903423654002671760138603954213529634025763764564642840595400240080193268197085469481947116615059959088614866243112353259800566385514328908848214019969777255198760090373111337007539299730233679984526709313544461168289255942027998344490940422216864846974098709062641931284417117212114576152833131822009691362864711490559131074367449688286978075975485511759319616997400847099875029770425017710676742293009358425566917183959104539750358677161992878503585345919356846119011930518502705499619141218790970913369182841617463226077999917024329947012320668732143691506918580417699830051491362169027068748705138362546914801605251309618876332093602515416163617082669002378941102301187320225018214262461687516920344571195989655185033484244656834916805574178802800609715324216946558199872770583543155912036236630268865842332389967671130276464904271096651906791454600237468329437122823712106318142944558150989485748411212786153581472453419123846392137590795594549973495734656508969772258636055865364748169877396628607654051880592169014930477715232287644288259567527561304338317777383690337199657817813312911680160014436584548190248159074747022462861233618446356737470730646927962138906562325749337008751131655627061652830398852320402261728702942098756648548201768651274906146020523849154592211391510626868453551179390899881200334274218396569123124662996160641711649577841752626173190574891969879379852897947847587700585091551667000931496431867321238501628333998380879249879160726198362222190726859073418453827229335897715175449002843925256783777962919978283134728022003624948140877281321665619358415307942698031120802570437410415404002987309364060231212836746661083078273608400881806188584048683599303152551628602890624171758654733222910075984785884093402008917596206186560418371041889553122165396356403999585581089340181550076419518594365720076878399663716600342710052470554993133200847346200004743872009680309626583602439775054309856589879339902886676284530940070144312040825125807539403957409529845399771430881866825684313766896470917062638814171044421771698785327895668526907807105028442213484306851957054778736580737047361237895207345023682890063879623199986864396364141608192255770881094013759136925027519912392663627749030297132268453156743175869847520852285389516650584076124762333884443850142610953747959706194245731204566739111833071463165038247203383582048984422890129261900648165519486695296565597299061218905048433055050988240990413917002520133820239332042244791731176455274199623719678322048195036631756954213786288032339336645108653321438867038012551796480790218405634448492699904021961031143158540583171119600855812495115499877401517498233236836647614438902387164262072137230324499604206518273728511700732107519892917081721845380873656994073683721583239923359415273545538266563905141765429836749551398695684890946134637378388142246623926122814714743385967345261965852111987063878501321062520043294091281925293339816494008783119840871902062910457801684161482543098867812306044274765292162678123328457299404296614971924617500649644139264988008211058275185490345806265012379885515014137821163112508429213850797425396102537316852753751819391970115077407959249385970244399446693047666558598834700730595459636637858170771379152866292184351171537218817366232043852695981056901262595903453323420431638218297679660757300510655313952982597038218675922415483454589008811408792328995641673595020711974316584744484213455029539704911534794747584051101957165701305057271905395868926516621689169046049548533239070587645985763229891400115935851015023697966570937670165160187205602167467019507156737470043110335426572025573619182351788980491596452669366399860507429941177131617882022958665754078521424983108994713669841269765446126866790371258014004748053536161460813262040061571633868488978572009674313861221053677670768646805005396328099579491979717025637486422500101998528569429471368806660641063819267537662717006719483980758053714833626363538978805828156549750428924888087720637878628386604574841485071224498162646648578210171426196569289906842922768684448401060714722546455352767116386585526233155925700686691901389990503791415797778764718127715486584399780917958578544899115222431803969856098393031166647861446275371840720203193763796547716247217991599937892093726499386329163636955023761665842821498411282110316681535833284531798226557108211054261473392240873639026022173602562887443278295445578071310629464183032133152974751151930577872674303681931141293778598761541589267962322097964524533870251499283674291174731093691183964128609942800188395678667017720696746634415571467440829305752744138687434797532001945662011555290976684647957260724041865125413951233026614406760033611800755188632036394576688339128352112481270838050683292518845576446936105677644997103169193548660532334379700052735321878376759791786110756595289506540019185707531509171145960722368304994016375254948726056914081284839584895323525318863210120995472914540861266331258781774761805861544552943533511511851557403716170762227271346305117256714859098793144106561724790312986351259498460007574049286468024618597817267368843721453293953392980446780639637095411644934276201218951665064457104745728609062198343231616429946012072505681640250271393065933622267806795957524862677105841523519411549878383863901163902953400155596095570059689603348511606589079757816995972921414993159343068535383284994311549787368998509899355805180519960201089606926266580796971247838610840085684973523784531105456861327384655400882122085842979698320614025541774294071821766069231670551339451879167799028153108003189731697096813525999968349283949297595073317626312680114205996633670484685120032760648074808717403355289492847753665590496876642429635368609017601527314610456045620981568440443375334210097038877448779159033939478295923415937355085501626800298944366951472918236647307440294910427362487722421641163681431547907464182452732411643040513207118970278871151724308228080092158197392823041735305867876200481550030237694977394230098387084671459755628957267015643517708379710163684942527473756988516026332375013121150889138889464452259907635814657347506238051962711289852692012897779519157718839604023432053063569306030314172417984186753642149996512401160146674160381210871315777060877179851087476567686363641254415651891152954871780500313658901756915384937631967860380545661454377499646845175479445239605638085491451336754705007825363090991003389669919179254545348838972578435357865649695359290246868193931523134183330835824528634797080598959548729306159756020344524228793012046601732082194950592822454874222738492111995653928123060570922523113815047890207469617487407546357947076337745854909811411382291112278979496437805050595915064307203244951666721339723834034859912941357559076213553260747779731078337652903480423049132590819925896673889793403331761193894040463820784484144423197322558532745503790870716577433609409497796060354466412536855543007379816438821088306167752481416439474277399778994382883664078630225937551767302699778148081492407871026318183133536196075530258676461775585551455264269535944145175628376240926311933374090739478843306708090301962118141124598068205019087487755798040756575858705247457911004305390247515967663341438939189668074535987095076238630180387443638636895856554859818348580910854672148915444445043930328268336075229519952069688087281647236993639254286580360549698180284267535139130061332489458132419588260263115055360119537447069733668726927158586647816369327006845592897402489355098869882112133510837376188668209924891163973621887335500320095129716539028866968458224288427845189978086021070999342952694024425390968431086915002673427403584403855310267684668386081409564166211087294006435063119143591928593066218635149104533193636192940734446712455037979359115753086268526978643863231116060077538364046336497454616490827399925210059900695880348394973003647119762387034535050139747416941695550154002589549480348058787803564901332798550512870351038385650919469236078489965870073996244662741727166163238948952897718705034616045533168344571841181491664054424130155183769221902047618086746750545402945857559338233948130272946042781702171340580996113023917763880886264919323814801661306489820468559121318112026838023678880834094805846554092126352688295339010132070825364989868691484909597779894319259671703175236335056399110901972720509961285815352848071522358185325683586893595357337767681474220379327662102091347289547207627309182616899017895290171697319108740682276552547824191313537274715538359293032875467706251548212434750629910469053997154711093468202066818891413808826642726282820832821446920737553519396519168262836688257956424524507707311959047841338791133240468193235514631718522663089474938401259524845304888491945844134562004467123973534712105782575002184802624158152156764095381613441918796150557246881703348381618390639461323387354013513270260225823480565569310619931413759369465397903963507728787275732016881129382215065750000188061253752881131236460960882833160680185634541323220511911110238574538875113576934321919587019871285097002177527395755693040721151307761042132154708010166303870176576287563893383815403828859143418855387347830909032291421479720659431080661440259027606182607974402333487496546672907218753710299095409794813991273131625404796213656660173824522922748529134292023023904679489864264218734705891867983419833432461870156501920486371675841080886166846483521085483463830299931193914553407653037950168499517909259596010651878453049930953885117115750457746196082344501032542582018572021283366760527547248870333126818093129017465030594946310935854655229173764061749145083939647467695420246024851793494404933700279314574955582962058989888991541303580988935974406128808192700619736450912287804166556649602527773215311328779691235437145241755871412135991051281786608514198628854489346582438626346459910991344473467365801089664680812623346890484010265338762256295045390757535564065304431764321554802641456510523669004440955644794259864488792866672803294232061700119662320467238519427729227736105943624186437782991003300017062950794878080582294686041143813097472252787402696290855641220383022806991065370939092431878797861494891124838285777860242892554789514632913143269070498329268103070215316166298586313912710548700126744715288575369284573951417220648411789003080595890345641627720848971516217425060690442377844423144307449236318141906484896655105053683339355326164866727568483588853727256149813916941007722748975538150708366327494414302423693575730005602545386340967377713176227596681534634503366806168819961489067494678812578484975997882077576550862816017625860964220966629022114735986241242357751036164251794589351844727963210585669807525414977206530950117257866410738937545593745968385976566258217990199899603437783379686782868837740148460042064041862219955365251421060189816977474836183998557430956220003461619857772432879940169591841166799195320202037101995294869974821095367576148800104872124131421776220770007900405259125755796139241113084155169264498560213572799666664090650851960031720704585588997371774538378170845941416116567040580971266424451288969938201915349748916135344816789316466924281608589691712804625127834565500490060384035160267039561550845918544350494026394457332829168052642977607780319102272092065757358783926626962583271424127650001263442234768411992829268276855211203466756840315089448816039635964957678898416590371545385575772569522257509142380616455403911809586210302023506801063927943264852315501932975337818155248981212560318611088385398057151185200126600768777832792402085832612879839296797690054318708149469535527272573154285866609602165172132364734409892206833834751299784099005047322936033419808053583152360755083665064205781597069908274442691261832622733212504531781629733266756404124524227588884397138399559789513107405338950973641316785680073703877152756599791150131011915756294573113522525930523084535063866344334642937917371755175942112808382244219641650482042708355665707634259226018414950038353126605519621302202783022280563060525699864566781341886164739939084055319068305856375425385508121824057978322730582643535228430716689226957460168797754773953735960130907568811901705676370728608456555785691143915739033036833539923034917328152210637547451731659669177899449411858005383722925809570251167751878339863445135474398257145445470373683869560689063234579490187045724283991043992865626416715275186107585920200567241815750688467870763774873874172837963617045925245170695881912700773552249019631810920597785389569253288029311477784845257268444853855743959769531016601208953148089425200020457972824546459069703846749965043860389039772423815898376678172653461355430265566386249928172153082528599081699517578553302388096403035959130720489890055409883269365585204409462008860013345675905666493534311730720786156385035177629604758892964999804037571869653395716596479291032612248637474421150746499918666466707850927464206599006959780370833215270743522699747143249171196688271073264653985297839690666845210047260194529691987860306563817486873628778038883675905407618840703718719685938011007589491217683408347889603414069247076412609751732011096347304454023721138405158935987848057409370520884398139849895479251833284778345654209535043197673308947884762409521523550610455750700091016397728197564875254189855321511123882305246404807347113684707978259268541041889661514864209559395969360890480703795594012783702178860916332274941911669422136198451724592500531709646062333936921335920260412107993197522081251201484880993836142086930740645649533509996568137758156648310480067444311728033634939169162106507919603203729917022920429368161680952898382783801950949066880616480665485145739782430416672775808017159090386048181585938758933414685961203164767597914853682545456435128310292659181867731617703435924771566938677893803927818521474945490416379289734412347506239423963788719775381362649446429638859586866560639205798936305096734274978537331749453669327363824447911188381402934612224730939300657930834851165309804329744624164330511199071222860232119228161544122250409638702965022495312403532243894393686801625625165291692781850737528985776869938100386603390427655932948653087751711832276452292492979799550698895944501114238569765961077614617255594498523463882790478558973326638613984634878606880282349915339726670150922018323090501261032641571277469775661955938257989740673021399830166478588498313821545410231643483248920661737843639907108102904425696796905369877094084355105053015134116100913465369118463619131605154959932520245993426167336076413604432439286610995066353551689315795281054423389442459068345418390046723638551257453737413690994882470760761697458453576933938046791788783740030940274150066228028876661525600599157583504963990823047395044644193961619570113085587440841383757787553392565552880291333108748999716027732380852112200909804514058838879876197663139932998797062539783679978416004784212330443317836778688239609127804733689984042776137465159110246625946699448030925918070388395161179313929129879168117215578593917902897635338664742637198244391634508815984749421861271515217054729290060934312042289287658130101662484293972382567348261898800137755378143488599309733275201067049699118599763166894155452636874053880619371742857173731989462177058728239929367117081596046365885989377014002595331223025290165052829282438329807631147253162753171765550712109854604506686114141808728841314925335303947931178528351677574984436014883212103829256088309687205481077893952341871859936315306639803799377728257843117308514354402510076713953798132055551317326226054290272160151722382902702740884249864512797050180818417624043735940955493458451273709968566055412832092824735040300784627885649507503327280735321409023638344871229778061744371771921666819865612481549183059326432005243620540746395720226394769043027837764376892985805224819402196706703231437658572668256367767466797827079293488068883259573894960088214421333498537341915452486928186587565429675268512647758098686492930575571597511551938541072688335442449935954465221088215155438235838052486494014936802256543891691674627361709789062931565738760585317807111082624762130121090412098086243967076978026496588089497755322495887827233577108541911107545768122062576352802819215077728337922655988722261189277572498617061704038580903931642406239831426127740926353509396179805230988172604700279074219662830536255449595786900912687329797501438945949092895664887571860573258612955403398419679604699309935006719772838336809845643230100720143292200325391138505848605816488606505184044509546872413517306184435610411351295001094232153405088936633908233510762050105188108549645398400749869923176636863504345035407948155096271682522011680839096765951354863930803073279937762959912420865983065961469687868072210978348000836167398569893980619435168815812280775311887922625908822198338740601213518969329326603117255542589209955379809960040287084340370046789334937365879318696340499574629337441004639873162872935863973603991131693452547269955145109802736653918172099843940249110415782681223084302433598085648129307722944975027359926668743631858070668036330116221096448850120871661200297866623392076191311326479300062530388510942192629834206751273283691262703589942145770879859081821325281116618765219795308195071424094064443389274756426778971160071427068787973453054854906382875927535273582468800613672519379078321512535599051401788998951864695007215669768513712996021165124003825821644934740393966380234255519228088038640714793131012445004707162148428362652408489987063891339981728407958029454841228292134561513302303532995377912763580902414970684618138465080089065034520786608478210388624710184218759225319929140134483640541395939745783087487098085895374445937249435317230872933778850085138652402006105199995926484383413681885350256097441274498993052454791130759189761832508743730998901066540158405309376489740285307316114187129871747563682375378099497094303255101977154452420806521919533551755250453921658029231634308168197587250953492921241259658532215822320464679758357382015302600923379290659832649192353655491931375156239602051332780832937663658665722981936299768228772724070358130984345410925289594650546279807002383179653398875800179459150919054100929475363063462555673019817097912844942614324623119616243767781191497880485547837255641142971466304611858941658369431364057065456994198954272692570369442608768829474397464456422812253397601934111003703343072556532328815120262219935115237195607011241319042970119272431460693231085684707006300734873586510037124838987704468800867181132549839693167429687289168287449053773678163449590982367434801624025941748819787455105319715696037760664178614184714816473618354509956045279605982774809481358637730582366798711808206683038182858053505993598931208397305804931979050197433161011731028780748822371637550085687176403539343610426352239144219941905249546750065550347831056570716347249376347977218500793859884125793473086059711291721054770008278550158194759893822804367261318417370999575900211010182686170919888123579158884959344975082241449026031434984331956358701191778849786754663890707165897464283026473077833716756970543817237301947242387199753332798552722276103494975510453707218993013382181144703295267643327221024293963811409103941754337605603742203684045920953130766712531552520495850254265802707175317446800439214377097026287943019389937713632582171127566069366100070972557197804375437670671080585426326714255442835106758587888869787710952530267212328250574972014242682707090288990239545283557941581801461864459456767294862358623588790480456683933798687220651923303291461391639997068167764386239733196106268564848828333602153813196814111722640128130232729526977550241558365269276726843362518489029015269472067785171918590715505321973775774235620984261839954609262208296637857700975509883224514093409726820198176195710349930078436743480283397126388206526223856209567095455086002937945838715574929620678119820976586293207895913555965923938170966565363066837797215854660223502236032719670579607561411612896867078247866617260245921625490292950072781543462361916450437532964738532335962726662366306097084458574067462814652359401526177822782664108337662732802819748603525375583266923862794641009918228125685497470955800034123249357906976626976269739173149379245899007008361132373266403985010856205106898546884572421383774328252276997954734908667994050490219555814321142009290627950054489058766877742763548922384380962988638679304310293848873361999532089144319191492850109588039960687597888727845838733943234357775967282827221034057711592934707868186934295084141001268770669685414204727539707334994593784829821486060516901618094236793926154075554197820287199855465774071167294309068283933998238116442964193401456952178691589532717619712592835860101205349405748103681331640184747705688741558890472573042883345874899492647181684664814551636599095835517086532065024245787177984624732086724952101370670091440813309132698114693994429677779649201107247926892232388038341278781857073468029114849242015132400742113928865321776532629159434299124586496639682465160983473081918556376720674747885344233545256155952342045462403819333065744316561462551034896630342489093042574771564420848845027565679839830657663471347852420123356028920633309370284763270773156385419776852482897461937653353711462753672011296974857797891444343518276573701788022783504496032276470528637138785429626736257960389140138328015539918571105995180557263365332179352122853085479855967790731420766779001353820386933737633111623772751359888169273874053476479824724204725382943077389163554962296868729267373472472717769984648643737028413947157290803903900557803846747877591463954697848748901304972746433791619116172566865398816475764300560127105098528105516370096849560042754863998605038251642971003043481287796186645107295412105411509542547018316346393730051275326131097232241425349237064947527391158190665732065433814335565648346716760912915141951002209633037492072792876371849926176173102186581158621483029564700340018785606145207308799112319216153190270317831854096995924576229461174416841136678328283324896337320617289123833286737924502996388230852354036963816802728544020853507514875739134745628994678018109106576397041659585192533473392849411663115830843104579308073504254486125626703738389176770959568538879585559076012991357953170948353518074880851312970907384353566802968921827041154376762324749533546221448095167398195597220586587035228202947120762105999734598225626585407981874437337885376981062888494932480254070044659149941762581945544280533392300633874159147223811601666713531309823631108162021787338662496497824531126295578924935578303043773200532417052902198352470194434282933785233995220270601450754342721743408379344597589343047149284266368490898742697744669382706201887781712872810110578916312489814509057174413604128600724342728360240740391140396170552714281293516574464761997769307767778758088742525811851634102063451120866822333449562685696268811477265012703161102648736915777662781780421001877861915910090038376193228262883334735698834587295660992940516823934792143201173437775303904734999411235755122176625004338897776696250225921928736417816396594502523306769813685742367200498462418570548629366135056953919074754165579987586231045786547553584520887323033956199789465026781031762704495671827064421797337304646477867189785193146247252317084702737252680263630508987958912429630979252903284979483500866576104568895844049527663837967709832595299567342164149756031740385310010423364684749793789703765511067754840493025464051029834410976319110754812968058130034225893358407753330276902697902617987297193063221455068813632384854480402936969444387639933897275545799226354359405846526730307444415988087753308869334263929783005528641624807140213887183724253146539150459657629319024746946700370579198625077866983617229324114668448835355455230393541265663177803222694609054722119116600949648880545904316135316942858773175744774212177771582121300710332643435518660472862447274659477852137104344265276504109627479487237293552499789040365248019023629574727060205481180354086457852629199647829041460864062165188946352233879838435809926366423716363993343431343989355859026220005589882394322553154399728284193250330433044359230451175017859584915318341284793398318505331607696141056607937240041237678238089547136605757843724886282574359217469318526482952031421054349885179432694880485318800769935844489498636599449666739695677045051562590189035648543847931008596445598508186060353745533837189849166658064536692847626649978530474501719014620615021386756078274475914956197449931810527925974588993108560815313039638660998255591458749534034575646610679907388809858786540567256574312152511690375379892017497926103236406170812958353008730497015775449377058424670321202583069326176966356994663426111236809944449019340088917922455818754418057890676074690659859274546078419244251495259148253818531344370262695341474218937153080016378385616780445419474834928576907947215797116361370263143994104437274333179468918960280027390038735323850008964744366506081089958389676762338673045011743957006768595365854584463338611065436971773074720963348089962132285090483389749613598824855467204410265019258388487846119888473974987700140663762623861451221147020759517415367863750319796273813925015384485239781609588057459349813778851855328248649785433054563560079615781158964496254047291688379962178418198560957556992065936232770909830342443083036935121222505663914816566905469626951531019125958710982384101859582667796633086669409927214567215136144732641796203373285911780729718049878907284198601359515836665565020128679399167367530717123794875490668747277504083707160368632425010028829456841077524493338802024460693491711702864168834390025283388169556422133133524074261114396020503049638918711076280210036038470426813038217116344881210570699283146886604438464874811597659213281069035566497632586582232775645034400838405402650208994599672588784923664438871638147634012712530604209818082566552065169385657813679530477863434998859333379537283133135781191006572786897497429648918422992872096123404350341624180280765923139572389773871629082449403103612580334654168654670296361502735855502087198092752381085646835626481564675043014395556224403278966522139759490068704651274019027038841058837225327281239310198607744449985595907475187121660001567195490888000959572831104861957312318822246986197525455440425332790854319861516291124008754213676532688584376971734618734784122449717120273022826744959283587319468909997116315256274217754792717004397590452108350047760051088374112558914010750324337229649648480713173453528050999228968726852701915494923545283037618922629179381560835179571778868258045602627097712415204557070601693413862979935788679725916066067703359417968920127408695004819751152739088107557252883635065887623624972149901603556158320070894580176537418942368348583829953729417619902673667093008384504842462604994980049068800549014707898658525716541315287502089004094521451945120533382367159642866701892707227892887746057105126651482510067884247178620331855821342429254671623907967479931358556830932028779987881538858210137185991248405814226650192502716625586139550912979506182706651108295533878455875099919636135136964114619869963530675642979598814514191789237072714157466399585387144501246846529790784085954708306965257619301464271734967794083486126105488141377366903299194157504579030876213016290376138444922857918444327252117378663394426997256252401396339762769280925354009798710956770027759204328884298885728684034534763059527845826620090226755614248318384195975729767842935808601695446985114501107985139759054246013684561012834210565883400189912017450647994635333846173800801966783911859001454271309967198575868319508968367844537704499720897243330570109434902771469822415933456496097255503886079090040273635429818597288236418691183902213988194132214954570399960115023834421492083093456320878084688888061075608091123590962782891791635379006016400031124909323084837270423797247109957839752662481835371679409951627810309309175286110272160098415565795232816035453142906408832873139498068367405065714081842579737817426424376429123182235312994863455183409665369237643123066470623569497982895211098717040575960254484338336226325988270302804754993821694205104089805358667820933281764641376856955949669883463310289193662488780479856993947221960541694574239290111791145174127872191867880780672369963047490861963363085144871746289151965739981707920127965222724294854894106593769172889886845759383003412505107503451001493782725100204514769302131521148756428759052037416491483253810812561737233966499511359981362790873360328000172594186532341629003108733151790399687385552925988938894701286339382639386914544158849821261004339513782365537023825469029512264545468403685298535835578792528701746110511708520813287841041189114786758800209839031701091276124031220818178514583857215475501994599834304744499078338845237353178775232064061901651980356043199396475670794349304228139106904804205175189849116026935240930026647382705490771128107453073823363331035882255178625028052151862349393699641397748395763442466848122147389086038140371132763977631131787553697036496134712802580265056478185025928423927242731485442186460151156077379024860223259864356404984545007157229658116745172058100866060898454055647282007716592432370041789590423749848807967265209638095248887691613676457320409487487420953014188692047598088087280162182639568383770096537732712474890886475636668167368664266674205258905351365021496971817448375250913441295655634406918167771585830358801853643293906092455170864483587000195692503050864582625680494583847317831140415754213743245908429786615008804200319796354716248185331048229618774380724470557319148790709676437347186453561753900698409069975145620670578119878805784177882893381863691503197179560777642913108206456288302994190779020393104448869049230036275592079322034902984754717145506777261228652695628688544804092984750829434614859147343078217734160967403180383865539901796629981535562423428441041439603471372793765482394407555866001417008383969403547741211488494187802744425998321606466646224520712971683664146227991641721316234323486551936290833487647026983659859114625796920393794125403250498504434004205449865432316411279476689417179754412531489617356474171716897003949323291266942287537511825826796635487081368340607347699644961660247122765213492401666482137605350162725785928388877878012821590540871217094281527881073464172496193693423521087828420429058100806947692401119932467918949208911584302753611428817556174884713220965533856330072601884846453483960190684751377726903317267735696554524532754974840168661179023687055928721067364467529976558003941994934086684306976545081880559568510375618404855547439188688572418435691386064909513959321344844771754823523332696429323778631510537314461234828006981008392938390730571521796353963723825499562500368176848043851701191080247229902944934359247331241766282235158112658127910877835592760282881892445232375696035888896071759372331822833531174572392209291593208685413882405517052248848945994965254751056896219613823685606714500190733896395828253862304417501868574989942293761983935433320260306591648507239831961729717534117843852250673913905653679701853372397410239267878238138977495187809286239353979616554785993593185049246653412327803355303893705084006112805610618272140881653834224620124280008699885842775551345214713753840883458689020561028729550117239908553093998798245078557202394493068518723488423406567886664259866819070751886238849549441328707405748405996368107396699842650318394573422915840023811640518091966667725724362452386505424412429201630011548604515483455079274380502700213908446839293746609464990756024151156253200964919459795421200173810302836216352053423979290497311343361074846926532872636564508207321820191109932883477258315333997684064754495793570457429122851504730792222748563110563259612082138821383152937657411756074147699180337720795406048857876124707611916320660665351561340833619188936039794752523611972134882947841502914095342987963620698820306313403385611519997849126648187393971455079417326228731346596736578820061855439281473613706468424019656825287923841398820063764045019558932395055562693767136861868057981012443334375205997663325623549746168077017475070521578488550660099759621238898002396670591227163906377312529222591346120330544236642399895442040884150619149426648263478196614196474839051408272575457444712443348369317531534025354740404901045231862973735981080294418311270296255367211742708295376318158476053788362134141661484155155105270275673738682377450242176311997544624275541645284280543972352429406510098728703566991653618796190421369814029753326203007323000639071013095676674120921565172015672366268547605674530331502053577128400773183099899062916593895661206528825929876860344948532757525681243149277542692754767808198114778358369544772514629476815096587177853975149457915770572938826020621889297848329409488365351687922309006404001945276568401715196150716119134691656743396060003909237261263863118637088222534802500993698514183386370796100963118317696143712311513843830033768922032088709288773254493059445725626240832448390726708779680444333954660649086947921748112276036372882944885411426585743754059166933353702207810436096519283916677112631903763489890409193633311931568781398623020554351423160618790938837006543514509502034581854854883639874545576691052404798082938317428829265945959630688892944390596408387004518918597152643350118021088039576390155423070108769871242671866926719071811025609659258081571065477393518074273784315178787383556393068940379812070952182349368959989746888101187628546499336708097888084822224056405883237260038974435919366408988952783317646649772362818251511258861639935324399008761714497893494011508129313377145901157060647935211267386374433754210725972096264196639956547198490709693835352772540400153422124386856187079853536713317163942736069915190131150033077156196188657852052366096042523603892814291301255478589591477448300436895139749292494554344153463612441150906548913707935856154749351373687903624486057181011088400328617723789362749483180961365340911137043632820928619176903949249371831880223640279057202204270798906123294620158211136553550455993464977648020212920147945880993533611303179029625319490928689044913507692403504491524011973563518439540673617244511802432698898767866879851972588130678179114173550717403847136528996545976354125358489082162464355086255147194752748089858654485226388671620821970371380955354411562074319416181662405866359329375052080605668935791970513781835782721464920912613881221929356814272165954238377572047117045118261623563895296751381014814901894217455212854922641922814062680639655352855380464289635634435430094205179229297256524256049958694702502666403800430126501860603612026885097440966680568951185664745860607246715301523447107995669943721753557932542235956262592534345330755865341901873878457529416779161056992363510292182570314598847105924307517242455055555363542967175786597679605650021980565087131170926155605046379918284074847682131607150362688497555976124205186309972346577824683416803883855163352540158151338724268542582801298927266005343461649578511834817239233145512117224196270196422594986848329981171774678483023286383672552627843743050692593596858604073911082659405794360293866751100157223450607335436749138612544135709386192957691439868139898428441842529373227431389234521798107358738783298881558185863876703227091454632209325668581479371365535001926660575818580874008041564758597554636638007931576746772890793471431724414616282708489354185360296188562579367934092977993802685940262597641738394839153213416542971135134830279368868815922203191632458371284319266892311530790080213120365522784343901039684780274134028599518347949709469793061380593615800986284549048786774672211971479682656665397193235944142128461758898618774704369479435979662884862667965212272020518855653216134786953626547387469821782768668378847313526001767202851798886615410093563867692778690987906054387406539907361704273570790457882854134062840213183620975401539853167261216661112515257521025059374646299826404852983021069069475903758517165442288021025360660128181627792852561990206180382451207780941537073524033633330858768881064758341806337146445306511842620208511265995333809471193809338706176600664294953802319833099602063071623601655521025811176639469934273581140042604536267992667799946053848649701207989627029581788382612845896123349757701870114557269700356760100120028197442405458246851040547487765834906611909294165294411692644050190222946256491255369789457123307724954279710292884019956518494035117852509110441303275634864576695368004996897102282171716830005334085442002690401783976263682216368824629046825550639523900541800421398687093089162708127371761962306689216103256588857965293782046694929223364066972184826647371831506450861622586489762309881621138418610866933755224436313779628214973854472345595647333833800159292255160698936671260758784010850119363509499897585590006883818244313205121783542102639716232442409491486769943759385441005594911425982522137227389753321749547211046702800404232262913827808933157594559035494811950243999236093726596244669683820759493029473819078587117437385539776666934238580699884550828120310396033427028145211854960677773824977021278587445893307687582205930862912427701977730473685132905444574131482120072679417614597046801366869495987165824353400474922459554019982813150756973611128265768591236458462569438907071823212168284288107218705132844572216441077942445320255183703188369670289223120493583510410260194661320167287134353775101167516623994753578839338565950711528551627483142289511659797921990965288209516708281484916058264427795640245722150984547668040432773243562418685583570362370166473930336709297663951486741608670790768840351029568467566033110849029561826269052811611244462818688973367845852286678871817628169123786779851174405086500076836779371600332970094247006070512779318424638811470878642528262639228546519091634135536782981580386523366113945660717434533157199491083862479705337234123437011796669100640815332071313580743131068963156545101541385557384083255433934963156496489803715465123288819310111856615016344400769527105772093304259166966273109427414328488885194172467304489859782588997502889374421614592856207754481036679490631840653354315175167508771378026606881610229381764311131262905266382895757247028727729525633550279618073109023839121809577842435050287471747645722903397319455320745732409386218091673447130188863813385667365446363769484823005599069178491486606001763976358300987355599412776389209095420109090470798052351237753915625273329866701961339153753005281196916528230486515216097897805330199911081653835775511160920032951537239734183422783878164941643789286040514840578670297066242604730408434000261115934029564013226677846973217515237071139532656636832446060698947748127399250612188251365541726745442726993948497066853735428170807502021843247964128193552658260514933577553061154878109687804435502180429759092873514689875485057533288131755680244536647166208347364402518295732037654276663926017383421522702217935553761187488601245921893417200190522493720452777198034000975138734225599851384747076869221205845958449722636736476644573257940729330858418148608874701023098064034296288264954674973656345322402888600329261241699316351673776034964248700959304588753870925069882838419210584374862627574798225763067326955961105618025076856172442562208505621692521684665145708648894348906201427110261038579313200478274065153643382141183160148274944927305137234470975716033731657021584410702270261476944825793462035889840473282102410292677330813029484813318376196913056847056709297065688647035731286650638384279165088991410771396966882791027126206619218963520696355208897154898568164020618485715068361872423358849744840693622863956895232298500369613779474973845829656742448825496323636840762127596352612156399624726828269711969085625580792551382052307185678596188647635919110512484324256248505981991199364496786584248302781459114912276213209919053567779993726322179149862011749776771404325889511749343674697965374338938343167894424175652231874366313283528454743831510687693564895471893954619994681562746065752152945697410507229954061645476116838686716995334221214162297098290860117293292462598418008187210728045955881958916677070700342591185484894259363651149036486885035447484729533253354898165979390318856078899309796566718947679258413450938957816941653570976920468930895390984054151168200976751399469482270129807634387802200984546402459997821059145685847958836482699804481476429711916382002477468712472413526517371496379466015726285024104780942307098833956293725524114610188654832051908857944028709353202963308450532875983019633103203379322538673684848784383534728440992891532480056199262956807501108598579585068787033726784064690406500892524643063061082723006496090878744018109281421288435299054006050292351564364246028384520519571531403730863617815529719938498095896742738531807522429155929292120950434108510368757119178252139864894644450051680458854979661823269351534716462314017012197125052897953354311405934180264334034710604140310805583485507253888697767449114465712809755844164075203745912551482292267936863558191529055846896758530392278772383609953039610483616973526271089410295378080008533879755974654866664124843677451444490718739921075509038530805804744815117610046481637053587908583587000631451938946023951811059178708079526056132644295470697975694358504164221863507009937851106399613820671989556012013767793552082279991218189216520826510761652778350279073418362284371865693828680761262095212442198854693784230576403921708188656387600104649665962962966325203080646313800594407563155256359760097031699023414763921680270098132635092792370719231771883714352197174703074769816430291780340396905528781454364836189169954902318088921397864968123598213404487781843128235273866167393225665503192142549963312200570885838340882626430290467507352555310069486613602301542685955371948625031683541409568071314710881861485387719140424259747587856197169580100210184399746881584628936384193167868807471027089241244503576692606386431227037575800333171077409147144180988595664305618816936338775183196086634776655022925319070247305275926825663269563587576740786707591526214923425823856621950702032838818411335840104884633396542203728631321357199694817603797806154360324058089709653985190666241382573483420986613759364664552949081270397368901327113852622969811967495462584885798242590084799648289246485252769428293425035840647173007359286509845640351757080927342536491943789999443686093422837293560748383818876868039254709256367345124673536308761963724688176876397256037128084610614345294699611133264719162760220270257429757014236815509000687390122639695202024132603552152708343538101588635161292508668553332937840404590959193625246626453139619327881293919734057771020519333609978483759035091040517092623833335808894749978601871493914080238821382833347278252163992635188045376667152949928140154192783801803694473207913383198391363579476919299486426069575276315511039622982447353682095091940378578432290497966032854453010629162926757239200936225591740438349885010480528411573016932867958313805414429585810446745145230534701042549995414152432998660868949632790828581467418465332060670213680421243382641911954498276583949712548051562084760402189242967414767948247836701775605778977926337967858418119542258705934024779321416381191754010792582092709822171744409646423101534984180762484144459415696026826833945849054396703747965715008896874671910696084778344398438823197629967291597754097595724184823170957048061753262291898164527635605902433470261287912076045605714998339334624023069632998628769000805567316919332943673021582773298660505584704798518824532387883029813457365890993294018277222178638031274186654395057920573001773192010034944696401108666386351083908699467388334694346277756418584052097914769792850818754065785057822662726127964302059891819763641167929675259496650950260379858747637991216985724958711995407847886422195601121846000502085165410960919559157715430649886697220803977827834425353819280969095531547973442094520730557158015065974254947915275923667210858322227355598996761583743723584999834326903932675072272159609771803153831366015266603262314043838918304396088305495047908373712531684428799481467035803413913759650003911225258404598499384812835040648567150903996494873011306227402423740053720077471427141316599028483040334241801303942073871109701228819414459012616845433219629788267801657363888970870793147541060780804507153385107890407347990002377995733931347446139727588778672456391796881414963480425018226346511418539665209082604767531383584222243043742678576975099476246815559985847916667297009032963762640375102002291734897610017051188028265813711500907589297854614902139018072373082288204897537211112648970622056329611325036693810959720160530694780001278364291716333769068474342248104352502104475783928958885343462179518926403213744266828333448891436601148902273915892499951136254592550780718872853299631557205390160083770468466930339769686922027763940087124165409776214786826707082317818420294888073645405440350935877774136525991886530329900076190516309982738140377233648479147353560311683906836236924396280318582416894971160390346224228029902107641953910583496969576395443875707346704068041072859128858547044945022251902782530113581903690649375876769981571299144097541313082022840840885394365872035226717910871738629360551626155343381344545495046545124068237256641601991856192955165986059484641180220028509431014353920043349712750432179912539134618251249915624533197276338442844862825953560469464583685159436545411586425271428324396922437211058606387697176102204653313662866577468516734181697307862413775499286374799391603215097751762743539384154239172874723108713677266544101828282870962784766897080548420067819199388213157949841315135099587600566912078482178889467853709890648183608126388271757242510618635754571380259963271148064004968063813042070671643444056047030643795368521398650191304799176045208278914944302948134555453028141599163292647991843040730850801592419526379432033704060774640953085981305921353657303866148968489842741509136714661222614336889779579055897006678235502100325544774415595964587487298858419112007293010336179824745716862513335512706209791484003619240784993394399214097301082727098948818283830954949875234493787745068947529363860886292049431689108294189139224888745192873098197318330012522227545530318623620803785468069473657711307442521302410688973385320228739348758775913860816945706216416628809924579837860697373438312761195945820127107481323302508091379947148060255585872416607296634170988252466125184716213995331012684401677276395972858610194917897924790110751497550050097664763209984838771948327168094614768804737323773033720653558570969207217955218766221419810976440410332653393512179412152140883106929624150417763233703972284976240301660857687454745752198571513374987912012342554817352771255489347094308389791693325716398669847624747001073631535510269712061211835660102103072668212545708134818084007398836388207021828489266756052467244404793675876620058877136716539625921037607956064225653780515069734890847896035656142209107735848491755088824141746579586817811182067017098454784606924343862414268160116211174185506992502910694454815048897334104546510929109381451484078248478613108435032851164743717502642168579807867159647087480057704520293122925101259001637060608168441001013710150343128406950325250845251808772029940331707602903278725417405345822380939127271903123454520568480734085777297113092919672677673580954350363855347548146367284339474476139596975616437553571701025944162039619349178920516873559429114135515348974069443812054983088951987110673647621876286941977912450987967273202855496147775410085938462291543346962259059575624284253723940697225888895266031620134922051771616843310355202667140089984081106905821945023866041595450068299750153091406301187527123120951455073884885992711344225940085887709142975795882013823606828924252605192932232252348643392690553608050262704242163751956222006196320197095168978956844395580448343485616871391962782506785649521707646654365652703884075267953554001644261616819635365376777933065031200835854865671039283491349314178908994247110535952184761503436960621411723120378554417528381880872910116980176142291712083733500938145859141979084714499313165862830266279266372869917943505312202910646340748482735394069358289608645836974260312100416759716453444246604650312233971492802193626778468675227216850015609414397307755878946711547526549053006668495563076290115740017006028160066628152071548683180714991093195632372403108583074105446830766099744646982594735812107369469948850442965211597583067859185089547058026197387117450638591505459262307054554571815468795147533361142955205064427806559869524583639846705525472061184821498497651418750918151647556807126613987286304278527533732805626258049680955967947151194753680127872764857268090025326916437541749618313340575059982303055083787088561128730517118403786388202493612282385920801647301268176070207376073019017727016355025773065523179846037235962177090086104917655258967006010668645415861929091838090407034719626409622145504136715890899572809944387028847522326994264565155135924698323134102276173873828870129107839037148110468618938882802252688885811317515762314228858013527803006401097518570685624436004558806772512053641451747052957216152944314153983633337949361114296471596668100012259457716529650179026748571558059858413456679102079388614039567242090963362449089755556479768938653969769401571337534553215936197405735062061550420783160807891284551423823465035280652514284418348384121087406891264444498201019682560746537579949411228709071529770292686480289020489386259823211241293880993824895014639123219626831120145791248656402266341098602327952011382041300046859496974655327965988337694835212799507125605762027450478672420428251318309806158603811307204720295100052464194597283118663824525973876799041266190436575856085412759420935854232271015045754986346184898597870154541996693566863434654909067802006389959972892428324380320342240260712110233545386084778115812653316463149392702569903399426335224716404306541033057078074231108926189668394519158806460157159898913025920517394214849774491500807903785344992866448247872689633037490370843146375508700900441196039247018611338706086585883943033841357867870145247851996285919843039675937660803722458535406669916563688601528322670213983324551889604451788241770752079119433572489273248719647238081745481485266949208296030171543704579582189316940160885090328304618391120863727759200309104763756176334119985824569575585678800070191530198965207304030391960718072340883622488510497380238329849651266226461201173521833778076045582482227821938621153545942861693312314275895766641864553277591219610909929803761420887572675446733355926204737024180164571888722387876314166638115484238246136936857955642661248981833147047115666337316795758411152558533071818059058306741772135518840154815659829379668486639487636304280755683835862155671314944235270792819517016086356152079600026307838647118838713573095767822322954655722027518856386880790241302151705068767990798212032654559493496116823695030247763694514958161961623267328053156128204134629096848810012273377901453033866349085306889367168944252284718394990607380115187922473987898720698541075914171293540915205700055908172420221498824236964623907553925178059410771068502081796050234092416004477422111561154803814784029846695567026531434388934483562589357766932815061006645391492894651938312176584280782713742185314740742934238830702029514278383593310310033939807240958022143323234323334951412177019000103460155740039831275967709133408153723188372658538083684449051962233995849463330209814136928700679827676837741648481452954808430289818568033972567659591356228654832703117759304062434969166151327547555365708917651607876983048754949473366258290323201027947702537189169007552270459154974996729040443570496330603080764199066570348088548882182710459086204274460753529392916519254971557667656763322784552052277533008346004368546361590691522350901608087362839497518971045142278991673908034679024993600911688428128871399935078672172692991200698892951864373030667598697087817985720147997372469867897262818481178342400408355573278599213384596393892920334305902772889059860314576863633663033488442041707413653774322694561396507643369496194080767469068028915504558356017315422132939549328999667347030969371893796753728246439354622319771257236088765573790611195556670006697174390894765413789106621513393833719139368950805388201176223756319435702947732459651958342152622475718304275619354866602332768490307446882843211178891133013035790626275940367112545951724195419176526203811229426322936197628013351802748221891280944045024405679584299316406964301374123952808172847354648614404113262979240088002961744399251629840776765989214812647401551388423863999617763687274369986888977502626856639056637254521038540743411801201406709351869223659057545774775570544185805707511221837637442384367937955945319838861353179901105079560785633141050566567144791722529423829183475253956193791160658120048913813634754761072485695021475795826858275584225971066586314953265912691936884482382140020858586287843563618284481138784972593797327441865969424487579813865445307718335573017848818434301057383315195660172555398571366046165493342710261186721977649870795813138512083940383318494539349840555004933200624795733050316914266585757661103623973734027103932160496562580347928131824719381788641501271577497945327250926194126926379959930108102889672827619776435895312056463892201643852123310862913191030266025961959769774694375206532809742583485203375339657096981272018387749868877776179407656859286649786518492994315799952357717530844372893692304674972657180876606672088197419933426094337199571631393582679342550721399552874633735455908656640227148576870164484673102160024700938500825734853802991969005682030906719964710650816403985654596031233427015738163482700825973929859070793675481541299313970493342070340721980932619888093595562207374330000568800679741019768931028984747379246553873816894708111444024452371251974350226323202023366661324540080374014183015602448482582580492856062182469783862905084677117082927286576201700066744823938048498416550230422587844536929798269828875425255488116658805645991746207386484179915594587702835164405821867758772304392118328799852665598793719699291706663969157746823360118553359656588735931055437087292287209393604872766591183411678276563559001031588452007991532983050028375041369544629727422897654310086438768525072529399024426603083773885681943303347124983908174410965227403141977860007438072423285211895424232017406655047953681887724204852204801469040314374936685681528030220179767069690992063506396121819070333309817057990347039987676188136809100860276870936170175941750560621677817419294167712856292193606843397116532863947462577955032813772119295806350879927365500700869244350260493388943950227610151870577356880034292645523150807656392181088292566171855049615989024007103886770413463522646487451165776845548608524627497096349130766303948560517565397612513342422960654106274047716369001687082407459930577829254005755364905233824524632058658341575374051304223592134082573321767044183950123916523725822684028803844280975429842884468287457617838102273092958198580798596537414466527503168673032716716475628953343144132081752028759352986677911312906039850185471361948427631299938450137700802052059730842833349345454215330699117821791330785848310083383015935569563478785520353695948078905005930759875746274572804564026080320062225180457769933946993513827132523642149630852657230763268953162226761525834315163644767588643827222421379101296871604354030806607667728376577728665740031855202412098481145429900297716967378329722719739301562339137406260323587889489513193944683525108167314532354921551511669607445830331277173188023927324271288329984669366327458621388276362465346231957422068530430598522884725995404574725638005106416359016604081928954234635742583400628133598867732913258278040061381823162091055185779973594888570074617725195765477870681974658488328921553400604984865603847180814263152644320778571430415891434196166149325189453806264652893396267370846674314784857379424142611514441716774034861307883826528002574610943083171310288223710559058720074792389406606906672532630219996175408127706607858284213566229947042546052624919220203501041565005074273514542766936278030580816436424415405165343659470624964479298512062954007646052159787927805554070616634668296696684078879683897296752648293945713590630784028743541024592122161910876979613957942562949473847115571324273195225787706410154979116993094643113626124670680857466629739188504261278741854798682545446076273273575872131683716661018208475538684828753239707820237230854688242928452691652602563171758896254384034804474660143485659816519246952516718322766657221547777455899381643484873291951972296290927929493487580572730411283821624224639442961122592676015440355282999717024398411124472874966020421091754969933784221693710515789176463945260395101402792167714349653142486324098290403950807850877136765709304956099457244954784943203615465057900877811775532675167108162148273112966830158674776362991704675458997024281238598382228025044139392398908315823949383604843055843947468023011523874138000230920352313061461481198516908462666002426738265531675379104416378214217619042471081523533170316956176081015649814744683387152692070154870829311142124317804071474675797580061047639874126015610514262636163643337127476449713944160798070900482388928561263598076504115282088678456640544276247423574184751555122245654931059282361353456887988115890105239822683869258448810646056497639485994156288273493860800192460133254345291007163535901951741430376735751485297048014477105103764504909896580527919258373253157250783935645952941870664789291619803115344978398668217880295461827079011186595081978211118164025386867195891791298253661948020293831515870938289396485054616078362855863724603089957193839189596082411458251264102971438747877893085774212660991226739753575275921489237606744191292526617731294903388263338783013172826391966370987518085932574795406914102833712984687609866496189455374349692103308930058917058976601223513884954120947499004750682337722348432376258191181630813025456918440865815185686855065853010555528376997476682674916839744585349517521030027729150025491243577119689402975552325084169202094828926374829691823350260469616398457230447653142405347508892720708673658542985856774280476308138380130051753717083429583243228459086026777373436940322975752413318274941502771370490874159924096357802306915088594326774948451229832758482850136155445499014729502728978660352782639200800416826432477838668844899763426695636193678614598471457692966552285074841534223474077364058778544616253203417614379081706654269936482933039799845172816164627091452274421456857595795671063264733541933522705938780503627954831755676286853830471765838948241661983317914451637715852960364596515276869153860276496255888910297492538289628738151637607765175487599624297571854639522587181272715413036115564479829210208337261317452124716807530960365829673220710776905676173050464551560182164053111371313370965252632505327280152194790064129030131318783159591871976902133458911981364453257493671205848691261822972905329224959356360809974047253891303095014281973553575058785179582729471903033610227572665050790434056521210929045524796152730462872384819133519722085280177187429826863675454543280844011306919314973475398373457597798129325871687805468479342258501460816029951955695130428321894750355119565485547700538546122581252894100970552087555637790974201491135790429138020051574675022950423807261232919847412496880315619230423691742272806700492130808509849448820492653487069581275863023705876893878591816133995916104214066997699431593184634305716092467242141287694384976424064800845252821102397332077804203224654213142781085016935892780098425982212150027607239010406561131667870990707355421327268711090458098127209948684930127831506391422539382737012034304294532660336526435365669386787934561888796334577664457737193088072448877406519868708199881900230388789260217573330234878134227048650036444764365750517116000192807530886248012806084812605916019028872966736145613239252344475582764190086128465170461124191994427791114882368786324134895775660117531413016590762875347129844855530207317072664716570314167102073187395949281849668707940881577085349339096708224475166075271875297277082506578427557773004028129540416779360677826185989145332936579999845358285799887833927776632499199546667847498728533205406017633034554488616816918033708233628550501649395727016051825304659914446866562408891555133649527101564274912255749466911025831045882921821314718346369028350220207103960432319536767636373893578664323216037488871659446491228172735586110064517551369203256472372140108025280050932361465127720122670833241477990066374072086678849003568046727899489091316899879316937530719809584055571829931528431618920693442849755047430796846034173748048461992177270271782540004862135187279375223294652620477876401567549295601969119301036044524243638426053017448826285773923502005413682432979446601922978757119897448860676532666377114583190590733190402350207651191290574114124111438570283400540483683933391359944276069827607273285040097243995464020882523416763424396342901519073803237973236144375729833304194213879057495726645500900781199657260363454636364114425212152411054840207302118245683189592114538706339758882538193911822058986439713711562910536203073795341734517739106728332833147380238981626786032956058724629688342077879961619872795209587010972730981140598308773994550935203783782068730906032905454284401607458095063047159138110668710056677305224020945132682568332366291035094767043476204156675224219847895238471401320105481269619952529432893022465751818076505359742076356746610779888974306259370978553174517801116079527006283746310602434114810411580623836676385403455435844707050792444882576681477096257947033602344992150260919052729049272082981593371057824247439961898586804267011925439529440148849837828961415517554724694969266885138474765747342352076599959167574308713242582998778201086552468223582666119665746855176574633435012828566965159969178587173458338512052480211447301576587575928172503690410862091341033589736622301861595562291459543940304240637689525195576254894656414841106447796988878283836110200164750793983701621985790395207084300898099013872300627428294935807466016355176230003797572541229208138302112923121585983954998754929467599232523193339401749934563197982951516580339076846842477233337939906279652278905206830486534407468142090471681592563501287108075283120644059519683758514805180941147909703551561935863349804311586774105368927897987766095670372018145012444346998986947171173503969756690019799569871294491443136368067192469482515801341167217405349992024466454128977322600868733668304924019475598336825404173265266812070796029976853988957261281423419666941474798048471486205033732968653905764943404557176677118120204759147394229095595723415439062099338639025296155584571287188020938587310176445554986713595173972597331253422126206256782717603103791084541810194916460960229768519144067559093531712777006758508816468420253171067435946983008482817978428276796423371520694936730019004064741661155567555016976371198362831795660100053866728007168626394004556058942362964769406967058042162671161000350301000457781752527903751432004700497481888297294627193019721852920020351900418670453802231346312970729133882539836496246548469324415759645151006690530778173033035031208331444001403262922508911651880920562139382351399223608894229823351139135695529513413942185619171993254366576847062124888044061227980179627539757998787494652388398798356507072743547858367875837267489968440196358113740443957501997490651256642830635238941189242927417829018294971258316320774684863323826968611534932834440589959034087509340360030671423234683096298122029364468029334518925903782661010025761659760990178877488936481422732847930244536114794057497084850242737868508009654304236672580836313317285734944571491565143125424790360181836710716006664729831752809315336850548622539910318662411100540699555122149394315761516283700844774506963322775676034766107546705685066268702388494221660588470601021146822435275042027808385092341661987334608020087998325696452532810273940229648583390653964894324126467217910746098659232081937818446173193807066144903558691258184153928539750723689980683697839092019022414822739273285513625729413455819459945184003505605488006484541498763487885366011242009497190082968985002301586619846125771229739419303355529699687343065310376181065650074498952463358395650758446635039529497654089099392197616196741285759450643482224637157513774520718721958221767995570559667708305414515295032174020255223286518588913428421247502177741614204855970139598344787517302010630829489711359484123518715556690795019652055237422903187172003494052723983009401201771274388995896303085200605803303332633006989338014344595103908276666959746404188471089378903663576068251472247368422543187045580911103220746244591876021027257112339528083081663116997409899585331772422444730335461859123688887586486090837048994806562461060116887249504955425283962784695294634327566807711808999502259093235144111000049433725461019928425084398078765223236841196068387009898028363855942098504218496426582596529015114766873731915447168512305239102009802808782793926745516193514212061653140955879841832211722101490435934837881408187037726635764964014519821922222839535390576345772988113065286103038056373299598219987396279786700830865994935025964893676388853404262348561581725035181304731133697651721045706199065557761436007773648739969476608340498651073384718801868772229151688061590614299692725518538678473458586955434900734175454848476665997516920151598862980279463906645034027885949715884750729121711619488873118683089762743525045390370409838593277375814788447671514244433544340723765435200064923850615019278530012682140016684678864663727063296322891145264048152408038105883559259869085735080521317662819637967670286969221695023512032408739461138150931523714545056674796162665836204915622674032273431116400038156832734809023492096441876071381906465542465606838522750513193499942352022354663408023382523554228272025509205416947295887386131598256233427871910265236041877081046626804822568251519826721307818397806166747901197709062705571994026377556020692818543949158876693064550578954225015038103266732512841630990860427889411220594258618842427850523969771043531397942326179483657628419326219590592315627056640924089742658157629349408462834492703690881963995508085441168251821170716844393584486069877058409755785243130898143071190561732785241633485547678936690514433339530178183888297482383474069092239418326320430610306940209864602984490101664062072646476310441441516641692596968249451470589757624484289113694891160162464887691948274142240109908218551214495638089300012061070592696444161377457630538247245916536463777538456072535118273820020996969941097174186944456908612174619186038621427555266557947506187143025973296312409251908284139560995431733077494350085772748484114117983124012224020575885410656395495216502481161689816167464961987507121588532018423066984242370278412281858523313391117404342310188864579116982586969430591900977161055861933973436905050459430583925417234000388323769900161243176574605609595062429458372219942210638679983232893406731101238396860395634771878368667270735286393138482819332317064849050981136734197897301101886433344648988473111474517586328687752439055203474490500861232336024572228657916816726730786315236766787315634280504206962750959720349676278925939373742692824173796056932328007264593150776947013486497463354005407299869474382431247936015958537647157292779664784579006221506664678437149888243857456009011181389409329481996791868351752994743050547463288138733673654876419539442475254246061722024402227789070560203682580220367342836064931713094271214674659827300874578750905362686209614696742755291121003894137650512542255140341701258230024565334645650473045798670833453184784872165803642553687080099174514331181007075709093667546126602964139095610126664552667968463780146678123687066158671867109617831891670493916374158761989675796802425945768008427946428798546880827538500084520493762948731568873820203915362363389480621887896782684289750598031189091456884140655146572654541722217819070317035059997182438683381660528329632325439284126990755877005122968279508293218804806323228689981352406156848168970278410309554238637858966622924713057977096910075742318234334236651585019157420010935433489629157892752535223570999754111921004748143761379859533970136216693598914426928018243689021813316543198995506114067339095849893648472842622063277497597152029201560219983902957651030530471528342887096891131000956923830651918416484790898956427103179057143965878101942581825657745944589500506732740401587841214042467572923127048866483588125402577292159525492813318810916151222228022552160989082968083947807809953061645056682961564301408503882325653088991939709285295776743485398996325829279099307474468172078826748162624819519047106203348106860772968656687354747433571578980628726933688363519466654562117889042011282327469033940969754791227981518595122214243834981774777600904391261069793595519197321957739253876816653809967866720595084392055083157740947014394895278184292578908411475242488377789853175492870080473213642302467763660871176678474665036999166105617178297047465661166510711131973421328590241086434852234218962521560257929274818082586788333757977140947204347967756965669775304306350948782880201099825947992263367600710499838377883840421056296037079938925522221855350108166311356267374652439362409900634740059294798294935441252887695533625581288637669096528242788347159579224768463454675374377218939298739044698228263936383306090713606613689332684173470191951553471759249380236217527163726562570833612240022681618692333640603498635546185813007690986228320990224609882554902714364217261302668418184589335048482795901341949908684686296553534452387970999415723075621845659518724191465482318551364175369826046617981057033024429998193477763712812486734836243897678153435385837086204138298304078921497052253550825167376124418610511610211515531652292355499814717493565231886484587538859074984721948118613732608670698445814569533212250943382571338189280957804818112015667683603601696655873513954860729500715229396796606702889331029557124820866531920671191531753755508201600409651564328505816449620467250482939529421045180924446251706413150492297387203316988369519500683972088560802212466402332337270164959538224650324551569636999825781377325517757354789738328710744406647613904839047214297239534601405657762630763656000963151538336498100922020203050437102615627405521752438071590170770416088687982334488805092915422134377562580743591497272069954976218549082546709215905667393792163586142553781288614437981913750400902440730765523231683614331152547971120226440426692852936203777875118958824544282541762167624418469059143743182514613824077946644333383509546558214218464494381603142320590931212448119887476951818415155751068035019813900432451494328004195382316965826904207255230701187825708576940264426248788478299492117494048262019777147901233500598286418144769603122052830914870508910864310409275304976408642223535386924487294447169321320606916480938464677666740074107425319120399306359498004578341038110662793687502783670612677194340532964520982615749160433036221501496403091300656462047780606178854515743553956121819579915951861219375535059987001493345691195443382695042037722546455395331411051708087935970287661203298232524564560032061834299859489874009180942099554841777947696780578788248764595997319065605567445046276487690303328738060108841096993759889217523325534565829186550055322558073815737594203311842789258589941618622987464428643595781637627606951333337488047898919900361982198485870932993739141992846645064191205965107019814296598999065733073201074036498112343288997910291779604906204387564654566816816886777768345465668881996811692753611664836482263428777605928260852620058491171844675464664663774312035666417806942942158950345755615533862557646705895867073195372893348482937616550554756915149288072615528560207576442855813254575516467019442334554222211952677801467992205367534360640890185876541771290341120455184020463935557430968517528490888557683994156818122154385311259963503069058265567034465892889548015888306777463348658374930295658098946900342080790678817812378998083670153142446805604346183271805887317711117267193700807817953388403503619218263546375543986955289629359252859359849271463022223953204609132970294441367137325785916378601254637791433896947970602673374772306599763507252360746802404241878542571318564337486007012134214342899826827580980888844064755358326695509556809625244126423095599900212562325994317329360871637249138186268388786374102278864529194667080614705938558274815027174010574205650963840209340220733524220812318024027701331232341215674479452094684593634528749635793413382508107553105194628884947166393404129985226755166848808671379162933165225693227454346766432258383491168087712624234051452647779196016433731838401735705186177675383708610519727788560768443639145886504015259430108601435842523344216691394337832441093876999584470630666990701773367859724415108084832913411181056455244430552985002324653595600565187218196992970157421976566302154656366406249608511502313757213960809852215967174153150125854461030663970177037066008043137712324914439114875979002894618923764893011100178960800035805618170550391397660106227187799777519516149747389882917098128893680622298820864331010219077094791512058231582758486634939600982446558401771728111816372834485324503338970418394009579238445798306696016593796638776300218362039660918226998510456652075389998145057071180896196407429246239358200874064430437665220258865546505720484186388836280241885514824782518555550931914817837695928036813575185098433081087707330371607822073634672532833733547668742988547094103479362374569791424330713296349346845455376842581777448130086800390237319256961349301620730528039956315438072957890264420580322734000642024208583028059676980492733530232897030338516588368716408606668437334752331778257584058433468954888125661891240276454822966620117941648271330115395535960196712224804003702476780261969604474045418506747893794306391266856409067342551229027811826819744751316635242359839915858125205894485577082939502741431950414502247828168222899164745505995931629696476118000785870894992252424876576692289047957589588337387171718579331842280711298825416099238253706989487727484191842256430377150936048276533969035849178585339257316991639255883911081957962835111994774057512366337005990403098010099434175005485786301138369476444382371352942853731906349447831527180070330404671799347256921104557745182567612376924585279365652589134470687875435674980660369021364144260629628005091378412040867505385929973201884139090656496787112846703696096603678110048445456955548591669155970831056437987896314521887245764922774676336260546462026024412338865153605387643860048448367520862313508082333453239714392236717199344486481545953858232698951538779858975369027289514125370183660877417001374253557050490728268070329023990257065160252810334333766227488455268365794551827707072133091096859330712099514740527288131790710569646737102502422776046517862208849312074097410671697523419948686913678621762152139754811905235558589402152015390647845740464697834032004001807464166651748263389456859881628528376367310857983044699963102600191848794964128626253837194278210226089840751997683930873972008183531380225024959592155580278721902094475784910644888790114300587680572484746169452866666603616425615275872602428746932750544715938005720178404214474203082928195334277840862415401549640982253031363904340130364662907900571595430976524995665475203270922344956757185615927607279947061238636557689470142124070994951667441659250461497286715716842116347997595375734199693453408707026003770351215983581645196607693775686372222741880579108989488119671953701773752256404623931198021217218112624027738683443643898643976693062810809055987084933464695884843764269251021816937145535443025051847521783465972223875924867070661401448134640548154121322286229818703600356780147401324002724638082227915825740054332214051912218039777972160984343407923593372667581867452468633604437815654232684858954948571690005391638182635066799095792723734566554921788449708766668649070065428147702311367161303859670593057989190277311737898557659625989569496468254759488195908327739686070189801218456195864603346828435816553829154412187159772068593467708736834385325633350221784992757065833806841642741815446859228014957438821191466342720605333160297433350923685730729953160066781664993769690310044015752396329357159953202540481643870420396749881820095783981507884040903856020985872785467822107249945828657148335629814241491810363122344874827735792124003061120260629473509469143548312589607939299491507741539103667212055800051133856606689965423874287031898115615815275225468560043514420175571131849330939377416295518920304543518926264414969773597129692952786151526122985194653440997657595509403817700360631156985653819171962030751018595760804139661490613982697895453453369615193347802006581430202103011552634303048685792782957189714547533528422311861833140250135031168935063356700969990539902542427869595006101106459449003947981893522810704344764675166944078534713692230378401006712569528529058194438510156637327410534034196153394701681549319784702420740136770047798105679110279469243536894978316733608804054210580564299867365213484550071203910707023679650533105978565733501622204712736511825622110638353686402555986742213430097460659946830041162837537640269885698427964811003408542156687937657185117478594485070230654537406552097302695852732102998330070844462699371782448943632298054907188294844865454162689172190038650491587451154225402763030100074419534221364397779907404000079453797798405594627786559883892823330117252779639396530474577167955049342411678938400793493147274595529730757604438743907952135176577760063644437005421608081588111447375255457909386159893137504354159763202902691315270617829568342908055084632517962925356122567342061840560999568185115180366975264376261986877024088429211376752172105277887180234070549751125367128713803290959910283723777789050876278439492991155924565657352707496661309609261557976771824083293574978696121794401997418385771903436777875700295203070400813081017121581152602583613918158284097571300820138431867873452184974913653771364132138852532183182880248424524599175777637582261398055412115380113990313547599911856042271782305151622681111752284125306971630724823022670901329543820370242734146723383009808008789997401825186217985366619489799590794552728282007850910884891102857693659897535828015304388819432433308205869893736087740470994097373436883591038946172117101490685063210828212469972420498664725761229970251370290355572606372823763556519412491047020848847560536136216425510355035383911688167684557924405682042967869400618404974823769349925407203583921952444997659314842552927823987504424742163620959130173935999738533701826756586652417116719883906303304326747377982861938169064243664253744199079462251959539598648776929193724452231550776069467102058058419755552113978446622937494096240596951924068916287904842719730053354659115120819455412696945411053078460927216661639255178502031276188510985854443189747788074082003298269483790680500234579299748188364741040959878366535712201217431021962181799316586271592174971461422805686313200098525915099400228057835933902870364241854514304938909777580614251790728630751824701418192798961637682309353045064493646165625703823607591956340176673014876260636877497174407651775951574174373596675617785256105279329560955120884036160291734014244475754535258931266923121419421007284330541010840752137160661219905794116630756031943051260024652822363150648083728562623518949220978267233666240960700180103527530578711178736760951334817179886345229474048889874191157877862451768725764071033061602102926138704527622347604524210949372760030520056550629347874597048053003946216005226456853135483467556463947858973725317259761800877349562946445661555770514046681054302297972568374933188746501781374163633764161427349152211713357318114137328954309020569404293136102281520602392675084816242555927271881849890619449187220495735789772422987375146010156876903090831947171706284815140183153365180693904277779093180109310122430649338376615513988667470867335709271487696785499321732089878432109309298174114452148513169995266070046597040455234014277320969458719736600899207749561354599586554663100797655958066359962276006909894148907456374615186125027882687419321691159684357935781745694725892870197862027250875886897741139075886238666258731157305251216263047616020552982614072288185786218838340011906937573983049726045232435705481880376614415305291351354636939988394816438911832723463571110238304456932631128313832330892263415532415258869852848637443672532582766872541748753638859495708689841884095911141401933218229866924535826636634050882407445057774827189575775570014484688887148808963692133014093980873263195015011366047408874586466354830985551211080390591259425164761649090061561206341642710372998124485046074978167212784915510348166641464483378598716752832071244654577653025834827925027673471033046807731113608957861207635182730877288417490243239253080506527596074372184122120945507919704687392997939073160754693140132276087047484913731624824575655705002903763526858714578464819651947731069840416422538505502466689823304251626236445286637646651475854792851727412189959544152740352115022095706462102251172382134199838091404933825356524573000368436500585325902425519221758541652872789274862815978479865966620651027909900318020438245938044744596863186514568689493710163131754697077534382498457882448761738871910929795692139095891201178456365823387926159552581659178773676195860420942926708058571429558191845898580408155548642998067612608529419764409873295050065716160388137817040704913758016528628938447956155843208045961615197265016945255479534381248709717910437095553191121009963118804980724911360631022570268771056463329904031419422658960941605261456283824879124824533830331799107948676731413497842357822056183938008918074554822315689620439457938814069161926396661282281581372809831103756653847025115308118739307104197120870955836281401035926716393551985390413383139310380432788564046482946403258804212355423518039392079365560610431638619404509867908043050883382849431711897629262661936488523045882279631895451655188643186739683267147296272830744021621022087564479202660545007962624022752750778875960629907452721991080800735621457334620880787008877199644040128774669395701905187109754793312647162664560395062206253381528994303821308655176116764734863412800036091794899809484989631451125597490506110709918722046314469590500598720249042477100628021533578217610520589143758712428516924983739830847368099477407305550328287026852135008753163834509129992009035523738508555263025981282054107609965205692002212181164056478910431760724621494639007748505574311824396543859847069531275084650061913763359459347461381786147509348443265232508978959059708669227776239486794807682106613039823370473719072077492300438143466737667235700756309503143971192450342033295021484547353779673577205850417154130299834245537325467707981491361725345378467133572216032483381573801727612773269651328734113220448951352226126157117419863806866507214528613955956680957833259818144300503833231120941870722975990305604453631259098885303446619648492881077443817642931549696832491727041259767716083857703129093081192685678555484149109875010140313146852633416134570487536067159567711484857422561185899684562884629252664114749745286475376420016523373237819422708720549756187035349296368453789971065947352894326323043876375742875763806213223788929237798523430333504932273483319330952854078982942192423259417832595411677769432911346582863074168117372690477984068732952112253323189855446154040130536419003720286020924585734668143733394889404105063430213343947573583543100276717121283274293015286072990841227999782455243902512784776548231751445111190874465178048171118410465420032058863894785899986102778698926522969313083104651300446211899198959111472170982589109586611674664624917301797200988630807511747209843886706227109802452625909894714860323271339142703701876720107092608292192438704237756219400013289447110114977552563536571404682255464615052058869850025563082699736497842890030744804948718266695104482123854147008234724983593554511358937600882565580386133457152939492936757868662969389426153870595062872127668509164915381922951991805094856190842953538920807166108603295356893544415026222131606154852547345514769925823042241641516618584139147935171776004123242987483915989570780918183944410305755449025163804217146346659106639545268836899274579793319893010839356580149523997214864657678791922934986252627179651583971082314760638255656349048669915739597703253674063860282336357389890856871174699321025372841634975029177553024617907982128326908664375730790696314617469323108759099496137296045588240522201286780734320187133865410711738904520517118425580744807617450016377482356018365879716131310212354471054260159802320103955974262017677352356202228627030481554763699888348196611152813754910908674366985580349079095548299277807681137609528013116659972029644561687345075900723997375929509540061877332284009177295311714310774873865674681730482371739109122666319659277559399663470268681933992784990586900035631723801816896700381025043097746535631257099671451252865325141766417569358979264429525320273041544266076590978038426286304847457350347859557740062244536535147304786734427554375844050074103149510125240064287356257107071929532428864745852645566555274341260252027098268903190715006451743959295260774006661562557162808342055254168307121134514219274586693009692009249622625189941133528657659517339238362384115944863599906783191173316898812122362544068598393818903112815553388331323518931116680558536796339547148172704241446095588417722201808734449392000386992971847812725193688781045634167202527622049139177289850402524188001852851829022152509950794720840288761960710564505787353888039156019916309415876720930829678864687987506682456288220718083097837058410939663103447708499619081356502824221754901857645737720818909234415219789972507977183478117929675429528306150865355454997846372870848750770554127058423769517415259281784641892852171341259120933046541554997807722459163664681162776419973059685897265309288292148916113053396272961973023974804094368312095940922250367980167810075786776452978284647553336905704353100582597511032632799344789848151196702333570575328131712358588563613041871393579848244581144645844123635498057365133697924899365525200736951467618222180836004789159188697336277559997019696084892404318641708821809418859766966130979284646844620192654156829799624508892452625888272229477289296684354425161878141665021184308521006614763431482732231301368727745650791916730572331012261630378818748694364559207447825889635926883039050149770981354619703757869195080784104822944843727052411478241115321755358891460807839601417239983032925633304024634653393962632039451234760936237962620690970244969746440394659020338447807854112119093648796105557924967692481372675158608007080060989865517087338980262173030514177462800867035961336007160026709721514484876773801392171225725474947291607007229592227341978733118892913429989684987225939370927379626790410128139654353013251974331690858843788833904785822709998345215126548557572287680951491543098036201191466359816889523268068496498129977812714602284220114541447262953390588440666842558713018900213642983025928139334396682261603435696464725415304827995493088736072799418647251426950933505414912656866361536163557098064673131746967675487210592471755841862157518226942510990171411390968244344079173454833558989221279309569229275042614046684538461070353846970246154796237380941631991054216521298024398618978065137217600088277518988654528939341342486901199763299397468387308295235701234290616995110966276551614600207366701035065644527897374878873715221738666266225894813789700014562603507653020054687277918575155193810973203511262928705257338198607444678677567478356048463526111367568673018258623386937166306233542595894491457275170013225987276939032918009729083910203786127667651299970240995970694709570446181978997080327322556506259784402173663694068131845703754763566587854145824906302973057523947427520399436860234373055709199293441369037917109813295427253814004714709232259990747752127603513477757610845027519359034836499940822279367821261688378610438927411574841285126784406122735040887352594866445140553938259416119226356699218659915954392612730707099105682365042969332093277627774433059495154377287465951950616558191806513884325472645324247994905311499326922894680656086858117241434950059816334950337077832674532179824498517870376564218125287988983264404378632369299415854162078867840837370187207497551093165617987285299688903285075638529185250211968530423353968316517968217467634328609719323207153837642655680530447355976579966396693466581848608114887398446341544100532512113778407111746430592602921775112159341494915045312081422918749830408638534650255477044250526050062478343571073009171026695442531265689003108886859814255046848817961066111043326488047157162767283059491003991797765070150735419007477354785200145939840899245030752002656852549062529937529842060571757340452714225258093649685268884237151924753475034964690544909565364586679747652767506977459039929365329864229596843235443290213544976718065397813579254312851231436138218471447060680720002525047055861609396889737875252673854298306736408959239592500577117463637220757053442040483215291047468946012621850839057056772633013193050803637628771665804049782197761516139568132417414806879893529982491380889131719111907430215931844252678493774349918953071459266268264554204998059123965478512524591559775625409415562612297016142287137350801913297842501437194147840402402687164765539299656741557807718133865910827144130907105460101628894521222094237770932438845403933439640904907411914443661778977461473540680925072419039041795693219934356623780687840367066864762937037264920595521555934699933832447925898733536967805057855531935531043438363746789402950754766375120748595352242614028705556170019793722239267827981857107053839580383344841406535220615288951514641520863397728774967498915123306807497401463088817591996835411213183617512524613094378306301098323988253091313214428355391106669857948586363547363859311957853779517046963595517075994399856599815959449373252671340202923050529387711259512458233447957897927860225261388674411087652907568536330403960783305054353762332152787549895139109949067073429851946474322872888049620381742814934474029189625313192353599295759838663517368985558849725946854489719754344230142529143966517551590834590076329859029306468809228242683364118426976747042525744093436660337457266544266589466911088837966277646465016030416865332757320657705846920745700912406379659522814426535262412769200837326648885481106028055240622293282498534214184567554929055004229353516235697438507028881837568452220180052895422140569994568866240868825399437072230750274633722574195369047075988556616064626214832267980666480406761271563715625831834385913123908059230996850910704466471365798729180781120786209762695045051676984080879970603853261988089742166950006390101482564223577533124993783569972331585418974034219740067090741269823621362439802351163541784412741237189781035927371365008957501868161957630140745131899799929717663038214368569588860723547051212735824170217501006210135358283787948427569729137469044621784897642795373250380726273456406987680522268348605066103969328916433263454254812391875947358615255963161538238773601982181502296767859689630939875436173036708190694831105947638528548342243611645903767564665905961275644506393379511001668225822862844092120532133820830502470276617434789487707070080726755297492933242785326671037814925529538961315835597051785800444127843835308506141755519388675956544849999343548789973070404063641244644468244252138278394823335345491554747894674911888776912678126539180404300532209223899009662252100369520579827412970951742836863528690428997268267168594165543117414986255224111304981719692375502927575038752527113499471848800770479006342220379901279540815495817988454632446574130023458487387939116455585638695051795491430707561112050638256220403298254172699128031052699218508949437544381631946040284428479666612038224038554714742196039725377935819328411496440978833909399714416067320499199792168971215671267993187641804589520524939606204458814801631895766987498565804991694041632701485011275860241965478759842297420163275911315520021966874820540434513528355147194008122085003636147646981052530345234913321709147543903821598003332828426321426405057302288545092660705448934390674380364966882752006398131350677084142847502325009902909464219464554989429999727225026045562888432396673318200302783486249676655116356379124740643804360689797284712688595311986781003246140550921375152631090802433716892546443822833703802980511735554216920429223503016033799470644300324792881474716374893696541836951468207223898587210522900735514225208153112983922263665563141767823887342693113356137078074320408445137762390113151188990326070018602914624618024111322607430051605475619925662245757737654711470554420638256132996315600089601167997164762590804580095189751214760130694645271381265815501899244349658423474776863600957498147738013864580282816137175724269074995042890370827453877755976453258783716268649708568628224233771202110918801225786146254157449101378491671505509684095899307636949094468367358885269405409518650412673166339020855781933209426865225170343055715876161829713055326553096931394564001158810748805125829244400342399496530004024001535942927166535626934515777489410070283273092904731979625637351108191320024667008798824387906324702278073576608925947970010733606512281810649129598899295565048823905940164602937325583373885786843855702530010526020497827527177468980232609221431393511011508758749064458290933645385371302160036188085964818106329003368680097602952533100761661645731562179130411862822127431047928255005020395978056315230903050337727015601809590311929014861099408384063058235517498868908651233894709062901542954865896796080007355007509280001173447694073862502935616716455733308128792213364898042437383602727368182588282355941842607195679103148861369612310176324701340161380062036897464372135941374168745989190216354928086411664303788134706946429602018009659175254506993582832604627750863763812839796172652442573645237955512977630664460013580791201232346035609198587196904096691900639335386979165731023182772763398412007767224542358585437122543056578521141535253554483944389884400252917314762746598641285647071101624325334261521345543177595230455902476836866433240970221512304492829799071986020589906267469695350453403957576342773153408237089671293767885608046953137777551856919150878722439668696820091402580221183706840394390198851599031567152907601923118960609916241962877942497811340115455543054514558075985180020753274468831323590203988348468500280998055448600854590213360872169692943497692712960134267455743286808923280874203084905637146932704373767943001562812269925563339967220133296934208392854380070036485085966687821232443102739336273893476610307900155447458615539931997982992141653332889877363415491084305548852750686492226459717923368933363186066020556354170421718125029235591770658568823567512466574414344198370385911315855419665014737549614162946752386877979176302456282292008573768294139372704112724909064123720687445681029042139324647009342744808914259878959581496454939389258991861205425592696508942667512172297662711234290376804199751114172517313905251393697144831342344156902711191685984788741758426034768576956025943280462012825462889570875848777078774790378337408321782526516032072182003997603822817363858694836548952937047642175817359994327335121872720442182207919112276691313434563062882397527203320546766637876025066242426624327145692757827285767142930706574890100047791228202185398009332375110145543504502770589766254246788615257785834680189843178854320625381959777291570723291485129748480804006708635200246403213519813987174491934223843788382690752790906311396460840543203991663212466358755832495095869001544107571411195370555010799165368373693202559086627459429817108977531758686034788289506780990210331186126189709872338362260561318205075915869992883133520198461472145251877264917687372010669190776825808337032998458590987619292721264152906261503855075404016397723239455093844469824387925417998322843727539072794728894738768018417938409491938857393988166978745993333554159049588455250568691601739895973298857255318140261016491093334287874699644298473982088141052895331601710922158184945644499780105238841760408156206884120559275814163409982826484947355027670573746683848601755932582810120785928538088729644943462647439194414085000293152985180688103658056802237550554000569143869463112430155573249117393608265218504493513823732295412255537935338665412427748987671607171469592601667510650470612432646507790597933898664781616121720313033445827843071253397174223581825150575254383072194864658407268402362537262168660797052610270089127901816203720530944980649041975931946381307990545451543762862533271942828627143249716157127886128666681550534880903828077054381333961884021695234485088066605906486417546040380268683865273628420922633807479264042488425253095518632018402830468971576825058040711648730646614880824022283164193564357929420605891967327343890108836309221937960662331158346147098197915621916903859410577405613499901053551942338972951358335847690913757352473875830317976303649283113230768132341825776723191344431324807393160186179813976375492868433446203080936088798660925383205572297850662129023020623063301917832934627720901109968880726326040094399158370437310861432242936788335750847487520442536499586849389881761173660784415561259727540485912599141366628520816627452246307265590823190671953948990201648407465670850678341901574718473164208106357337223548143741972341592015350642073575777008543462165102820363425239449427774247545087967735431380610330804822825601880349949532623631265495063119666472614261543185392404916678855782281974964205428751283161922262967975709369547613021540693362328520993632248856348756261910348615881950844396559906234037333921898689925983221060490071118350758183536832839503127069121083704709934240746966349140938151091718154379982608919947012983214251952083128338714601016224357908146114594842582076306760529070340440549519122968536799479047793156076379609472796439259696967013154207396543402956616471570285207599880188582115390882075595293239193064511244947187100449162965782908108046439846196723444174493227978794296117467352382673146123660462810179988024067570726087645820277071857358182101760452697620730599765037485209539212096654358294172043378511082665928863867286929525129349194449761125838015064379718559629709751957357764667147181177142791848350332159236592447994884942364555869530933709313531610580629362990599388022395268169244706986467953294989921397872705859343946885676349416570391246557356550205641726354273888150898683989698852721306075651103879905172578281491609948233153953219085452878238989040135656293220878916715967661528470381774004256083627873811777775035095938866152294922064856490910182376014738288770821657937257680097098607509604305347095475579853679305242084135966972480051614305339010616930245682338609520295830831362582642666647140463106350791139170006802678658787507445408713644617569766998121491686692847951791197175626473032494143976742040706747038797081367838638553368419547139560731661343795284358058067009121566786362639128545202559909683251507780651176498082254993593085793416144077959089640056329409117992244258166318330402285163021858442389600615427377604681324983287597506017627082413127821559802407172248369067014094099254545958843796720869088602185249626735572156113162133744568221879399182057800589254473361272559801885556438701231678456757467171252172902002421443261538134128908720142193583638007467340904326624362009556429055933803654580324718990117392559103635365102562623698035794170111953336321997114039330927155785530480698127292887082704996904351977955670112798168910979568794632401348543737223767051519061542854116926898765820507683078142132797321665729377752590269185941837086606708398925845229067458627362223461849732231619932491402710817510773899278199934130138466683908569432753698589657019130866591840559175736203046847973707035576266657111500091041470459220600846180221027570249978154508024110937956370768014850897628610006804055674395129956832696700252968323019295498865411551309459797975290052586334750412964636946525915902226092628774938052123273104697079396732568994803441396568357066347434438440634446336462973843644073983970622663171162694381609715674978181303489197874814247939279015234213478724580984208442902899032780995718138479318473451895095632882813558785203321618026767739587007998881960085903223135876263046742060886188728950648968077580984498282500891952822916316139387635001876590185739200854514853772295506518309971881850344068187034232627856007588799997190168863185466517712361910911167885828092574696492435688537774045266547628398309536364516691491262248966411806214785686083607603020796521944452885483090730165671361804093971395653625902073209615614206289496585776451013287704783216988400425159982791569985352275056173808852978356189138381472208567024522096638181205906821886709865761691966700462756099190898938877097064972222836212316743867554643971105810746282480960277438973181367288989320953893628768326886756884500123130098891142550014847413059091365969155155955617640775907331255849723523371334019802743052980430204846406235840241524499152891020478093138581949286311447069362889186348895648243635787661142991051792782831629032599968608150767373716758913648783725666819224979332381506636570584478978731493828286950597802198756243753851420208910049491581160590028249190850901123910042491156846555400734755903314530557486751006715052026758758810139585169577696472914974028191662758369875770887775934181401556626240342544541152684993882449001700573092473737340449939405957568691425944463659680132706614286138537652565353726097103293336990429349260259438119507740688267004429325933186840843255080088607041340268386739303307545517236646383707321830828113477988008793412359195123279965195963800376171405692559724794440761556724784641126011323174345185343068344738893892323156604513959413010766890541417252438838112177535142697843312619381523377424040092588843222069949571388671230320837023418269288264136958825135113521702877054444517631641784624495901774694697467367687208424849082942815456830158035839225781827189475716498655977780344252325074835966845662036892888565544513514080167479521765413385845550095820009313609813430326429039749228142468292269752615147496785349932468016132489302466597440162895210931803660465553457033959198860669831039390534241544369501572123603501843730514493495618441667733988550079188254452559935106691775160785490655163395460365123092758326600094988688680104255041391282870673905720933491272859473213021793728427430158829596640936121633601040019273478907566098806178196305918970998036175469662356810928806480751990505415909272366638066122942435648322830042876052499221422512403125831085756567092411984350255414204557467877446064651782052429449012871473708588526444364779666223561370572650883504673193282263585281514292802777391767319272745311767248459424435952015693985804037929443148566870960394667404779520263390133252699995922950941385859513143440472226897576096589642067878964984987844747415466526288151997966692643922707959706281779583392354181005305627348254592422164819670268709174430264758603847584955967450037915720456151019212037222060516236560987267449900079721770024131946755634468939953558813315611521998973996308674656010695424290219907762877608743942713810945563747633810669943433894473918886969503966023170024979601876969972975386788650734621570485313213609948634105753687989435131467025263306529471841435260950908984855367943769237156693879974671260499215796146736107254434622373265307389192322721521243458894010376955610048217553516206560891274649974088863066364583588397321815545953955722214308764855847218846616058733577226389076690836566777446641057636094707045994779859679959741858585014874641059259860017713913935085643151523215759571588426864949677695051066816314256835513004648505464856128507229665630245708407560211989664777342130224018273649516016806257609845714086658709294209974627333041859818645906724537404497453770465777919877647116310295808162620275722344861083946289276233824980126527813199336063480070147126761525556898768864671383211618362490076979787897104002151279202783316382559462221500560793217680735409088701745489888152782795244336391433166835941939764133918342752956383330286768628077584824505547055349261790885888075038817395062408101771848682511472577074844077284095910673528619969144435367408244169665209474377510042051563825188261320039604917603751799237066222950038089064457363897955453795544418861730506325131899734938125460757019765729541849712279502525839885957211280907805870754010822899371261722568260524270850502481394336263667845581125900541995645396730171796957848978713288244603610186113265645371277598643634743431673498877942236790888974195923590451908856830239689896069167058752118481677649635198740679717941767416298382741852789824645301886918942141143679560450422214357475317797888912594154093082124421178442688936078798523690203529812526169577806886737126080634687303035201613433995428313378457156308646468837607597129273768957670504262174065379177001466149736943910528995800973710083244212663876348225660845714876056076292008592895770524600136408796681959312311111955730566185380805259496858652538279721927973867437231408469090267671549534382449091449921981667626206232126357736283219393206209752868156361811900851379834493412504002525566724777019871888963477339116903949113169625100096603697492505992769487448537273087810534218806443686273355646505402938545011341618150239668759396906486431910613598336070647278794317316808299298566175872738061585235245383399894899880781380920951891308339275718448572224111014322376627175904893241546842646785795581077851848500698739158620415358555211292638480149178727827638833764239414912992564421278203836826312860306927300310824723678043599205163592594744648779426387585935787504976086165642269709013020146954385775368726492973375126688103008192392681267894142889860270706022227279868139564595093552284003332111784156632489180554836856418895191922422219819092173077314890581839186535097439453979531652667549639039245084592752353117695385254025497942272422741049467164402039830973367356940693093477589857709406194336473116810169468525189401788620826951211150616824951015359792263656934859730414971408888654734046803230654628192299241280354026769833405009158252451783454560257300227933088690215895451801152837858426520914878718324700068537080770247507731845816076815155699270375584271931630225554268870566441590812967947918660957611517189152969289926418967545595104929678174058883112528973250100122761450960303436365845099260555854075934864028883430019565033605173763937029457116452157954112839143898615214299117597466478208895290934256501185071559481653558676625226877998884606069501108087290335514372258352921631898942621900785382854012951411444225429329774580790924207086663162489080081807779915305231613974684938421728840637427320197456316360100049271905644658013235372270721205866524470684134035087709785760980877948734097435986022007282766349207614104136939011800361573145037635909649946173529874201827988420064249304946979012101657994832741043730100281984517945272439109861067713737991881018473113437024329521530026323711171851476367555647189034923786712932748548937846194621790329996145850839828948741448066584448834117190508010260386293214135960621851903112832569437736563476492199579699687479608546000208665961958972550956034162879154978897412815401828818670326487002809165559498300952202833995169222898237980064767481658252901887214821081592676424876277655579204038836995445048172088977425121415466886633725776864028110709301256151653232326872823876721623030678566748180211896878421302143346660387946880196908275425585979740109420940670162295514095214777133253990543160592721140926287023417849593271486083377080114684463217999791857951685093366389204880979391772561056347001032164311333846080128537208381222439933702017019093335206381575504851944515277631129225437243523066445786050673383463812104440676501388354498038177382241578173047932141746200854047675563495422948334694210435939354765453080197448551566542118876163121198186320122075534638762401747703609117030114042386551588236574927361828696848830866466381384872701651211012656281852366286931024447616182247706817574299283237193188278101956320245067167475816232028520545286759140782113336994021535086176081636300052706134542582675633102402564899851770366418594645671195693852638563789422365113414650532435955581560199036690236782177913609796257425764358563356043755431777450185471658356949987042708204471697433034640990818399606875537262820678973882023924838220623143050034194351099878492360030562105848212322692909958153147776588913312569664446945945347870562612304470311867644543257175308869017106377575711796401703784006871547034755317139242390260678107427583972898139663621308736535479427259026384041637797536966885989964534261710710454125127140893363980256859894883855735189951515336504127100899659918750540765700215715748515324266923440922761202039501733102575902886625154767551003790266642851289164895336787311639476976147512223201886492833184594309316509216666285929083690607797474526646883016688583113211580298097646906552361876224106172913351176054309070445951269524821700597088138918818979259958027031490435125563547022460173877014782265993517038240052690046998230622038563918031627963642980186971266491537557716747362891195342748660763129219374833004540537586896417941319675885741270243779800846292906962738101702866226525415692311320707294052287033564614579057680931608874763258652557625958567231483234772418818535939656343340894670370613529317955270591652425335838333696163185429178130130812977733582357552378523445866249737213838451075102923593437868562051419025540568187945554527127638299039461152109314910098705330172868601210575425093208496711717079537186421962675328264467198531825882935893879483677458118109184228830633914208475958268955645433337860923967212668997604752454156383226114453960757537016986543967649694990539247045314904487750407876516107956135536462195412856732124054798344075459674167636695779450387542567580591814966685990967044414895699925292484277362688189859434193121617659949585952285597477538532005124957976526909200061244233232739167135027411063811746518015423447855260622118860743108662704138508931992715600685777676975265728313600829862567117993406816714813350444126072336293641898299939224648804058825094583056878127991238826837642881079561708304611407642357628571407818286227958799598485245124873664032059027238778630092881574787165372640828548518763149296362423355188983195704400771771001732733080557362502619572611933167273011432490463162963487597615046737736068762354898613969722032693456462231473118184706763087627514944316943559544137903526926930015711690332373629978007289549790286161796454972967682415222791807352749869349818749649131344475234328569924089279753416182511642753071054324617031723416904179230848480409380721202033142511722526801865837484626221882739063252187907395777150535376478066183018829112920479164956776942274748138013428618104864340421688055720047931469022805143190049697701100625755979775785569520748681004409228187357639251241904788558638716234696632867874445710184525291785783883438786997450341237282748308486069909839814485399804067054604037786992471373927984976971629861853686131308870968253078479083689118815372930803468460378808016842952139512092789096367856048203232987775235701811142777643521964711509240684392604360191612331425643794285619511904436460322633053452704137797956261969129120162231070225097062218529573022645556865546612785837515262463532132824178143342965325608053797556114982008492922621444677607661098586836066703067511578847726434622516515584974444730808767039633541730972547582810013780762514925458200350553649836061392534130415747742416483633065248941488390317923304986449925790808706740217999679089896032553015877088281951364153921733139610050960112742901804000622781722313266277915635640041693968130281345507354504799096258254507816294089060722580245996978341205432890010522156716753120976329008813305122256773656986255990600450491854712433269107425678928723909498423210592862208395484675467397454030669468444548418152946079422002761487150866576931560791522181968937263505410628951122237270998143297454317769899684804840580916925449922074205431913473641795174675785129313749599858711374737971350215081648527412403357982547565690900128258668935178195686134869414958123832085877282013906446055399195411269498909610626774130910074777938796031469640357326347388581669026733505856936107545546866900410916238676656098294025393041662455740545568759614954802865793699591383241704313832859639703962507561416890811392735212004383455618347651332413665446391673895222182647808551433538487750067079968852578039106855592888632077321708765830422772976287436340126850665682300850320396618758460466851607546629056623354453510799574885149727927798308442666172403074471333323196389242465547433414265309478282958542015489597927163345719637197842349794975251634077590723758095396849129933727459095811630565267705364329748482438332175653351975839949718485929786318680587696489983961660411546300485219308826497525303349861441647068567619764146461676734888664635213624798594645482826504898184807462035606993422373364363264486030153992004457251289674064806587449790026628786718920353527303828853094449066696764243358825940427282710063093143030593755568656915828778796020108148655041283136109791477693121399217608098411334282043690794669678218433948458836791799082687954403214170645201387370511923791539578091301084964055369271441736276723479114534296151189529976161172783505958903771614317353302217604974800001877194030721354492053014165168720365340550121356882799064020116882758003341027785384071797544384443251411881032590833766512420631329627628941403837315980524642966873670471746108943045645345790095156222010001452239491193837477762014740364571349002641467294271112833076442199336003679757025965219716109523909416716994630074594616472197051446426116307277600605336615522759095850260357043329569897942504938468416558084313122743371534367626464479888180820158570486967979354919845069790287809851245423488582565532194262179018595733809919375325084360769578552083363683234972354241923678562794184462816542277022584886233933039764117940769868586041733276069060297871271490893633157003786529833614681351333490586934064909830712958437536780274099521260429490065389904884378981268902006238734038478570264457845136281097846146220015634632796273169069440784672022509718239878181677019294530517466706034822107485023439816430530161796598812563448815986214566110564899184205940270647191138439555621326298764108189012988663389705667965970961089890782101939841309714728450298328642604204849064796309447805165390718102411614171970090920488264941387362732717410730604851738515384744210502235450873711070277845577160052416952995340355587559627139811321368167786669167016084214340775471101418462791829521931014599096279650428032918778687350955051828183196227944606178851008254080940171536930255213552798674203727752954792513736333445367068949995472465918133595433421051220718899193090553271281106847433825720433547740733899411521561801346404420652814296030251329923005973892929053294788084395039273557338057216646657351220035341254411446000480909035237411653696148254533995485179606335253573429946268874043065416839615961135119420386483383872993033007395772292109112040230840721832148199506408156976344932567923516762780659547057335361044378573751508783842598895522234509530479246703580278489240344400261664644919966131850961779459392032831323538129258840590861403738051971773896948621986414883956585610290711841281052124367105476659080534111486483277936771818416970873615695758231092015416104982351554936197315665297146281678237624512202392245941808193400729090561961803596482678327705699646212537285118790131273602976185063117563676255061600809076593465891406165466566575691376183276664926466657486742753340139451607315941882458958663269385428413211044373461628720248798134593617879582457878315154331446696441565066563014856499665128385977238664013997786508091276996087576142637916899415443408142538513303069251182957581013548496956935942659295231960088681077568253247388003161887771379846766422512717507367461702976678805891540448600650273314818322551559811910252959265512688937738451013853596025064059765130829409979561887572398725672722953549438765758439984009439479533082636025412966475353446513510000662182569238876312324509006525958771618565930119645154819087859905295940112870234493997364897189442054970709816778728408918076684727963969034357130113298839348685473297459896197952136970299503163667681038527376203338845697790313277161590747947875633686499961854997217966004592039173527646449872007213780774271025916622236920400241213484096024816776240384852887805401500965357086934573413997864905254075786107437829441816009792041098995225140923691909433896391273225678697074564766360765320746214010169934915341552524750091022885832292268491218368415554237011272578970017173238908619240322136151614961888126013531037156044948063074285158572722324931253209069152117917848452164586669575905007717464570200934408659790331622599746774128763005796857201969130854992615226704275890242787527579006192886942781368446398165084975628093207641513354810697504175883122710609696062796931612381612421420413689357215818330150937965613898764918364840036098277759845974620363485735381488129210686831300287127222927402240663742526877306722437180809378260954819351624282596951138227817904666300494957655102070124595150279195364365559080947659624706523636358014457066571574792012090176850189185412161554932941071674248102050078820758461021270197128042598769189229192676209375112499762515730761320803515584669287326446898003596255937922607200203815301020415136996768705530153928956226884205131271483868293696534992455828364022775079959076645245016473282808252741529708138657921667800818332874147669538914126111995032380262822552572968512284559213529182952247281017339974867123684023132385934907551015133727703574795326811130444342693705273470054985980798223061630476794831247591554043870299223095522323206692654056593969502711294648418020386176190863081840933434596745172817651680470529431416791249841945989515861104254395988079796849235550357410402324234020630007789531831143067121039469768707915707961426268516366054748040950393841771656801297826023928004638835719427644369024547449129351279037780768280375386758039911290858961575077748713098569838257468296290097983005847477788726994305887495450471177140684507164973581038213861646534673914286138586221158176784412605704736752690694680593301888684479110936266765156399619211493760241893515736126529459808155853557309369586777914753126313615923935930543391955594619775616185947157528197098708197317754009884059081788103548083203283686138376131139942860624308621623393769049027333407039942092850620475079389973384521522779599264092056336896477991615421882233810789994828520206941899885081961620591681721531843207615528571528591798776582179751940359135344806665800676331147733791485796717230125563609123700973363421466537710338452006261933976466301087609171884678378007438422096358675746406117142228293266009705302879513571610968567566702611177828584083936741217546091094934793194322849554878608026783165056886792886101587765056778698361508041938544224253398067576359688159275564991008894193375458908873572131789599034782074740930457161786407203639280920841148899667166627289471291229246932484427780841314705351538468116840138645785875639738724947385293694181974240281729585986447099619367446566723520361095884893744525659306728933277325530810236978532286425648451885419448078488592728682743696330850499258874914412224420863929542181651210271375656218899039338917611635377236352094280364266421165195413778642320486392621641733044849852826494632027505238811458520773823217581182164249440040144629923540261935817445629688212895486394497497501803862882117522165313389414942160284390381301013057234816256407499539147864819951316105603003159022043064523554579159080627978342740349868174842761866059617864841664156403602417066588496893865602649497830139379573771724308388149375057792871620570174799360066634794607528547024334638091521743907619972133815253348613888827359565070278141821260909220281100161122078476769323399950691335835930164922759230936552333318786410650901999394623988601909852747704587587317687189731313755751869205165534505901928210831438341822259904434523474058292329268524239286964864015204722679415210831761185892802149346523674286086731168375606484056919433578807024440156535069025695677331635585176718114176113840402591536926594318157150372710208988711533635243358505142210562074730724713133983116503855699113376968516577223300574484538187016005556353307658907506978551077451457068419847081816447238739233691778556370056763298931584408443368699666442977050334210618469954743539027124796330407756299339991500148328793136573211841613444718964882328317887419501868760264863539747041307492621748458512291006991636190677480763136863579306867580863717131963697440001981972638370525883635976543928663105210142789808621693832780783719762352303334087554004178188707903394779630563256276638704915007354793453996038233796214678400344571804415123568164491616250484760259675276996102673445830218049293181202179659273203297586944358030130261795548866234308806524646140363769941060544223723586402261481398176634122508153005512318251753798203116227318423188448980420008889101494892777394927435870770863256860285042337566268407247390452646771242131548535662343198511106760054542600549096711630524029426475977398572830398027321242225887903228662038665400331522399906840689467037690295785224487829524552134497264940028308498978347147031079680357879405892100815245953348745832541816628326794081477815025009009277533565723728628372591303692371088511344752116819296100474809811138086929394479355485327345391345756059991754901488565282051155602027988174890828184139787333829260114817299106119964539012391931573838210192727258454858487619281888414394432028991424301867078876770154546712303645846472216697858237808497033167381166358130548525954098259716209548331146740244889171880185239601937515734516443936689068466393552619568998409855382009168740812743846289284769291382735477476859130648770069360726041753887868077951755652310163362697098643086782122952119585380190498452837475215841984112565160212609847876080202363110302993125741511545493109580506852412371760951750224907845464644722928165994527452636124169284733086052650752237151052099575791053390024622101624777494747619811212815196048899266812294000855298947585571055680882876766915448848781229767894370405802562023788859466604799873672055179070891628815797579171286682239341338090466369322904271897800678518969879353098924676611909395807176904220173049289725657313132118848954852054700964398459481669185767067538902964455579167175956294446342328060974854446824187941651687388830982396684720277956580219620627330098744381661589416445668124129187201912272073488987080472331347862913219415900223482904106611387448041665505337021051334702303555376334618210651536741036428235124085902636378374528383172189621030090680300193463281162639118788729815620622989335241511894275444821328633063664471494726587320667029862875401446072078618681688723837669160012195919173810322352565348183203167424202800983531932782143707010761998826563327461822539408577111051532301770127396841249140777730687748788269632929268008250215167270354312258403935469872272722522281840469457248582629403800241556084371402132223176744042350013962924857885077446148297702868993808134358435613810639767138168473076929226824517805139544072424486335108180981291042438872557502345182208928214291039664792021787175740694257269166088046966015635373379441933108251864018584014516756756958599491212956532105747088170790320458610123195902860671707485750700841582302686428116338046243412169945830662783072542292435480672210259863320271699748900141997688528944949928662973118258907174479070783825068585067507653250716410708099955041983965615785305139494062226355051280131898612823291899961369351205146444145325795539923822941181856952303795216965908413430138038085019635556100133328608045136445420770411625127245182520878686140432424597755718374978682488869773937997330409240583445484061979864798082987759655347260408871340992250376647919415114301546007318184377854708307595679148236738709766587607368006159000261561239125758071298886062910208047310788573309543231063414791738403994051226862594981074899202194066906087039320368710311497898553442086919311521277763511321781859299061951088341605572278021297213477049107934429695181830207150560025581574475561452236010079277547544861255744382266018878578028862666610810009793258698775761317155740377683335246485671814004992511620186259681592570367179474229506826555218045973833341482809720662848007660621848156912335034125266318956863264995144891026162375403534037014183447666312997790303334355676103400097759451324392110173692090458394099779084426012680802399098494845058869909680186099189062810956547064358960246279252387083406455314041173108101273569988065318034822070555805487768578297291517167675017613767014960466727572822390900709761773855334354014799014346400435129917072429980418004425927130726472983034920226960784641709712272771701866091011232224060284479965281425376597016986464882889060289083468308460267006843101673144974135575445081494159826310979850866549456621438928263173515475107793562043905516530579774712614489418073604782985973306255609786522804739377321960617370755170254520161204358176256046720473137343544682268188987645352835498936531279521162366000757791346805878751121751540049526151019202953697932386629303684498795865692327424135200889448764780404280255649575462488330804678477795766581986376223207386488859029418468264172539108518774055856817572979245878632243461141048947378483405032117238866439114380919543105664576083117398636471925253519343679528233534960307945329522907308404105547493099858102782013125476456661902032718193769996487886237912170329363266998093829316805613411210123043791906428452670659379920485100378398703865762111101492962126658178226547963294427925999093006968236946933611500750334944948260788503312022328293339405327821846157919945058517813933076712369795806857017410514205279371535693257204335694616748268469694723132620378664260295935362610082870541468884622518180818800614607658626313160999841385768023653818744017696271957444365396590395921591617013438874831611694938922994636321067227255943583910130505331519024729362603950345492649957020260496270692327439224279811330030948639040123445288129529481901293275969086847884732503871227813762119552516716414394383035380114907371420676115444161502035784454098690505450808698422207572651074035784734270254475137146862277476131421960316729526609005194349535293099261711697256070788016764663879736896021329717948931806766973919870848247422916421721339717142686440449893756408521310580610798925159237784159355438941772406168259865127459263785012161018789328972581083267081175516654450832628979875684159415227996741461344399882826589934037937182229924174231214313266315741438767953008472803057096940071931957040317156595248396977624327528464306281732612578053221515416721553766830070528269700113005372629134317167622409132220127098636742446657450587038448132063657446636846315678154070134100750338476332064362206223298182770286209534339298649548478557525365409482310203873320019403073436077683811337947281156550108550822707905376660518989724997123276604521918829345220151764178319661483561165780771257759124321591253024022519682505874167576563897914558996559154814618348003266533811442905745986616315708894814548533532813990011930093033887157030649265011039145229940187102188772346637718691289489584084234340923580745478761420464408990089754310070991356323135445655079236505173755487682419863130724108135229951933954944900878057522958668156111564039977780003435091852156224101888884292987635164669969409974962798495652930200438416693968626956730971907870145575718821955569212444036979574572287814270741790977473462013478503580762310838969219267922194662988282812151633674160325888587560454059807085847357073615255705535388189108946270102023724215246262376654114038857921766195145640785884495791654201182611964570634102145167128948097778644827028371868251966116456256663625649343871785144992529784118552500392017555934946906588120469403673789319867837874829595658354936829321520320652057809073357027577985616309634883489649981651635520217877363625447612338555691334254625006061242548037634451346505192187958702465117013918813684584495969851635566939063369887440570180229603256558142782702635600102874436018080481360460706510927068962124167224633639313592872145963198905109348276199500102650366885450365523959876239933194784650624331645439982922555946845510832276520187961158596493861988333201387526210828311304071237853812839754507153838563491789416341424830977135861316602093848283152243149238921020045403006995250685829558703476128962255838747981311443114548745757940985217917136410650139208839136113098832897709477281952300024582721840605683776986632663217476281784811590008279802634400889746612724220536794435602231845246285440391831763569303211015026187967268358547820666064053644822521674060758197165521358116874260135391364117330427996890947376239342034238611954359754816082005223535231478760058941352346291892925922840810334958324779934865134865800516132002558539996255846988724366239973041209787039308852769898920192414493832521403014291071447411646353645610941582598976959432487248189718095508063499964891960473155556781499288033478015655394819438720753692877087520658714606791776517583545224496196865113893103021123264109168283197689619593025676020962119525667356989715044411806779610393492812316100785613944790545874982835836231014526503219019812329412280031127891655430959252424977030389683396654474253357071766979016624122701254654246549786412564727265592628562976053582915489771555241113815129716382291291677733703317613377595165683587515412702575279541020717331366575278996401497983527691323070249796726904421102374208603031225673070100462503951577867064957067227615536303301497228144135500916981234092569867175927604908389160805873352683237125526359980065393845191745400111352200476968462908317868186850055349943500922241922402628270788420928950395099517028737354899182146867488327288375673381197415531157869416049715370228014120834601557257113120869393066758827485503316407150330106636811646367196213633494358798302714216063084078264556166030419567693089460547629966413712800421213101579831900688891998116315088775701637421026513708776638274610838989309234529990353939391768911542646661049062383098740975086608689828447654101871265254687525099359240316848117634986277108931855468192487907488381916120169993756089195077806507711807590123240997317084603413906840876627052058947219568420354170406393516342823642136632928882762248208742976041157384028346199355399560509023036474694139314932641498673811628551601388842023347193438611856420674522157548228489831239592755619986630472971635655336730845457331095999717884556153730907352304159473709807629113733444750875918522127406079248035964303427987624189400804059327275440107000341241033786615293999386734322117014476166314695096960266424359617152254341835588862911497688417396491006480700946276286192192510727402175737939091386893341786465959792703623459082073054772093862427195824095806358336490984419610800661856334992207751442767136232403774369038044957602981795083494258778222170475178175173185633965303022527401778104327837308117306415553906244458925468133588439800914852978566575115537604128683834625631956473536714072159663324178575008562514581457740908786877470113325452696444583533633955932316186256493363510625224437568545845548010165949195875932618453641433976053931386686036853998246925873756353194833050167028240428425585146841161941821841256692607238459092790171810115172628259339067529519597058015213717003166181550438603064115201293107815932841159203615748722707916354026602984640161372121647960126040882750930373615113583856906590828865952922227988874150106843124665527165399452362206298436684557420683345829980490823515684913233811713235335688051413106809740783922679443305957870123053693481968965244833335657923750007878517287671634393483926980649410665025846406303135794314315873175120061689785653511379373584689706772662621599881530356003900398865236307242899636850457462184497610093286317807230304141764775031213881620825451089031797508404067548439123650117745252035461883500068730599348052837166516245132507836039024147029659020913083746611416012390848374492837001636950489141023863860371301338957330923642598770179402392048846222226341885339168728978841309229107018045061450126672511296068297361185527234670980006030520218717349814756219065318148425384784255735475893533103513149752249029158986600317909244946734183680697717838595516589766553565654833584698157958129691549290255529805861174690100326242380378302408275067970436032895010586921105836647852342358384359599727535982046868689919489485930496394400690293831898003990876398273819488125275692804597956650176386887267418245610199351168053375147252468832797157964503977302002190391109766941266978788548411298633150561620462680479282781914263744470256264743376325199348832774552359019599053301577198754496540619668329833188551303939337589139860491708069720975750153654069073142870987707361985043878104788453970204146562072641053697026734885204513431199281712640208882372860523598998834733005640319549286433660695875214964320440284670668033677040566729066653187211798601219221960307120471722274459955658814802955267831136108245869687959232067963497039982063714209988140234521501274025311745575730334311475478725681328325669993577043014465974461824104535742870738427924706424394421238354593100950903834943383991120753253614585242261733316800430137264272879669424644151745348145999009607748085914397843618323992274217619829999197910029156764093244127799040009677886954061791780546753863712148140060534596414839877872896420767466362091861934574831394363757023572166618011507202722146019653682000195206299494998149822712740646842994004484700690530936926560846868838534897363679935692270549632681171134503589011765817908088935666247401800987652093245704898677289999109590705710343978444238089135941672930768491909647272838152195481636718363031355617804767013284673964581336981078850309077403279723480946595031419747114155480435876996398734077478749610098471857259543381551772434418429222054073165552130227320669863508926446341784212103619751777383272515543061887344917634826089333969797227529588926369713161627597930381703306614725268976117071126535884095622718553999622834799786432597589985159800327131858412444967446080947127280995079046291571206510321217155487025607735401187536732088697637663021470629107426148876246855566739925072351502202331781290839991902341871125912281145283957425835739212768195327089371601501349988561817965877418712749138377404431977089935268117107152452024648975397558162655062815821367476446938061390002876456345527921325052057708954006985818211222809247898616452230847252535361884449955630235008945267756034194542085199181950616009267130641931447753190495963402116857160017819250645806063088280255827375236090531133561840050200971483191118756932204605422511297953896049911764225320088306316964178349081666294169006017821609800026422529141672043247476122894338345625677980148182528264924874086633870376844201690711235214118997087724628321957137603848931794191701271932537693142683931414191743923676043469625452003209395677945859704019797186139173086055377440937913768012128365828704094023491373737535365437109150279436847706458360114118865686440837999978885058172552771520326382868537310250356154849303071995515663186707783604010935205347884847293363320359929089116875841588572669409134294776059205225428973920620676855683508352014657400790663008766679447729689881644668415066494568502348158694734114256236440441058339758748191345286772334513726743761351049426119210818947309759073660269058555229887880367858190403452677302286289905008335758498361081392513720039841996168951185355113500365529545712775052334452168625973302597785452625359408012476436931192889831676857576842725522007379430813791238133665015162091356809160783011721048407429347640588672331197114429020113433135489102660878391551859214888352931963934319199567549837287442253163129145248761394320734588206466095897320917694524684293399501783299489517999889609037510969753713312059152808147082885346951863357518429189987051729939996360944462079922085941318024188023799088300737677729882205663597495747014038862902204362209930788896880993588344837018366609148655827173309286083494330276741208802527562547807176587266501300373223805416996688419405983533395518458653369857807701619948758260216118211647462005944712519697920993352233762927980381959022065120945409218222321048683868519733027304723544479537922322500483541003698799031872431654997496130789455190407171401041494738997414027228616985301629913507969769888511857726872797212583615488770848272127783778615790969770747596827485669422799151992087187602235260990677517355843040833328011845514968601600090262614394110108991906336531858899061271138254240588515033593210270205191494107182560868420223983771693372407262001799772369881052547196272566201296946045478671373956719511539406471158066332124704140178708577672225927308674160349431549964921460047450107855742228478465692558111889273745984917314015803478422671683550126257083250493963807619445701549919133245538217212933559316365738537002039820630670234738135379374584546193496275288433934208331849233554078605768723944009020224851093289288311447848648504889856601531548100726011654950737700032940062837308488217561015038214787343738008339794438677168535847768267420749541357282542332334611428477521765775567747352421368569235682719161862714452117716039781888953238020280477848557515151683153298761977100076435291402097584639105729435149660157117770046972359573619243792479374691448539470128652945234608103109994747374616413935627748347141973124853489914276527263628125455647807664782675781377448246197536935552995031844374954228991903319643644017918341789293491805952481090178174555789769278293491585680719041411423938428117703731458565777576837363208925663522067239623436314877452597037714572349944008452523492371306647143910330572793413918317993147114708919107617077272910629154513258364292560039245661569926255220737609069578679024145301678189504978216876460293016662167296497381051199164686741975150643033436943470233756950386805933361202122943708393470966573411673403601004520802402563692029697961792747286793463914681573786967414819196788385183860860027125963233481449870447298468804293602254867480455362097302346545279264805006917764501852853272071863898591273934287370313871387559045977463984035918244139394902111789829219978385589936518186466041749852063035157587790889953406030725338370305323946000164553669599514846848406014908416561012255416473507691266282975444318217814644525050142777692132685183268304838426488044376273261397412943069849291714225713757693186365935699082317360981871513078644160538090100135786923215598978440518199056119641386464153257532056646324240472992212117526875307122568404618995377502553577975189362957042864908691811868996989585208992375638129853621397515173820736641833635601487174073200835405888497005375972616354739047028835997424771071858365761412007594263101927450245192853780989796022880994709065194884700648520881712122227577893831701471538726919980805530088597788513046306541096027539461333755414136082211871525729413866900528707170139056054814434528265482260472413092907946133574977921341840734316032961072920305226131067907262160371676290794306260565617213301006209485571298375696274646124768070826482850655834342268573718910220121784697084010931946829621363515853917333243301897017275040096083433179809086029103364015448437869164925102167143061967147937541572109082339617309456837718801234503001238650231260061107925960060044525093112144381831201458462361501558713035486920863755984472361428416862359614473371690013326189029374689768998433714740163160592674530148737387611106770674059354684994792359789241059802208126733188650882969030172554058520470170588744390507334142094401667648305100029598674871542388833784008900023074564725797707252207579210558047755093500385216023131859354918952376318944963013588539646091426193703431493965597670205629967422252762530723144976293986351247528949427010708585916683908214408978976926615268386296132911605009284037853221947190843634048327441699750864541462087351653778413667493315558271469517492440567432940068268530920730276270793080832836741709658329706105936110193312803271379316393774722436402440948885078792832792515119565466343122666126432321479020901320708451841053530249253208465031491033348539992323040969916596403165361283080426384183195777780460420208671487680490719633918093803072394056642816844894737125684834079700428061856422282380903327635106281104217214432135565016696075650173582302867327374571269635422677052802701437223983242552567251184171221682563527037641046602973774060973889639544711293068826561654747264465501241381741691416517343945827654526443354428405204144481971695911505391773982156404636942138127550235371453080539198570051307321383634730252755120400700203335565234027244964619999081886204709428375802774512267126100165818207298181709782094033249146765181424252744953305185150321273764236079961574138817833227588025850866418453939055504212676063141717855694311820116412325734734512396717604240913139849902393991389537933705301521904336248504998345977486732147419775571547308878273881158721057521397424639986107427149682334401022589456212004974826574359211723819655784965978381849029110304680524958893370975764888019746412532661132164862883831302678370107180245827504425644270742702832029588172472016228944998603028425645004860334002117860557775507018433705624026052244006375993202921577414147263047015230342633126592996598540636055594982721203683004162099123770384204609565852704213952388208017307865716994143141569235280551552377043847221150986586848825099428718732985436955474569963800021788624103966582793540431500172313537469441129787000359858369587409862682403585574952730172646184865049279669353408233090789726858893366239696816456220086000913405011753047378256101514241913139212131028529445146878559080198899831931748342176977534468223605592441205721005213111538308316178927498634534973569286276506146123202576324180610543288941320527035362639807493085625535014282154035778651776415856237794676727629441418237453543632494688965558650292421184720670880742813621423261691658073429447099556723430507821641774620650232705008548017920235327230991209332519338861944718224993209594430014394102177370483015095300345132475758227374556747670978456555222471555126140761974993333165886447668625497483099677894708668017774580173017788300643111414935055065866203733777908260544389811868735006909579151364814822721802876422991074597763002983490271203800985832934796736460803742418859445650980180124593793764924088097345312803851441441187408206488370979405545152214794512332688705658214021284460510254581748292449701964820134973356605264492077613981846328889298849144771478747592294426504423573764195460443874802711030991388807658364656570409686517542826048418268767992494899577853516707527505690010320251551123614848632666975912647816545865345745972541204644103278449103572188209457544617985002354678932812049901997670316497029834035730899353975081638102679635829757653713627212300156185233542012833659081216582137444988041176728321752665711580445471185873872354768441009007422607168378174191728644006018467426967094671500727341987122274096801778190931267260312690202622661849384721489409805004224642845594989720674271216823541903628788746979207767113427666281449556580295855775694482658122437117052709447386600210070352348669546745785047465438109588548077068073294983145639086969500581365138177733230616887786703664174447215701936070948984950990311286610932292683831175783105694540761486821833999121136886577410478483970676464248690062432777559680431058221627866414173435803795283234285271402981225854061751450876739861555473480994268353574048530806570662357670981804142343995126357401420028095700512835001265661921118331803503224116882965818697234187347252867647955629749246519037493641211897183946228583947999342853709138319450186965638524014654583709090172256005524564957246251056870999055544561493190004994148708548954456467451050646221448096765269025536562199793348036300939268873240232307174023010593820632484205254953981629171809511717834219142871415267884222990585270973357240781788723968344488742240288783812154906449604360931434780456863231457440551749687802004115187302569415371966168502936188371991149682650404096636582457747534505451031562607921854907863724836602567851781992014105460501932121592876398597750692612358759560736092662599249272207522328550133278656677160149701050578820848319346839974136332058928604518856970035105481078025934042297131628298386982328627628950425904991826511535635788046840012608283928327733569361729766872744321839912367600789530437617269912693208085210949755324786183733010672572032757374514490841450223273568546283710538389986890197554904985647905883068625758664427776949772672918258493322157204761202045954125995120506316476539124128164713147909980898678441981300686693886606512146520238125443102248525255121453236084509196073169047974070864130967411521658720534708094562529994935058004155485328725987002968364448573334543746091967740283629506308069558130956372009821360055498874637220643593191946131345122141846870932393492517536969151798700685110930491614615153496932951273266855930138439267770921690684032047707935792282940796044652568479300269384655245281100873392665614708495006103713095089908819682607969838869323083252668353665203022962131991544096114307734452726200430059211067660383249851498702866374728241177863852345176296092261348187560059234746871497009971067165002436453370037172011001867716718094520664559632493065934460197377078933232194450628720032585473188035627529870641457423894338064561785522345102798925343512365460691439868761494380885582642700074010542744823921729491230947061740750476463320492834911493329989999524432012667035456720328826093265273360036702625222494971047943721077997533151646296351390924826090825149925418378276362257199758353836690239405403455332679284967709923386372585793145379640851344316852203225160778785531774070856618401452528298393362989977083928083066612850036266381027375524849710655982400932679325519634306209545655482024509900767241860357591082462463209180980793772565318467823486654520003588707043140475540141759410073883289243962483617394151403241905893843199872116590041345955514363271249817816083619596028789494504980286410903430347594197506717850897119514328454177284351172342911938456476113214765800712068850265555711419002092503029950045106583724068396315830172176779740461168262592489403874830050534935146897483219207417149772761385969511433829864269226903925223698418958941725748858125368114804751441225732546376323798116209549158777166139761511586071664077976828857037132465298706036707459784467803954715303230623675894986756236903563664900200832266146408082072660443688138616602006369846385261070541669717253372755353914618137423056072386458342481877464846279745785139636091147757576338248072717584827244217502947500820685754881946412655105079662138297583759445682129419567795727038413876860865370511733167801660924626487841333426772599127534690852860214935746893057934132555496708007664039490095273903846531862259726392790748810487889120148992603650361277518829446239783695161054031985041396845564454821271138568614569589033227738977186662863503643965984897757369511542787359213204103945721519885642454816209778997895244852019883986156649385724228198129624111223388424770975671264677324000643754144156846392322036886642643223619866767889219602644601869761482872243300677166156290445212344485513156604806152191837379745858153434262353123751378532290022383657267386284691615014918486926493189572705539093900036240039440870958780408301003177991506865154426786832471803097101043831150115718173358936760640064253703318133270863318657325019475530969517506339224137651674182090257210622858508236484900818859031954727574297736418946573418518282435969592796384249606750869486071719654494907596292067530515517601027499527190227210153292785888096011193381800789627025504452114392395482718750236607452581969678230801794510213638306007511256089883276544300196228417713911150594637529554388423640602515043536323696475183558067807250944702026992071207635053094451002722704591607209759562450304335357273562220700052800214054739198515695842255013998321048119219643943893157037980430063920884227457460505423124830141607902976013357879135795349238763405418259049013230197682704815067244964089646613219924690433336771602066759889917899190768611909288965642191820836100179614694034243843915620438935067000600749445271241756281000510444683223179905702530944031323184208003627663695938977849821859575007176198687968083714245351396800919937623617424971487697565494036218085532657431043350592242534501446270366323463168356635145124888902856366689535288980764830665571410721269882886690522405575056314373063914457411391936006006042281183630424333585981328984531941821693984341985934233699967933395947972128280678332986122735248997878591952553274973720565886234721206650177696785979080766305314109599886188389767721625495838897770483116355095959080116937092850588693446103420844946618899323897103392779677612717020431013973939428774116283818944525238470779364309484099978796781548188943681949461253521128575661950898224840481002076398429775084814318220910517249712570801539964761694914521355706294281853182489798278279845516290846978777006874415845995294318761957649692033017251633788633807825527280296969154763972516429929761097163899641736149854457929184771579648463262956857954774406212104296539423695852287623869793113984125304799483872080993296159906862584967575243958133443665451606140990646072624850097197599540636983337751019298117135904582023946569897309576942839564361324750449106466389720123060965604083468051919082098965926717801255598881707101469219448574838297172123649774476377852167079265381834777542883025572885741695708782639805595958945635321579965381883261107955901034394394895877734997799973331930980976146485816867575315464780048278805724075223625783831521844826307857387205566375914643195463811777173904946679856873119433769196304796943615545791385966148374436673943364730843783362468106919944055166607422555832384563575972739749019579162378378251882891558898223604109347962874422223387608431016450037371619666625629172074298839595379166819839051184074720284539198442802059652170318415924296794584933435337588792338179143673268630395145958716801725992626671136766402478384183679714452297244952519498669634357814047864418128796636705768841071218603644805364928273025448029515621014286547139026338607591404851961790940760327577427371976458109083327405572353717926477016956121239264352664012446179270969572288819928113547350460836143157357435221860473396886571263648257646169192057738779751203380847818606631020615994460425791594321406113162214243848006027464091389647237889933163342460730490753293205819521313853020920403505199216222242230388040535222628449795633181656041533970550825013671675588223457475548461959652450619995821187561340309949736544041369552240801456532835763624074098395661346482020889387532964039735019832095109813928083700975477324713405209482269911710453456324165552462709077358372521409044754912846482949090074913737824727380635847880102821068883126478573101622508256218852171181693855576663723044052152872541361803987523012817254765853994441205445231171124707839885852622478977152240629466380541082441155837382784350815975413903512907858826757052246937611713233309107844370487068018063047220548409265799788874999794455266561230808726031628304685951241537480425235439646443044789514695334836441039321887848338374018661780025969560696128839941699804229135120270027351191333325554583119989979312630472572325030546944877415268888775585046043507792939310532578739317616783366231564187249474133779943088583624380413998527876140244611690057935268840954890016496038556864499018044308167081975603261305283216765934222364371946242715940203571699992310809870300943127153633550025328947800011680749744754987607824706915632768193664551052202853194984903894451448665958363006851814916140069785995606085520538984442123909489613456282438332814033624768387705191111875291516075740093986834104873893807206003341778181922791167264369209531332493110830617764065764664984510247650523968703943360252004806550897462951183796398507765460994221583794353051893244654605979123356628772565215513303470731912386345441324951533207386021505935826106115951815626383194798066689077764605008353578724064945148480177975538576405440479183329917037303158660615466860177387793293408208160644531305484236094818100671375808670449462699570158363036360707287604863162643862800472904983475793387412777064178323068923347908388148542388579464706470735239231312653597962894296553272064436908448561880271005319541059164996432395106306598271980828068927627727090349120607701886435993526740683763209032240937374211851620072351414896118932274828410216627685623207589739365685112829711463577774803753818222504970071078465775004785929700962899215837962280599236219804764131051087394001461536210924325674264358203903456954674495585694221861931660291345812848584255857674127480082822864752272944610900573255745135712921813566927914241079988673014161791546471421025206713895359971273971988223883318732070591301233049894048380348795961486671168755827473609996929898365695648063882985958664526959096057313083962801451283227630965586875018733855571397877429882299552180974955387560366921905204412638766708063986925083452874776665444116130079536687926988932234550650867573780460125475854736938602243896060019288092393643308229340015380175978829075334036240616092572471763240575086231395467367714892255393930785786860075694626360950298276362103424868723384186567995721889001992511982302855761174068107706890585100243144975586506620730168555558881029852032929473733560922415868363501972408877647413758006825023530426889089426734831257501890066753124042351225821784948245764180647297910316029112717119224582553448359551989343911857945181917973019654069921263012882209318134853518220356345475583105868403525793297590355468308888542323953016988247272739537033592744449467701527869090102708016477757843564179767174293752847089931132930809075646705674116741252156567589188449096340565467083667020869660437446172179964458788195659280486933656024294451305747845899241855300945004203476448244439467041794021779136060540561543188432452565282557867103245737633137470876722172287765412690278748632525889132553123728228307810931160071580303487608828805638921360485127280962871359419989204604987980470078409413485540744599140797023752834512433285044230858433881678383031888129954671230556239855190701160891789898996035915267088905451384462020222357487327372928046936861176302533382302094221915905919658410981301644208346172283386466933132176183568753725876446701516541343639735624782116759695516730640977614280352919684309300094156405298879105735723543404359627261492943682631477067981176604557296634025023806667436134978318720019923741073871100148725821564737510064352602279677143756737385436792051631139059600144988345771245448501347440263200183909355993223550081941814099543544128050260097358424249651510857221076593483960999557561823297548408164938489899732986469051016157116332307167980875418270520226424445971083725742361053204567652001765472166353127920313737330310937844473757927706429337838416789655936127545163691505728124922779830103502932510263709677761090778226397632089678096402517031083651468655063521284332566598077597687648649516224578796709690820822642570565428274575437720010441764922651495968366283429019371810259140785238807156332643476028585517953781378945938597605932233211234223351039600718278107094344001392671532901413809516871096271304025552935159794126849760525070697884571345853600478962850109666765774963946787288643975961050784274292751775811071089116971991483384908761674053449979826903419167123359841740342301133797963003777341505653595198621555408739833488289756562311226755515467445815645231294894655858915245094870671976030301631236317590729131237035868796624974613409203890307659592837858067485487028914249646920876046388034670003907269994267703162207216364902731798949759116884168799024598334471807041231136123076609065396452573707186584657715556527934543017010511413622927790348278529694805848895066673559200093672207529797764763794360726455862663544563577284585659421891302104942401949615331230319213279258281985590543340248792368927884467442146298727483849509807936218940426220129906935763968082632882001455718656795111444557637713654242723185040071386888733393319803892241796557264944942566921912258624567673019377175489840187965416298536070891899908408309759554444235947380034600702270945713159622928237154262678078352337824986971156668080055980517230164753364491093839014271627415330265602796018136585027179635831574911199809232610388058367885925914927872519842433069268265756749688923716405884242272187939208837205427239475858060451982012293968185156526542452424544643636313844926036011455013502605155132270937148790972993762245419638014251741669742372461427576873747845129112328840335253525146364692457784349369300201755276395458845066264633867935196668927018236746408479866404817771302827078480073905252421336025530912134469300407368001797215999053605256637602755020738645099321374872620754112642687852516243039901086136179864582754809612241197489515979619794243576832591419253278980829253022954913785735461983154240653548740060867390441229417551118605764364456452832971326751614065199779568203251098058457474841564501838366039182123874591454512353843564503905746614670270203270632081204694000845859068055018823251391741514489862434360125210330449867548482163672598993531848776597213358859457524800851027421058020309216227632689391687355670366443636614117501606934117042427418955957307248604577763864058997210108802833008691222288337010062374548051309334711688674711616238938331015674400638887485741113559281408487292803069099080089261367731952981173173471369909776579585098381315554079669614479361132936639834564679674073180069375171792300953794386527846546586856158837472289750811966460016447256415816567875169988265316848278458615150582376957786639870974721935089188006111982705779437120094678402087848848321786892752607315637933863471371882539855934282798494400838999705287518808821377261068869757592623401466346173163837207602521570735860358946302327583671712567378351068501943454249135310083134962460151913567908564163148641843395865772137360683609173147796049040917353849236977512565922475020812335409645118144087056296556170135273536931252455301652022882400958778636214226954243968330692350998279060846271368552491915077217298396007564345111202483110971444198281785363828442867159989737855851466848960457268016294353460058437804026093220853900874037547882052488371902480047597631827252544635487977462504007594774713716049872590771543501422853846492463503436156959823298015124429567712868910364123648681388496698324991406554156448510533035458704785182675659312233065451500990289858337575851549137414889986814572809464395760396153522910030637750616318031219450298251156892743663266912702792136549200808677640318203194504325850379178181520964353856423628163439755364798046869404387637234275220033802022300561478654849165052569274640984685490997329010827765924297831651574038202761126289070329425363478104114461901751698840493083161503689954220305666657075995055081051302309063345734174206143203085434278479979450416119576428150598496033602837837089491938253948334735814145201069066107210462224841069804015713714952797594358293572991615808163868985666815893692274736640382813188112882413323775225259998826127721793259129170299187689104268151109725886548706090324238796651463041050920356648242759483926855262310715095041400394300417799925157111329013878141812664067418096665728755305409849743546683038689521235823459360967754985310303899238460738027219829555195811490106658570265661192025845950427136918122058734207444762880073575607969068584071040165008919022471180481505959213740099031236190603175679578945117874558350364856283274954646724952497851527912070739862451823586935094517483559999558579576967812869090411844124144373497533339541574183282071471461525745456161557399675378667942525847697872139798090866080086133599767285710666899878284679429648150359441045455363063322658721355258921121664724008545298196295293260899162476706183042197409543666831788600221325685396134578761423283707085121822533875767266222831095871948407137981993346884137403307553433854991717856616674749712169143844056632605286161225130084238978026910683911347093127285007485540192203986437645617558393782386996300719174082610432372507585763829846841914817176480909559199273548003549405609310174363129019974643692570598523446320286035786950268285391489192668963123342453843633794253593059163757482738433097598760910393417685789434491419712247207654495968795170289830568376670958635541019756846457959801584351483794146383517074144723347715233021362175079719435991150928180409370122519111605992870200433311620275456791303916849314643631211930154631377614808195130714231898655794473725222385936554106704189957385885530326410989807316017031777056182995753583487726006414560716893182926289219776022749470162567800264245993667044627484420415572656414285132398274216883831414068133356782522311735529463158990010714014041827806681767745963830365208362714936015098950817620354828547310113522513804789339984452648515898783837799774513547154867925340805929897928619305098890679935411412751845561973046015513216461608943621171899545193564243530146610086996759170699150612025494184232687773760996648338902305317365521111096203250048705067368185535741592284817940758559473229076321348134460644880622037848781414913624472390340609324826927668859635238331582830591931073468061025893293561797753264857392176026276684365732961349900741094585931890703301375596412324642067326402103246099831989085233785648003728275362085616926055874028596487306885447409371103623132664912564486736868496440856036395549931083618013238542032647802118921381531906032617999016430286201448900750992946706103910076911490424189448749444411015880030266700289643116499066789464069786121786093234905479857238761051306897634928327425423675180405621092095931699118442169500191961980483668658549014962813106030799325076380339084682532427038100684856311587764958692638007314904436490775043142076601703912261920521588882623693386464492438420877495814182241064571311836095989611720002045269638637729336425944142926275428879030407166971132111514018301549276687968979770420598959245356137301684414062922188001179694568309661180423940266514257183852775398941315205847571962621459405027778795050675687701082735557788644237483265097029104680705200455943671172658304839890269405833605563590216119234737562652765704796640566141914322867906870876520513739632103695291276477642619333515708402727945575516973605102165239174380816403763738955695676864703813365188879632205872695273110214422793689733308950405556797550990472478439693767052340509032391878108714977355189030120560100781257095108881789088759409264020514200596611953089071134870096177702669660635663938709079945156000011259933084793404068636736107454353076142360734014374125762463738014981474838962248906362797805574228205138091295949491437911915878475954235464074634815124052540248582373053798294888722006045217103040395350417606144443767621877598679546061721981127206071678204822369434568556225980535919338661167075874321313190010090425592436247487336989811517659399851783570428196844976074995241021306521139842243682874768515117280541703254541369587947127096709285855491851480761640833733118566024212782139680102369502701073302237304886517863274530042748234917932130727905203323009611357163153803197421204790771907189655998050341578468095946079537742626717982277015395263470975525424955041066785948572785696040716817320800791245404313537148690456390159934432157227768012334636578401003844306747551178669032828732452161272505563311916187966912921456447991024957686077930059855436193153271984768855748739505630340102194691915571629828624731653478656825239044887779076480194769526033859762269274533573355108131756889723009869544789451161931955712307228946283207556557589816165316704338687841780980140823689315762304177314759037549088289811503193602134461640535502741243114731822768374242649446618559142386999026865040691316508559306372603639563513310322755409803817380538776751746664119476174168715479190071921999852655518802254599702956636172186028047498162020097611567389310158466276920260344151694413837046703244597948590371454069811357170588772125667230851317161674082272899849225654933716851514849596784263447040131104060492489107214425551347332106188697502600016648171932715922506234519295000784679119166942533122553267551078505866043758523792391890175897091925645753409504294886214295026922072768050376577398150378556931578916008545911355969611649571023354076620591250138916980753726782072545719479139555216880553047181681616028121712738710026319022967644235896464621427614281704604386495701533366873715895931015476755231329764837655514668080919430511914811129183143565341193911096567284816371501614636859723961259102299674160619011439898005428123025703431056207447620955999400751360518002827442002670395830864119913965513749003212875982753660740628050199079413293999136627153646966195745785717037604498638291485403938083836144200869488799716210651358739620402903944878212412745493426969024374957189162188439934758648383041500277360089197562393270336054757665740761765654205686620605833056391878247340425407792588794358317910167698876493836783726223067587365878279767463988690118470931295555233827738303950349372001088720666576991486569324613496215870256340038389405600787884297285255492223192982039677623862923073975486199282790615284077132642963030623038728827322833130664808297955072709993446449989971234876945328596368264789971781313252804083184978859627208024660820620378041867480220292573887615710277187369413712471860107547979925371152132104582518392145170686709185499487916496191812311125633430780224638274622564490784859187062749981195386462670747135433199106033555382079612391650678540641565820667765540925514936361342750092111440877147362297730880816041101060677075062383708293137928847601209121197496059816531392586152451901986206601085074188687961216797389076405548711500415327820671070838757690735662396565615198884543097262182540698160345164046619455301084769859673361327526678805637336599016880945825823135386483522398492250494239478631405337122625400564499340729784733472049326199541355662410656202312479229267397648528358202644095483497213731148830889228629075095487076016981507980632905878478767895682137648322861622517622884717890647662673905755521608685148751021744863551736004803009397707744599301807733476170415854033659570763843979492553839597016774052143740320381905209591757515068589683684571630046893476598265068381327793827715988895080888262816115037342060180865223684727325364425093351334902692509096547180749456631552597296964436256534532698842937327797720746885169489137182472699266078194050946528450798004851419738563281016098722789944523373690207160405107349222380084120517129341773285909137447289338988283255142309467148042067538077328902183018191552952509038800935550591824752240170849505219800183369984829237831632255601847050418571357474154761787208430643268374563159921378983662203659945172209419380112513114621009357342105939773351589940871226972357438405118877829428336253150418938116309206745024982433380203771427443669659950098211613868190600581185221477169138611482744337087779200001450196550246468064382988953123922083952112076439726866329870715673967840662214043869673096109264381873577417490778102018214921907712801296446199170805827219650748721539723425492711717524792335526025099591815931152693950739827783530124553009975113994764976077709816036754939325514380319950958553803946401925082214284371356726355762657806399280222456808028794611433933375697491288289281869022063548707943168821790790681902908386002880724005001626408669702369305721323098084639347010547158700099676106549836608988151719834691810888274669862822788702500108767424593415181378269983284559935878703561072656150041613338161800277906943136121830970093286743994982623136734744778174113425074014111179880637935759124697467165360855711566345155438519386491235451018653021288960155830376763586992342379937815577538165554527256268006032911445942805825966379948064640859232443345124754950154760627171901190676586957369315865327815076718394479535138730321552634065739389393089663650218756132440186964304934516033295392586268129761327120701475421492883076049394148753929008187535997500496649010447832013174265435121786151485549824277100300394126147660202669915754721951779619100879753674342133782010573383233333003429413533868838938222678376387956024833834411495424536647448438223616868171850941129916302185503310401159176829316870717933335719766848136497782647568189544733478304141983907443124320662768016827060284902082011686234098454472521905947699026390040773367706872519261579960057404062067785649539749985783632603547310360735078455437889510978094718746658214609631494700088284905531593184508531562043012845616605872666045407021803561106600573894251642129687416459767885250027665019923260257086201884125172887906736361141535878349336844590785371228338540264371010872370647790446172307176414545822947651822607856227093819959338933236537039506913398301069987575094674250316633764364123026519310702693962764219637908887370497861297291663702463368523151477942840014770567490284733542942524764174739708567329193670261796313279579597899288911432026040096802410377273260407198037147999402275929283585693693112878628445564123288489609990376080399845974070172498231621131119939151181870992024897354138463243093910734993841861618163584187411055407494681247509035288401579656288294657055676755320863665442820443206596176488696546132045619663476777398554894051508145514413588864279637954653119560556901766057751130822353261416629499665367538184372117966088411347302142361656300530618976338725059267580982791723842946970168690543299022319229105830776210979891987269984960187094659228808028049820114584646899250324484608628162423000530781561825173289367045015314540073507070336933484348168393945666913318333968773807739492125125778306313190915649165970181292785925917222686305359441888852551788104197415942505080941167358316954234237288585358403310256387814419400059331752899243075518917926247657195173309706885427862802965087608825793549846618114410704418991624176821667638476237002751624282962293404615168569160928777352354902766537314389217683968484447520153705368588328339862616414604829575719593198593332125261329395742783648060755441743808837143262909879870948467273810170653713820736218715191508333901141053900580795287752994009772668364863130442899643965100286633570858741148155754380675041863999319334229521115772213683739741311639610763054604835777075055269955739204762578282654677297876661328322480901311205516839066286647489534184304516796755727166996531219123151178382054902904474390256186105809406739914834308723545547548555490621417633890074075711333102176686873621647991867506716317522643437663640900028298680270759249569483923548549156819277898410639318710796508987495795035604577923080680266654332723435220708186222872222120999293979582054055233391778788416546879109944669149448500536815223440637856697098073637261671916250608211972805287630433305499027342221954368126507749375303245233350688588937031953261571178607857218904285840316928126111963910756103766283697597459684231757662982512899530905629379197605880967155786279420066676040743558969824498131772300532244492032838711988123635620939898262883963816064638314900401855227532180235317628984133826932974528355392209180097246770221736616327310791931284409758761073004069413560527071879851190731518965236911003415567666757005494032663594222190048315613924508170441915274749890895612559809093094364845620089569804874638697544401479367797399005943778310498448181990660928696707892184087976632449667350074941561589117914921954965983512558377691064851404864749628152088136769647775094608069689722281020116064940861731233693672622689462329023521031262314934826577815986123425665704063075078046567436114376932376478963885352375130300126748963224091212597199774622294430497658006699449707495903756715059660391686949659377006121071990545196615436863668637240970701464866115648287252873117138511393032859459126283939403908594649197414185430989491312643080957169618108853328080637536293929628835108439829952143868586492549961365611713715900627509658166556703976018507710721508734643075692721774379798481927551627649009215349976555359742603657079579185574091788353386003454420345911375529936570264137427959169427557894613957903741821699132821833549530175207608064441216759204891259780767740959672518073019998349291292529441123111910904665015221329182029270977393712127085720994453653719418714917661968003186098763842969398911906763497806775039337232106608223438121817949602630439640634562401028119738307349182512359968984587464961375032609867672043144271965493462501080525727661846492120733757197556764719400502835429033109834102009105755192185902138212877505616525043808406997388196159887411256902131874623405613332250824418662995105651910836764088972512660484193244073361785168469989990802529365031964429228313170581183033845280380139739995444172305687443564272575286669112164200864649966876835966241884004688889502745388988321347227110515063829615615909044672848927143585472639001011221280121933612153218959172039620290418275934257817003879443175611333579737844168816226958748068157483099107598405517319406832204506752783954276931728934602515188540524344020859177869940140137234847301085558291640237401702852168284910216944417636866591526368821152136719730761444472010911451333291448471205235363224846021293751584809080291151168244251766238533196761743499373826766790450916089239688452739662124321402481496006059819045117258030196344929385590159354394175887246649605074938755583274625303175235310437697460948262862973758586336674382726379520574474652298846878672747980377521194378864687241749427505267968681441861336087075168533750747123836199668065113077200142271510794638737367532719934128667210214612086191630659483117101822972962802494876998147880492905666194277339728499159340230351240497193732901770000848250189508709995927729508857396660426066406916296443172235900113500741719665901301421732076701889206741702951323222170348721414728072118010677468307216580453774603082638496940929758144082099081596867244970633043025862870217883237759103336695230684804447481023198987168976433829753855569621756562083749229528844800547199075330619619473814393811959350339472079342970706416507679478832115796944425971645182390164203721184532483723280478754753392405246595385322221469083115174748733281541742153346914744135078415771683544143273320686267763533371423068405278195433030538827616083389220973687075209941002586517036481488835305410171448360485488788574341271533085776264259888305301961787056131535928771552018303815672371054437673892100587342568398199856262259350975575840848684744835992537912778310205554655548353512615844475862548654552388672807430280169425955188628766594535131316660904668190109457581656654252995234879893378422996745546058770030741484461115004085839001510471608643930464766636491394107967615191490912845484442960222706124155725849316021360180263840826016507752967371889518746562894585274982214556620970971437987231978226230471451865779221634785812351898346514001421339288135618698588324521906218463522213754090609546267543993276778480049695744286149484668285105381360505152537008367916122812771966055754006071466035926958256240289112274884999488916512245319422284684675181637571885321062948972613496535138017521165823425228345022959870906019107206753673704175161999556615070745952118585441742705154422069885610394831594630323316194117006935217684225338472432252461615890140904861630121318719841029061316812948271226723548591739199769127743734664395669677516770418545292773610095694072805430664353522214206903208994399110135296455647712225190070978270982568909198083057766128058817001106488336706924003401447479402083325815253315880790099061274354980273426765352229849539218161443272747411562178125313647477525722332922201851094315385483227656360952587764781277399809089264138051970387879416806547660721582491173918351295014450832681802298339476062101007093538835303210044165302933519831035553846253887832847058229444266810686233259172179088318205963282602838328034498271232366255727233548267059226928620670373824883177076906043167388847106639358494731139863141150265028009665100095829384153174846271215029114451103883639224656418442720366039706393643073427708782448084742489777634094148994271723184850204139891200033763509763539676146717457201414312745504042193492735300449690964527047264793823255806309922210092879659146630843840319021897490767755290056622549184290620456248861601495624174790264633551642842161401558834897707934025262349757053724475879724249845813751005011895614242774893918571162777036831811212202891150409214902517034918503996813919232919233231429859741294037194904068887327799604880035033880822842133622088433149555817076035037525917454675822453805950106184677809261458648112293659327431640383242742778676747649573793464071094599747484780548862373097269088752915691612983941588593397516614060987364844908506079962558326250853688098763062250789135692704192115938083702576221502400625854840040834443858334983607817647699967217476435840661167012635334402843669423156297037932467052935874774872456701283755021466464850356641349781119984482199530690715585759070247548044668136394639198350168973731282016967783747672362525507719424330943668402176622795690788382697667483643578932302134009084053654517697322457321688923274764435703900385579224328736093998008405644451689883209901828554741830966410034941368256677327272357904334368992879998532007367570270681337147905679528943521264617241780619053454510434984019482639209957841235970893505629706803569136759306225709164624063893384002615054292503822509892851385048975253661228998531515944264509985194979258124640029986903256618333118929387401616279079259044649891270095160266478674669773060953303070028322980246262495408286830598182005229187395277686812400998774662365525384555684144407438950598527445999053767468487369260543130008372241333243204291832023252304249324078040157951487755365685673358242441558237259816406243731366872999713399091545398526005762757832325296379488255146233491086805048835783363878761380472761010592260394973797404984689295962095874034332415721362677260201366959717815866400653664212653058907569773886840974842403536760098351899295899597516554190481228845644496809875249724187852328089789495299665575808212866861373320163268294278116379020331940617069766749282707979306461738271650736323273031629355606634133779871310089129819272214359120167981350238156556646477924726935450882383996221179770852262410576282338275183192024241043348631819736126417224525824013940359590998967345649522852466932251491098424681524704482736695090629888450348648611761670857913683439970005148107240213073749818440506705278945091325718924738257196520411336445550718615043316269227373260333590526302937410180343977226338920295295904523842585933870046003411113553423356011870899791947908553629908931149186779786348029193997311564761270649820017568407092458429443165949311224333155980833912861283493934202927286603662438431427575893114685589783407760088502624976268409479093459519594916011408580120859309473400479810493857054723899361087506820439600299913662327844878653183143915184215141395334874874126397769616309976467907891004740539574286974006939812471991613412764848304602847407549648134506046196313341208152731150513833084614906116989924051099674399978793083344289061125303203914848789630516058927925314232572741735502742265020417122268052135733413512804200319991293592482877980080925628450058422882512425894646323567933643936731966118668116840329043053895975046930156169570862549394953021012950966161216213685993063090922374248302853767034585687276709619883351299070761752166516453402545684156411071074221699085623305089886928080301653896390166455254851697292036894537027115958697095622890621122449871188087129462881765618476574801628524734032336218615081660144706758478760588968723955556040966074683868097465755187425363618644253654635623767464579608297269320697596483413067056290689817398173487964740056033787513139551311807842626163524720043281178130886696109249712970635951061546540667992302463652320203016982134851599248664338086114803714243681060284869918373029762398061419098306944305403722237626448842028226934029683836180552297275917499657487262611922871511381184338576527834683908093651786621360812750920625813866025142833561030325197181687829356640472199705337146993817037866030640821785014198640089801788997303266970856273592011740174625521833842296301771957126480147362923180421414355899756507429246661420321793444902652869264688526370866516504038221800931823160776697547918018749748462011871135756455623824287261862864058499278254405736942528726312270042121596665763209234979422214440035116391422874812338551180632916850039221997762672722332134595849014675417068813010263662049650147457547183118975570670884413008782345757609713342679949141141770635667809007030094211531220738572274463464729785865013467194548415979224998843604380165664053153798136291952578447059588310074564762825419090407029087846240896159826726396394250957267403726143834573171878250440494107282482985413547709874519326990329940017748796804224479948535843857590320130767985313897295318469307102525521567438831439043912040927856606639074666229574961210896812010260009767617523403906990325520417192368222354054499957483792765175710679778842579545230408855333939615010091486136943399091854141436700689763038583846976965201855627597955357013136503706811110516896457877654574583170262309771952029453476194118694321466081185131041178009661467535160199961938066406096076938974235766055459663791327287920258454585618704281514727707091471317188765149795966223443441639664451335161668044344505913038333050835444243955146546555173302753480368633181337080614482030733000152758335510183440189893443098566748158525704511945994244650323081847307647604114140921079334409760172580285723416372141988911321112792112291752982603726821945278735144326708258435610439199215430115605393954422677473888492855772944205988521429006720270458426232908878282066224251205919154009153182277006275958010466089677956324524075504106563699454735384685245677791233613423634669275627862494379630014144045262479402775775620836200346616784638490413058732618666043927308149979170218389594956207305557422657489514288956512744243098297291551275185912961337332597175412803948039077656929594096881812583229747686198462650926818518353662202958966767705584056191813542726918785657073748601243537407389406700743758674302920750028748348337919911016389017828620202365835442843538157271479048722715422298794118314372367227629799236361905757294363737956891752410666356569303445528772978985342745467432481773380999263891540778579156578696202187679057597303438281687004834420252646017053705061536227346472585225004778758812530878813828126897531159608079983861064049308461010021365422756316929060141469731619029546522665532883209216654111955472413607628405617583305232627737884052904286959689626490750396527423048725529659541795505759189553698607880845094244308614039170518720889284760058922103367380004667786114657259789620596489139179571964215920201961402255679025445489573583136511044390170675187034920105809851426029489963156648414888721661779132591113682820738192616235100261285131028697041933888344879575086172130742313469255829971990648934942879038208067602691333776131168915737528815063274916087948057663137302211574428680845026461747868989126682569921753870414735545713446042454850781628100773913105414961663915786903997124909735955183107288113748198588933564404016412958476205101776944466195746935254195182434621530185155769130058843531547109222927352165687869834817086910313729802519119083292479554873971905457475122395622660130573695618425758834420143702917122848898377339585077174760150519205145077571223683933689002829982203122366994271376984741638307028584984777009992731511649657276045744696963576557603888142718391806238517192621011188793715879807714476482063486921955812427971946732900980544456042097528430545825379354090544870253048696100936009252789970449658746505747066590314064811794286821986579272157828016160048149335846921046245805597526534809438259078379424256175854684892467695628662525049848248388955515390662363491647136087703947016904721475161558671210373386998435495231550453197123439211729023875538510016629261056969947945301798530297975895008301046236938992084689435250384644903435258103336707663441856836870203208356150281189347454229523410696048934191372244498948457598133618922162126382592985892441833022063974180879119009620499445884062764356807046898929060801295145338420724568286648329796654927389091234877760863717487482626735144813589191647972054847921128422041954013088999785721234820230378484973248382775382336040242190858593122517299420121696024600552868437870712324802370840257518709364399946875533209504322529857566154623845494518316762863094313171903176016782845409196501623311387447669985426731292754290435673740765590071868895734085490919513345395982671161529247081189108516893079552926082977142196983020954110341932264885674900146391905348041673039163564371664997167400424797375799381650743734174917491304492049096425789407819460487417410586659973576894277661756433048243150013850706898464968119220551023770624217738469437871291848013527669522324930890412727506611423395820978360906764738264003648601069540186168137696624422342772997193942563658382062982658650894783029299603757976781096624020233205236604030451866894806984829645134613870412650660596256746205055084866440973990331195385947578998846886071127283544643155941641731050690119577158474340131987092783860542850536981306231499341663587519281532581988959284357492692462000126236318563767057306181580038897087065348591810350640781979445606928587840725348973298964095936579962463344117034286184632198992325196105467355988509951462101950021706327810503913951637195430450372817308845938719791598013733987461158974552174752165989600967919536389336618021571721565399817530634462277318244705394126206751471487692819566234075894002060370033372618223100446188511728923512408707543944899896622629647881379638149813605719726962363240143306663469215384941243988126549714693996609577816480463746465152663622316917396121815783682671981652822690713585713567742443512675597984318366638719348347907901056586095446102625896517385936495503688300262735792588139618994910649624872333618245821437445173923615631361703602160232409938918612956763299282647399340165944975883394601416130158988724547824897662118848250437878687806537736752238794589349029800974278560527961884027989219774697120423379053029464293367132098668307048244730592857349789710082687546734361519667967300964505056905537291849891171310000961619633009868260457680557109395212859395261177557046901401868733800224274188817320339118440057802860030237857475109931505709596389641726697991805514988418346194001046325011192151285827233565579097126619527256447729972112597865860604948290252160834491742463501298067967488334519281050035673876546517571124100642420366170890101031232293109051012128613224508227422907131281975734236933471301894754021589863264853839866797775157292281180211104590117743018686147158589868283405184404779515152510196353220256097027381053899926299350447918484029656010167560977725188086362868865309453886197883147864626171823533031069040824274946561538826819697105206034382297138884971559886831985153031569009205402495782572858044963384073135250849444084013413762146161647488606554306883095659943616050718416863844956086679930972916270877238235026734275295575946774644849048633007676902289431493966019803394074641097455988818632082478016008842946492922343351847260575123733029500123441102759520207887230143233700857696704974561763002943046477509023340622961003044167609118357782486892411081306121284406642346888015490107599795593611599201888727543677717270821749336982658115182399817133941127431267442999243793987486195792757034231862984336742990831514426252323341411723175266095969579626309977307915599080702873868558295753763347175857702407891563548994546529072340333466078356665393168573347899756625988226155622647716760209067669511785344931114361415216382779141867073506860338245120195604546374538812287149471431286722808586204107961419759957876492316991821260566636068841115981369212634396693810822351908204185626718506199547937446520665764412795844617788299690589781237490696977375717713307067105261332025694309315718893987673804578348602223504810271192474115027268250059982766828066815313480403834734148834446759556843951693931809688327216844208825097076548272962501839590592854933931557063190367291547767023028074311134824436415942938024204052636305050560700345245806194728679644591634755874850094457095126268922343565682034745236069362719077118821783202397053899379357433745488207348641060747910053267269478256780591367745917620740798473164144775116410686601435003453639225740529327888841253595432628995882041220992835630784619733449391307621434900635751552784976563897849461703926352173809119286505024071643876185092886885060753916797441267999572824813184075478667685651396809893277232328447739699501100792202252090470753747097467262215798815804855083310895070667132082958277814107274952077396056850556259834180188283760121982743426515077747594228987268183277216887488349498372574507805941140123301139938934644637474822868777682312700825682928233358198291442138009662215335803803921239067749559539214746030257279568024959885741855045840012898501901084611487424580762763653554284791056386715883069679178845308756570948559471885133764192686218338603432467750355436327877155365265033102883288067760229592212776134724563859411291857936613466543866612462199997417117325697058684260143732916456102373559310673119562584076961717693421740228403876055784145750561440019144199422040921495868871386809271103286150368428994475701516527501431367130765882757219051558071400687381383501396301389222979028205530536949306650426340824983224359868814703272962899320193921412397039187989090359412737705924063855988560984717279729437588347969646484951282243009098417130193317870501667783317129760137213089253204977906892447059426236989701711752489003173602498499355987350833545980168055241789073171439656073495382770939706967313443623382413564342064223212402111511231374228477370835781934383863947098405805115101379703975898071625246601358301139894848330389250909658819447842344130691204642545615435600721868298433563889695178660849042273792032307447213366247886851254437048572838718942646057849320693631273828239780728992586668600556159274728547597906190446453964422406239994610931955723422635624966448365974186697735997934399379484780671571809083755318961731021805495620924656003709783821088369667364255966182773045540628558657510994264422537681382817969694639443893801934910887885380114942274621542261923806386564253282380630241301374904101004713749168430159149689240948687353791562480591466242029962381399362187706932007754976475045435121006321068135635827714471283325521704280508395966803300449743401349350038019424977882380217407058989760627421129789975185658677133282704120114451263047121302912507290824782340308952133499743504507617966604024121133685789730590360057238025722645645696451761361775566389390091181548902495302099211049432632986182539523322851473368740414796939062233536745811123636820287292961756448401043884504513154592211790544421512656119600414975257338573770588171125777139790600815715656627747661133865175238179952295011414992309470274957048792924136051111361959494524436668656817179940574474334314886526865223082087522165890902298480686132507372399847639384161628801990929618527237616334522063320343566148048221839938782295195478261991861422373203476469126594731748407561380410171540796412021660863864867111246534977124184299152233201114201462622713593072987174746835640449696912945135794546283223253716796521100999865371491861196561326030559193021756789656587510876854915812188333058661976523451025266699623831810582082625696388929440513304929077374731222213266475951328159018030468391099623476505997670918401522776717925110406461286713806708208929600676453888647363669620654321427294444936925922539305204358423650286123554638124939472350850374075185299862538338627180246291885672464145592196677090437276959558984991696975520928142388013573163658517482813700491376037858155988863693880249907895404871841906203594412212713139514643494853168022115631654627218413498024417425835513011829368855557950709294654336123980310653268745196402559351294122426352838414513220217382233291174347111938228018479504764698118654840221723857959834623162295953267520625845063440498762115256451920950874307647941163309949337266683152546564675072585874261042774650934905674897816745651300090868623531636993283526573388801104969878726175550689542648660866794759080683236701266718379010831825347552418273800985459740373150305930515813244776914155157454299640452287853074965793638351590072217034368945672227444807730561869097410408058118338149503862916440277017300203832774827832560303563558976505360390697675679835954360779667496602364902892749622746301314444102432193615258548409416086639893603552191384326393567470247866506853511892052359409208938631294557719486095051861166229363075264370741771768727821560198957868677750464697544208868527814076627893704489503499991215355577155928364194282235002802331117568892968853460769432848579982753867397648897277220913499346138144270513316410453734080939613706590223160790452773767541310646004972182405015561440647958447547537089480185955334857994369872381225215493547060418119398273794414837508783531094473323033704989563394574982011331112495299084279803818165954581788955959795895789054863126342298903973196693433728577184037834280755344267090627939987381937533892528397942088687050402948114611573318905695685764471027655422586602649846660400239864924266223555010685353990874496432242815003723165537570572790966734990098338945707107067511494954097948998032894762859440440232116058723394700498190370118012954472974931650748053924517145287845657451599367231031262640375325697888637083372151490075563678788804174380890723099601967821373704611231336731625761591959784331796440036229713686245920113930417651214319868332617863464647640261564146724766123782306067224773541898145520428358177622061573450017408499744130133024279751368659168513151450377257792175578342050207239211639370292724403176722025234542941689759320261976806891929253439620497790342593343702946236828728059326487486292741205679472325233993993320752015418170188705896245718490885611239206640698122112152751637334663608603441461583661231228383540190838552659104697393551398961730115230376293232405798136377161184390478915709578199724191346439851525279113258964586859408193856089607500297306275044999991382665682068169029920958651882620024868736897061308492386495725527520775177855837613108613802385116052256164166824306395371642457222339616374556952169271182590907860371998474065343578004866646564160373255871485872113956263775128580636312039752225788563117480966130983788515266300567521926745611400126769409074811884565374613590655226025240157348073561739177269758850700974951362501678554455835580173673492864968872786137404268011693662704036569437163845585521790447136645105071928056190892812061946371850706966382309329954542827434272442811850899273551926157900817913982162278255990009760809549936163559918608862158991533731057667116774348300587368356248339348327047345125633941613207810754429961371823306933551468300613909422921551460467695712157099675297392648678927309379580941875764477013981916524362187399537189975872295072114938973675344549761863591697763985567937162863565256571078093476066282167976658578623522513772013673998016136631828935716321309637657497313114436302075806404211932590858444256279233922497985199633778750026843530170946305115714192051800004746891730872933990100616792794448617837453749024597090399202689920775441831001303366305712233524603713464191120973060274879627765851016865531007111520243202477655611483947541029277446832498800810950340050018192532240142916798838854982644490821783474557110602280546157724238129437905635236316683802349021395056492912328245589151304424636379746521437339324739619916050176680039501967831602693960649857688992588834703890509222367612711427052559672998020788114445820603145589915429761368352245148036218456810830946200914163148494654946553759698345179352088689490806624440651187344172084113215124637401438972166687085448672751472511182183076001953351660946130664970791858808502263375059477390322742771079678253698900857478330097784123179274153441915202488519802176053340637855934260991564191612558020434825340031731948999560317282283861981259475849407606464161222743318076442704952985836102174330926267198083121073407631584095599239974959693032223430707205724791554936324399208882753495510476248352094701601024676377594222611539948251934671219310383429876488228973225444332588095897114255048677664882416014832523775194584525608559920714248130779678131797358456656808707606081093302018923422318032533328949479041494294583671065378365962525794724948745819171708303055305737613874985176997377942737411534036805338670446078412639210446654452215601798178912775338509213664742786697647257518083111250729573864656960967573264738429585591828370318041462761150576751806137922741886900614638090356584555214528215992744608711037862351765837153505295510493027750335589799534541373321455735747167389832945967106738060063048358409037663387453824125966215793526102121828771802259790388372220697177014621263413230443342410210270386804339820893707464964430299546114548211491655138109108781718699450551333736736611147142485206031959122045572309000694024309673034421352097401269277444426601447266350633188286785920019392624631035828959062217750384885884474379522736619778571118479263836110296990508106813385238292844692427023370529764377696454717627467376198743444201375279366685233205532245883036089421240687579103300939728585247576761070686098111782209013537185761973536250492683424443136822200599477539585095706851495026991858224697718793589763940099886374511446313250107647649989056279909941785411564396949014653633035774436531234156422222386610646468866752335783894818437074427144003750176718015695724740864113420527957225935157241755569293840749455557929079340107171024999555656397628057504921180146335920171386317270260184279631255535642323420468970086183551358955035189373244448345918392950560765653707780918857927534899037145986079276594833128606446392871631642121953615785879599392790776016036704113085558120923946937503763576225958475502600895504157406662984995909054629024342902711500478598988567793607745743582981558577159475848103011397246712148426115886902522731153804704706897780380269663985907054658673086696950415752186573689329100252293546156423541533492910306244359317345600532544377703944444340638001311234929751724209054292862588200259187697939950886861483409411573145222685278726415828687348836001370188493442867126727107205325893975409599017896925271564786491230385393164650674951580634327716159703245399009414237619680995032914827856266641437662974416320768114171985675491007401898505721825525096416580628515151918246644057824024340177155907528103979967633753131602254435684143715701026924393045459639109049346737131741890910986528723980033706092523662837793281243798272231793583555100911109878527178271812540005428093406844374966487909487650964367713821732819523277353822742902714857841087724566520000613105476501459125068089177123016756626696763241142435185603303440810176636199609254996122054331875068327094208928562305810281027131318570962246428140799955464995164391958945563508900748652857060723099263578096951912461420007650838700502396167650958140833141264604570686899283320065462075106907767235852875528391537467117234396935296087873550072822107354873957248498221956412796949826023485331772432786319766510294566989722499698223328232742698742330544774335276150700259783835819607453572261993906932121409619024225723602045510621602227876122619715538632169675942745158424433675816536601644895742836016151292625934222543211343246622566304472307532472866185160077332677654971283792451258491493382676077883628252598404404675711424599450870882115131059980921721660975587551182119948623938496999183635157338880788812490344903671610942609465596535749604614244132729808061236940359650845663794524525597228013567611385666384460784795853415823317884278795143419921603934282083652247217588486636368524115687418202215439339068391365680238400999260196524334876624565182489924166595891456854209532753798295524769582139180287922559835822887637898732716320743713812461147940395095234082321128108154749724929804026430568640289429866701536202269748414266878278208316513440566570420284258365582298059325143226500566997010810167982389438065426096031872362731327213150117996201084189147278242903398422541005758343750237399260132566723595962248693055953989104331291122349325588760755650129315841177042807760240265795043531240427168000992940520254795117931385935871603312196970877308059634611657472405502098411996928252698086541932185999477012930291095327849563422714560247331517389763837640760437621634435285318721758769690351406952429990429877259689069322403147001174214241885800814280641384372998553296312825467254977723806729123369338618938464069334862019582963907807938960207313951239544399606317872353489699887697743197022643851086729564140938453444471430805980975565114792856999612443917509034590361544020866851331761539736704841522228604229958859538365910416333510280233286212179654284113224612669258052801327288024468670334829263627646523187137797275203865975464281554779841371678339860409879411986684683540464412682888219603071322831654384607331840946397296345778509223834308653279775309177793779754696870930960380934916797782523221984539824515839629845674196511292000482969408150350793248128534963918764161512393064403968587317763267171244837475569122531869286101073298511873216665453227759258879218447873156348681407504737696413573229386616926873222486179274659844390352233340746356720581233256013525550200186804823542858000427078132862357123855694445793178512444175815010970751855982693050984439136591969368944928320634233349957397678904811264298270572810377589740363189900193341770525215319780659736124854379976888709210324539627022759444025797700002961423454059775847054790239757391026851541543031079580932386102937488647875245539971658328045374050326844655167993311889238400837882388983383569844259347718463182294559084680283444728583740153818799670112465485737604222555676070484462227183212581777838292669775117031338569942478632599373919831118056372359462453850999435800768378386260454203051491398785842685004144507586101628694826923679618749284493303954504447835619246774521198682384993808277379988377760589493502967259888715479003363849423449879979236177889917395639320059950504054128299456777416609966124217435102023816211220923521111204514550984235296091039178539602930133493272526754793586793354406449314425594142448838306569138027332072648519157832464725016207327514969246222325114074515936624911499611913522654490661238433462402014545231638031639148154246564662403755074652705988680790603539750259384003713389231799894695788382823593126656198983129120336391078586426162081547779371022200653160375513940637303098844917049703883246537464616193208810656234336194444681021480210909100782474613721224399867876510420288842538225608029587974924735491499268826809435779229260589583775211124387197574949038246402863116209484626242251901265107391411675410038854966114130425642265605778652275801803737995025172723711974113269750730020803103004502862360091549231248592914774288131432661960747737096215913636642544464683164713253131662997570727755013161636664784378199640994403195222347852757055632611444929473522787903113041477845247544194788151702341089445777252207779971573857332875008608931869861848898938408804510053315776720739809646575933069153669338482315532115016522950990150167857147926085877946056599653248006927727936984206440779367712323656660830317572916530193158921581817958738429889132217475913338447084883092648990184418463498403959126387830509043557537908326410494334860833672270933211868671681299292635925418506804472600799739942214195773833680653536970134940589247738823793499640081380701079519845417417766853123407945399720570953804156156558783497111102168161236211706360622120570063714605276300014499597151698126113375033310525481888439505335120782905912767750041925357574277606738659694563001982130975571300866725922777034021293813650346622159323420378578448566452269085478103016633558779414684538919368587188483886028600401561120900961513634929353366210484035967230763415505207877689268357133430548864040296102528215173404880740862220242357186734626289714123664698501201005696237996262727369701592547152144790529570233496854676678535722720980411941104055901479197816437271966801228145638962462939149064262876086387303280218696089017605432196918249810644538268431963679597108537551631689341545201761415786804768778153923595633337909061426357283659217072907069476232283282237269739385176697510954250897306477331637740243548283570506697937201869772986417152642323703259695491253734662200846148824340503971790340004277967053560250358693250501180840917216694136494591903372938340511740400153161372497848109758370028546975018663594850673100097971617107580707576719780257957161469667880547608383224873891804661865427892678613304810100614789219329208645576762122051568674480923896353390628623435628087286269389307853877917644964852448926763172827489821316839682115124705327402765144867563962643659755415795978178204866024411213676932411496694584442759425866575454077473913640543560413260808606339738605643012807144697359312379147156984920252976123367916232450364923651622108985254257605060771475752027065230200801036670293570352276993644274838825454745007955755417140353189222506250212590822952761454195182964301139468793037395270977485262602914519639130080190861826682363903608716789145604356135235507880062845319278910811754415287984585482890281264789455984963030634324254579377280928262963152823769110464618816783628089572783970326662076842176173437841329900807944303166001198302286472905438586767511807144334449582860327496061308054003556171041046035539896598527501546070700749719042888514208864934048306501981768643566962331820818181995250879575275258763861121031103861265826147508051187099986972808070110656797687096820894944485394242157942993123002890615652514550732598193730503487705441561488971355908638238690809388020023668731292394004079332693975682352535163152212072072910113249815134014350622588930365612770191775315662838689658017291404141988339127119744459567686836677041399077412060876391048645044442746648920202651398082434203711887808439464307713237022954296820175460576326692987555063503390329090111244098431771234007450482852260607223141516408530481584642146401112941308436826538863988773021222251345271797140717653274798009698418143480714626863939532360512330807827045112335105481331972639150674315525986629550504638261778623326063386842186998842329572341965229664122883281281969934146926449269787761641230731637678560511559586690695656100980690233814813090613860333377104104362418199752282660216874792648302047649888377849430279790222764909305156703499622115643867302359181114252133540097224493222470638117558741677269265051097143398650873120073634277344642917769521279327755137722384525056523929824075105285820979916006707921269819622433294963208451314885774196255948432392341238486319073294681389809590913372316110331883592908487269330785778956602285750265763273281531514335342475193351317307748849533953103168357862097912702546914439730617391390584689660242849739947273374575273482738776187715979607999334206833479652353240054984226222546561982716904207143920235830304038355143029490498737313245048382306318052627227119350875563437173765620573103173294213497497669356378934131310686865146775370983181743969155103959627948962443871246843979990013198485677837895678469856096514960318545296454482819879286229187641315588182817163329707861889597676016786602758489196555643072157548241516541435606677700221620517432017492500449471480655334589795796505735243539356933158714741171567862676994791379768407081929120614941570978917386820712916719550581712188506084766286857250672120573675709955205100002952738724081298936862749309057740307430605555042879346241988054363938364291161946641264429312590792186339168654366367889390539713772227230756751356476773009915258282264771841394091715136488872043686487696461969446627703052021153854386827341972509043653671011745556203406574832157994304048289307907057790500042948167318370209179576896539331346775223635109033403190552421594181155567988034687441575886160804234214949278675849827760076272112047257368652237335539296634809369319434239944195411599976482011834170518579361351411401571439416288305015031836598333629007837557706977043386635792452099736575896980239479900444490698477421280757108111110141818097242771800028519490785147479140557653606794730901257566300747354461529502890543902295250689376781612709848209205154918789247253297591504097978051903963424195565414561363922460682057606587930205129982024671653943406911938273406062911759138340301499635430731146581436704118165788805912646643037469002604602019211198910158120795527055293061754732838708395945393184157129415283629390158328688655228620182865335287769122524496432497974412506609506105801116850607275316702460665614664224786961970714710287669715542514900558233152268875141592889257044556529129232489115963791995603699656300780220104153520810422617821025528722307158081874765717004840612734934999628829830399237598864613051921432808502912275639709214608237331831313757319689142285604523480913036248808562983894721809327716670222985089746517723389780434701833670801260065414661426521619603660117805396754124986603699750347344590613571682122703644380626609529148750346597606787753088053627832923403225882352564837678551226691226852851010740327136163609624318920428156142032738560809388820784682557249073090435349686384357793810712344602307370210826828589021063543871134194489589323961959592338958286531533616558875259342538470311185277701174915359879258651414171761877841661330322747261581881769689673299946034236941368940684556765793480028380804084399647997096424282571920704098051316006522309258779243271598571809988608785056921786017430228126981399609335043519723019750358806297095381900287406348443660592538957146299009594615153438391940601204834797725036323523117647417205012098063796937668710714963048471764236477639387090058033309217599655481782286157573091820058295455552009000929208565934780261071369393447377764081263428499143868894376079948938599891843166960023587463226981128096990213165173640388295276696130843602398608040980755290287034195416758779857372794966364668578890510920133126737111997361111094730229621634918859389745099684154712500279705057747766298671347154509491472961103847153457543639593380754173875301842079610592208994316352189234768266984834941484359863674278893856084481023457632651793636829610643370861270309218789607996709084715220612839629446969920837997295395865089587224677636114825016352305570367100294006716449073662367473225050045701114081028851352360862380370132270983185600005854064168161744970667758628849862413704444723054121730403663776824791927447921303554871483453813927513410695644282180952833690802092725860939910028714252652901695681374285465216774837057602793468080722841167398391884344431460944066544128273790571121804641317498424697910939921538885023271020059183208966545659330706263780375399559038694018232804626854842034777518684244230260821473287410641735932855831824610125885756192801944728614077334474601210870318279662364240987402588956681612162738312104999767982778204165584600035647178293847858625108760369828359699321762196787582886423346219224082203899983844330901191686090750985725218679144572661092545186971387440466357389524438406173607956759679266772013662468711170648986540998812957382796248214012250631177582612286913671078106437660186008625345913268548805506399125469459302667437167443763600309837490984314414083978513966832559496949658908475917637973909595757169589023200654753378671536573006868851651453713305898375426696292415228141440584247638358612119419373155057971725867547064842633384457021937287293359984640861607732652327337639129810858750169954716134541472411162848255175576152583682651309421146845396110815188582295092738160071581559055809312203078215073636217012810554557780610929779643500250445013841806449786161321631763630422056553365900509325060694012078766413915644535825816372535406336627953070586109556863771296956510425041916431273962324951287436008362638759394770483885486766358138444015013450149308725552222169972612851865895033212378316143611062465610085435938532721495057380410054780756931156323814182903900323802046811480402892105541710887760199202708487699278147269923948967720002286635687694090151155374074583146486932595111807627454738585976965079526037128872933180241099675579813693765463651108839691447485060127051460932862634008083685738776362454737697772035145081642008339220892735793768092064481883672077206198641318170677830489678942941739086841409714555119810305393679202258223222620896882411694644376964004470440415160563823858840580044212745133048173487310932496673206946481774105718184219157890981211574598359138864082629902437053707742729519765799078503483758990609540070943567851434876593485265254683627077712553337282982175220527690343329425935629835526682590038031401231281798390471037745143755987809176953710113259870853874780697661854002021416977190044364257783379911358835697776988379929894898877950271497864069523765858515387298790568479297075488177935327689294113652320203212307589544516671762847115280491815793566089116988299464492992872835017303695264137138207626415962040976757537947126613211028200900787386767898973072608984093728774794029830600717225723193434543272845900953667989326733623381321425539965779997481929961717096527643445822140986706505661273576694710909384131070905613594731345385338118720599588046619705967467370566859783524298660065375645945882493093820728907896252274013489527541673050436351416555612806420392229090618342080722246550681408496664480257023979693863009407779824422888976110014897709633656929173670332310222024051830656806190202270933219756844228372874154736669364190864199415263348785712534748584521803685365447344895601971366634673547252357608395922294310095478691885789803403165154222103109353148891577289810781466279965925317530526454801360853764972299562406314474865112574734161875932214567206167757320592295381884376016283937744614330602893204745662136119887082239790434232582599311356684693366524460098897284398769482713851283794785317119813041339556431189902534473204228139233812739225917240818077269900558693897451956176379532022816731329457775413823729191860695855486208020675258819432266819241117672907134360713034862473472279998698834777542992143412961450316205592656538430177117509819902863997365754931572915506810781406392555277361230729527357725237305593671461785305240325390095831284900564596771067183414573096653417212785150636914173375819877475558935026388554317363644001496219037874741449243685781801324259972421897522257115869495042307565362079206888132567812857979134114746916687168033437480824273593963559838060757876596638351872214034468544862620156108101538552675088105363519649390281881604565912135719972138407868159217655795190637374526840729512080103422663745006801564730699640675361259579593765498339302002067512364118648155267018740251712825500356001297762191177784526344078208635580389126140544561908663260492782153918055071671244175029750480913950610771307521062948993022450846256078970129566110094251819626275126489064177671205646447249753671149489227812353055608766426699307370025384934893999962731232291561013431886608150363585851638027144812845917203694527842144104168795856938470935001122410815836617449653435866687735172590904132864521041470297964294485546365010384246093332137898687649765512014181255752303141368241421413300144841070089470276506219377498879169897708228668668683395430593799160847506570001295026463479264337081043147847277014374061356773689631889735403166386271114234647659244131513332812602303293470382594720732376756831388500944402767361927911608933207352415926933470217700555670069337321119577191194651317862039520883718612724146022537030085620808918929820288841635703632417101251354359670233718988199019686991702029210573955307533729521969639072977590652030822074413593867733442239910450477174758181716260570634624693241279174031525265808414787277482829317282218469873588717653205293300750247662903228350071613894854445456531666929833601881529768328173977175221110841761188728095237447625402960206995139809933964037596297541147984843055792728961302766475531782206742216209494043019313398668213793670617279322911488521544232341561095348368804050698893147447134036953850105401701929708872769693760898781916255556871084066481332638825843111578847194266822204392336768700535404224528504218104034818439765066156997025424556214519056853974848396192105934661748090662595391868759546862960101052625491540618727066963127707930796110438284795652309060293976010689993247613572838444261217976574656967455325865835296125596221841380385227167724183892772435264987283236563143083235084582325182071801078542114215907944673759428608957623714966024741521171060399910936476766160208188058532754225095613363007858278469026939776084004369767360063724144560841729004383929167036026418838502411836727286807734868867960126947776205975879431650084502377786452699762039277535982174347600356756857676054530699379669295369588410581448726323905744892526123026973338118782019914487366774009701275135333926605294785340606607539831573641795866938078288608880831491580208233039253181085588591605097754054464802773847526547279700161955780235063832069282221922727782891142896951539496216047133631587155623957606008800011548660922624424614527335856346470652875548878599837755104474053144027359463975305630356470147162307833924573573980143125420550053049698395463498446036200326231134927189824939838258100114662376902271005688150623177344988950748961014360597940737810043906997238879664687464630781067719801627448031648063790900055016242771841563731727015748944198573580992273335981477637215950959835521840839312292380230766885579154522429757076236154002714095337608856807730568149505181307767232981043228105476754805300432810127139025783003603988124188826350756250224328923256015211826541503203466722076114667482056265793216145830347651970356994804014087961540648885937012094535164848606003967998206466101746849438502713014759178409505519844720449867262509077531303290524132808740175338472197694545559240222970479297578556045495797574012506941868162226616595979439242197962121899496515581334160267978941617454420284501299529726171496938003162758263662449760652122999793362392788005604432728134990323942021629400900032629014014877964905240573424528895375115841416740813279906921447492613802822535661903843404663332723136365178627161184750029790394533277289878453081205546588406819279223509640784886371155648270003719012695778531577841866318867207340747537344237334120233009033186377965468628452845026485913424011304248727394376227991813401659193830127231967049576370662705833828130061063233960810726646116640169249003194202137279635136354779368448641101706770491812146920239081813015701526044522016041949754694530821610797790367818967193706271187035436274554523791442366771782197925751424659024111012940799425401500039711944569060788477859984762795534859918885062112969154324551309032865829169967593329287451802096731966624514498413724468562852138392369829412328457428673231784381422382321305128088480446303489902755086834650162942443157840728359066502446879994964642200263561676204205921166481333999190685176383922884467634336893808276715661547207631582163522446518993344177566951373221365386547826389131296023281000301943410417277048015699874217139323770512534071532723661022705437467991567490194599297906352380146575648345142996777192219550139466750300501891739554497094697153164899041031874931042797423823929563846713407036722015881965331100037525871780213582575761439710732191217890671929870528800764765074678955971550525807734113516980940805511443721069254931401253005639947954837096237630039352940146950344662562996961135908522012738833457486847687786789685896916257419033454086490326041868713833216719389019678181062376697209090730800502244660069480611855690675917869718030066122884475698829015197199740469169409227256039346303607303127687039197906804696569425902216304539062787169004902171749296685513958123315337117038694734487199296647301166925980348574254432637312878787968875540700914137683684403606785864267472643350311162358470599888989227886173859844244293702910784141642878058129024167833449242020062500468128367028219139115590759644818448476024562992624766690448077885154333728286347590773532215250225695956713623237462024850190035850521249672357186680368331169164617136434517526151993515585582447240182722263928640043083111010977681628267820034581478816665842117478609144488915201129689251694356914524859745675063878074092336741089227165577944064752791640308676963123015997899854316983001301719507047059189028739252216098310197463468395187557288961280454828326309894237384443196866720235265624752296186739838220425017806343927401649737122106369353751165318894658026901943826634704643085097914966053704588827994089849560993750711061670409719388121885510488490387990721954677288163475965677073438433060768029771370384639370808078303146175745038249612757147144504691858440625128407833043929945127902226090830244578134048324854715524742144769281058889226943045597518980432346036981561414091600201409177442608329864758460169825863560853763354602610119889053118978434036107686690239678822899582575528065264238726021102691524062893820844605949848653754497418293911406288009695716256976232260168361792468151723079596982639257499360926050716373948386366348257172627360251853660239994314407979618550027169901621196597932065259249074135867486814406564489576771685093240682265719354011125138116675041951223660910290422195458344651502618119613338768480227669763647089246228009587703881274333158837241532925163765470062021112343346365694745487004045415476133650166441154124194336300899045185450297187792482526946199332333813977788980542373529765322013507094625446751076736643817840103963125433915193436666803041706028439214878824876620602163926292601356430676619707205312032551072360055964999270042258760200520158801674731997366506707718741900562886662676802948783445156693666076174396404763200167272140484192309783265374066869865860321140444758524127779340250504788289255515472107863169118183592008916843800923425927022847675532595930909789292636204407916832799389815044813500851632746384987415142721551797043363934310600018016000734376153588177266840216015616481405987651755073042236773117665702021947034291550376082142893308083470401624650039813711978828948572220589650031217378721938326393057105191987108821834803796820366898443485229221481673961862718039875463676905757500399599526570331916741943555453539747543320698196671134934111928267541499926399779895135501097912034764591346915809629848341067399655949416588144259406841118050535924163178833202132871247445696567318294395413612359780412909121367483823584867286396087784034683978909916596279688708772753450447615287395385597492609945125882609186338119518405191204919808720612757873390176369397238590570855462347753721211350346284990665692931751087896734095799621549110918544957754482457375708148766517201107796352039420333675002320327614448790169550752445052312455815949505618365395133606317650158860871325094225667298642580914974848423438693139448859825543750546020070090574499089544501090354943472403379558347459375678136156278818556386194212337581140487273214565677308850420078914132868629839709167129023526377007899612468893339355032134912189653174847276889663804909462216358619379084221404564984324666049152222551309481271469963079019626349949162366157426835720794850582260520428836268072898003242202845297023502555609126003930380076109425533676905208400287607700149637245871456552130622633951472404250328760602822946865522126909389566748537901760128249183190446619758711632470491962155705860410150808342486869526814482875520087573487221778235580163183324306209440416911248782106731561729324609780959207782949069504001336969418902524524953042955219620631027279087763583434537808834248161484733500361103448682724622815335456345519410331051960072800169988602521712489477071377896771788701232170274579224311363873974032876327866044024485946198775166650141971061142732438730492061562162374293018250457062691190050571265985779660619985712102961842294957690328747280502603717081210955426696944337983342344725315536812365269615481513761976487599728936944115703584021501991229698672808542705670794333099523808976307063690191607636066303182756096895510342680706981860499466147982984675593086559708566646103759837603145669846881980353438459018344396274927387067686237931838525999703904400386543720642286490786583787112537428421068943440065668891980371924316748897138902285341142096055574808969042223185264949980057659542378558353768369480795166460344463385445857726208370789415080670855110794847971237479537838794693330223352697008758086932718088797288984724970274636208510325778414656840789150593276160679840888211303424858960117081521999755801060298076285033960228035881041507638923653832269385107668221140975408756651049764975354082226196950150387245498690054331782728215360895306438550314174636477446744679278522936869595044107148763764945826905535875424638273086651203553209079396000458758744896544822968399071410076457242325843806159257837576152666048801636156967810742877617177334168248646368082381253339493775401607557324380831673005030792437460229399233992526766673643661824037301553805141817891268909120626911646958059258526452773281914478399920804653242457876482989435317908997363811143204674919464133911982404233372079782762978281644974505884851866671481221460690301285471928557289299913820908065404375371329117119037364017049225349986882730664187982061546103209433750582715877709971909533886734690069360571892882533289609079180861670346423884199783477594374962631592060360126608796557510987305115787069411038674307460288945884127526150653627422346260598293681734275428987604517602184020769085437465588947999291247526724579479322112375491884364459534233809866679098504421651807697360313175931869331341224993668394422123489278518992267286560138170400125854322618648073937621980029783147480807826961479939715632898678235208188262501372149385270219349048350713727162930896643479005694436293833866376527461184409995891898069738711151942178520511000378763902799372857002342147189845145473071959746804757912830322936849332092983633346157712780215280369248515196365976285888625606543583611612804429467824391213488897065421633120235102731416333404303109414755373601418899141675625414314163647938091100078904031148189227903730203065513662861428865430439139020682117805180097653513131865675705230224267816001746213224283767928874045362914407816126775833150665555870256591290805505505289667560083407353023727255873082052277414087203140190194612604610312555522052347520415075670404935952829572493040006199348975353577016541533218035822948099643306241590318513613709660410863165553650314308546027472032190934892336775079937867375099240936289061392522692193927404674412578779785507961480922554701908642423954858964927727954433393144446566854949878387808718333411279983043933151322064703531022746884224238993551238728477449597437595763855348986622679838023860066961083928059474764274606670507455850176037527245991048214212238128300674685673944660455507182536788973036028413811961048632984586747716259959403594005258469867641718397564427909898095142391380360634045405267386029954475693468149290097428885256389791413102880919875147731711334410820970329920059162845226119710188190435512287060822271040018066504853583347280093876978047445647800368565149908653124771295812793611117598420669083293428739467286064295672619939575595122428079994259345536944899508666353030775733190060000338940351271003302163298132696400411297124495750255813609714046007388071347923187436994769449703419013103545223529978213808673920496679470565810484835724578480868210278042911662717832970841674409792429864008956744564301382106723492766421869932873382292376084794948704241863185193065835469029111968445721544759393157166056236255970495324100705310841891450048656193462928143520920319298135453587099889475718170727853508953701091259719052484908108236323943359006973849243119602383545139488625969264240536962626641233184655095416673574400407632069758309708019803240626080344778679225159302282014970627674486324130523018458155831453892432426009238467118827603041277510641623182100558051572906095676248881009077872114014615136890725751334336294626436420774314515663582685591036720718910510868248275432150802066093649423872112123472886298092271855242540013890145006440052227598113765948739410888479506750936119679209106259068433618067361363576335768738574892705025453008719863493097627670588222451149236773062844868727869071144575246040273323649312301700217485096807418459088991105499545201113319036973872062736875089286894482137869523348603837384264893119643559476119076868424830551672906310249273798366056102314039412731336438803607423551375980647703244401918436115378192732746263197867102911895089348596669821534085844558514975841273330771215531448586253362193462388920006170551259247607872040702675413524415580205574193816552787526211990857447569362389915837012673760554555891580411122124290269427444039264253548180147286214393479122072914967669598359603434884039620168594606179550846896894370437004029025198286142119303709697725447196174085715949731368432116754379249105808012569711411314677245254475291983163598375701629303167126503149681898315677538179055456609428134976973729209840582174946350041742317506866440829559926342837595770480891706146843116853215005236112451400087167435144020776774348268570255872705405492077219293597695480553808078938118955419325707039176197118372654082955814493105643822405225198248386070868265669978849272350343588873989817902024480462863894419646746845207528427178169296823250691002414902654069221091135516414745058264061914080706608888191227763692551811793405991955662933125739175106891403331109887175517387521423025124423951389263609814279568672514675839752546399544502268798035136145338874149381272268816976000824423125822121434182155548744498168592433285515063612134031064779834265703236867037826074544330204206828157263536370539422859464741627237730904404545494700053712946322795677585162951045864609019740563937894378142354212934283622688363587792438813231731126964277122402817993390768236171462832468781169358608042490503022140040188845400245934654200500366649575777355564927804180702001433894782115732534588421332875703513079167088992654878941233413795790315762476057531867657654016541965837247585835345266000396970860044387045760579938079501372979405119607243652247336533013380636509684738453208800404265318283740659705162436523735443130075919729001677757998968378525400178947392759216578244416276511315387659137288190669756157986194819780925204229120125991549642040942045480926820647069712720151868934361876017393315420771107239700151468255890138414200283112790959501909588173177244152678677340417200086726774342701068433093693697456435709421651003502215340297575112410345146743763079363146747471882574010276643012153374482326757141235636748091483065744575343358267905943782434453337898139930128104076814417516706518352814787452153884787731001401214454462290765001132882153504128790548907874357677904351638991863417763047668183840709922927488562910452239668814419367731918397629907596817721752462380930276897940108095530208363542098811385306024369470632800984444276080702796534901047278199711625128369654572011509268109105853835175493707623595878660485157315348045708876237492611100273866013338160106847254978848783015505257300374512486682630520711529614651050652849601400760063293902906624411949353562040361681643372414049871069835307407546305404757194126194804711039125690374374979490004913287294076142557940449625866657119850996867348536903817658687928343331270066433013282266517435058433075812098822020804390543359277810680964954696927585711712552508098036496722956128771097789656054571795702934603147948881123044151461267963997246946828738966984047096885562655381738944025222523688206380916591827439620104548246440344619778250143115111015096951633128557837111566214107637905800944517442297808104145507177668103395758154084651958145364050409279884336607745708447589683109843228076300225102179585198995969343716432362718524539635474703846338892660832371603643903986860041170230628889699535957399031187099539572087171508151059680212131564814644376704248996506459701160817048755776016976409066823196592356314942564758169011334386851988965665480456582756966618101339046643084776256245378024506186137817727713768086611296778433187761054960969297322076779039107380749147931951572992952899164671802122922363863213735339464071762413812179794099206961636767940827342484312147272147149818956188651243114330414264619880243409139663098912982355524292583197873204271687646390819462777774231437350248394258630789799563240086201041130822019688113997267183053148293988460298416562155617150822293177884030452239223066300289443528475084069059750758992351040569458150407199555122712511120273671890115679067098265266048275370240778270303396475995060421644065877856528049432039343248567535188576336353617535032123007630121682373388212870185027563344791613076625097489496542417815583030561713475241254395257512829701349955194414986027637552972798293846894813793688087305601879944689819483368088315193696087201607998608062671072440338280884461298582694207648390896703863169918560323501401403065160961041804259066633591770129772961336909693731043930234137306699260113482777111496124430776825588702287848210070138044129352820330535239862942445742303149932572818655260626802963876613702989021035502145065950905294736384007522200900712900871881243230378115829901354711342593465045372689575556316835702274545223783779792050198953962392186494321398625321706073821357828364579399089463458996991914043657691422442237555237070804733185414590010841870655533470138021671266302860743788309895173447888981333380232466282918908916703836895012154101643385672304219213993333226488121644948947363203110698010076732313282306365319542974981918675547430198778293083186075549340652583555570153750289015968529183267431013918848572289283273568610527353688817163705138518757641343335015778376216347054937399859452533120573474151270104336185982240838051212312786281296987868421611983658511701727051732334262606253204274840458537653475850891346687584856889920942067296504223460366549021516883681806612279399811477144917523503027222720834033948376453515370002590302808282682258296755763806447364973927568195095118481529228326004713982820063506337737588216216343452972061451952116991779396661385507586363456441757586707301712414007632330243267097167932432354936356801991926214182940505561617397210084790987447023134604888120534570062877364842807811560378390193612458398790738787765324162902302942048017971189713397230042911145570289038741107135356112591752782437875505771242305175014761976941112965634309901113407769984178350830408658960574501293915782972966464160611717420396223920779782931899407032730524264851372972052730356636899475356096746435415501774721904608106079680648350173577184861929859154031999734304801012033549866136767713218661547537784801725945527698521695720947762498283843994092467507369000602181105282772812988339402431739576661964020767184407662567937198751996479669998913492228507106425895303241835085799171597693866616959150191606983779710210166856447996274784186529691381673552374612863751597019987390336601381991140098866029293340343076328669168096219786161324953623462082423422744576969419032124130451762613785125991015610056207527949440129247538593373969111714412511657225307806004562231664221524867726781186557900855312190988209195255318567748915153365211916162295462729093432190243993696229151569810293993216884478274714656906641305287288863200986705588357248629522863148926950128500564675191757775066425142200224439727400052138328208576997709313634375682926515423326610117741877978710696357379277118644908269214923243176910520360577397727165682813477239637965967321457846239027554922037680122747628771342906162796839151549821611880909052955315407081795039146073611204854123028740370474804320864666418754286286046434593502539368834465357923517267371507773011884319640545749671746383931641402880785521033292441140907042260561037390625400598794825271452642005686076886887504262078024892761736034861788865535486600511810389996143620462775872919869229836645324297674152745615424621906216213956686671587913826469410768854865231650030264932865547313787784944665879862118658522146022844887773864979545762702927290639463745463898927255172257332627395385575260901089633354432009667567424341630533278649787355549942694497237394417679981569572864308691123862762339136080074850244953487964912935619467873302649771701421238023991446356537607749003195760770260438359998578296179678793619429513225135564025050967180818667550837930783035613270157815945344169750497036218147450668370101454049551263367650092732505503367856559451608087609579914618063482957253537001556774193005115491777351132129886206585265707420956638514856991684085179002644188212667326652148203612763588238476558465268014736473522017920770681172149507739819415223931869079834261209439739442540974006971920750534248714971364599943113702420284963992789628133854483995224540307758447627136494372600099158907687380194995455007893512561808706582475715528388782790707964304434350613975732974953581152740918565819898286375953775441329595638294250899021875296726695292996221298958686797671182850201464308923456835356372500206371403653332070559320064983883167861510702044464182505736689812782155694258831916947339924977635827280034767990632877718469884153264306094546021860397159051356662306156304519366225769860374180524857307763434863086936349742344365899359976004899692364302970630630474365651339782139447790076201682427044430361171861869221078347848837243270054701593073345798310268629764312315236351182926518115471633964517143391861250556166351865433731670054854616098025162973730485799427472801564074154402748644014781811104236265628992897106842716275624385048115305114665106849120935320162552461234732184879691770587859454325772679967020038366013499716916499327369557781979234617294101013833584241282411637463653109509226540511977051302824948255511083171066606701550650410842433988439153441532643646418427870031674469991153480104247642261206495335336490343529244969824838893497850070311434261777050167191660487800745792631807019577999902812629383481962938009783711648915546265047205662933353465856886322071940633640529625599259020086346278602192840597087489582751881447123504902270704014707610517829891599981679952387261172600146070031706549869025141601142675415994347915554641887777270174289682931616130591111554049195839034632058643135548687452295257954712426936490475489340378083103803386138735266194566766607770207475972637813481249297724211891307389183471618929059746232976399226082755685888206982011784038251999536511561160217280115000869241607363611180336832971457425204642364401495631389360768931434341860230223799139857742023884450382095624339630355427916513281098555846116456168614377420310328247327145319861251621050072867165315077584633565091004924230300890802004801399682534278612352392483927717008968185369212162776516150877438104339705046789920548946603156165724167662591986907534416716898738318136940856267637348268028651585256478418526511318228135341370140924479455446883762825758254994426293564483043406857563133174647326450647772701533370212815917328747817421373123197997015134169772925766031771431874695856467133783825673147102409102291266718756942339983055914598208657874392150362151044278202940999331142978661278846729627249085219041937895537282571437645345218953718454671175912185673640868210074611193555066886110771139011583197877038616869593737027261489738226072321803351565126382949736764662115195223660725900116842282406955830950314879369039024468072020274734442549169546646415818641817252067304730183470777098113058860313358376422845203977264256918928139357261472284004724786700723310623968854869525638792685272868225985801684920747772772768464756640409325735593998306056940426023208000200023550444817813462912118627456967689393671256467406025772757546751983052176021872378936772128602986205895126807160489398315996437260379952547707226948287248380795832444919149828839846141635722155857546187818301728002119852140431506774165177154002329059886818885532542478696787623261965037630273444914498784036279662590779510343057675833431016245712296976850217138086439432623945254489948752072344496400510978652558788523462263755811504854465584380448371562112243059555380494975030665648226779045909900899421614989183318760905315607969520365675677039179097646890407504523244548787721515396990250698225989460183585436202360744776317234624469576433232935886166160535224827006198077840708932380763244586861926019558471558971066991553765977595630829370443180106809895059185883171614687346640357508079095048316975133319020815222726888009752996943325822512025552092552394245778424149926938232340735957944530167413888878535468871608211754383575002552757087443677229914971090623633626787137302378081897583503128930352931840908455386021802671848627998211405044269739615020738875404723305629049834252588989060297848811721240259182258982041755076550167195612614975285772400131184087430111140940870291409694544881090053377479454570730890719819554058466707380218545130109038854250903415579915128500369041933495129852092093045930891233733782910320119549859311560062048123642112880389406297245603233448796593118044432889683455800211718522735636414153293386283265586847614252847718603850986573077675031600192192005413292487845020760448269097480445478165162820838860441864828869742038055400939240324289502946595481405015923538965385179096361264500995364814973146523535551449211386134044583512404156753453910792562217067160064018048737706480530210589773825859192667542182824847368692081020038544264689279186146944967118451325344780681178482788337170701976863703396286709918053466191383780289355347540365872487945908058734837083667910340215323580109984002486107164176147111292476898249288109105211507659503668923792485392474590837908776526148571031561162500906821925992907316766931876080294145923867930862122802246439795062801178118662895700514665584507547098345436140375466701404114042551822730445311238979811800110651601718685791814811975894203460161671975908670711254785403095599983799575739226174271661872147108061322705553749388949847963311467866005462809945489201084214309970653363155495014638607424287291209612171783593981500080387929382677689954393448572953574663152120591888996425088518760715431249740358543981819034271365992600212005553315221459161304584420666775405514923738630168480497776975925874286138444055595104977266087787616921913792890108319688507943012711074670706967245402486324430281395658829467739716543536967362929233192595858485591841530938639126602222587901277081268425849008330097085935591827202791734086545538654910494520887193301071524852882788234138291988936373099284142205398652075204288306448440010641635990024250481586577372869893773889995081858786730561324331540620113763450811073268554696258589142251034611902159936845364462618834585622115182702706456452818874809532419611191931879426434206009375073157787279687081972674076341534308869764076024693493781732223333444651344861832603119322959236664775495554543575199859589421037481740546815548105657821233283072006694419704328089261402828485093508371040514100532907052290198523264918851121222378886992812570904345723183369537940286667251695921452571869477142373364740032891284251411084297683551483715042490739970706604621001727520628493958646970493369145034307440937702366227928533846874030141907418068884202027555859218377216523078838763111142451522124915293427864439087126465141005810599817079443772481984371447710142818685474786889514091221961257126492188924324217404355713829964452883748022181684975041295663413204807419737901954910623588153525498088091850232384077749211138455489636974965837735309596646461606049267801005265034040995261317484912783038050331504335803996994824623363392861676131108434746875078413916198848765850547698873697591448111410864066058773303461236974659658138039799996109831410847199325934259132664306569444667629338612091535411236940960848365093117053700414861188841554299300166318061995166976362118726692166831999309043718101568937920703171101145222534659677870765482462739268328167586301329379393484084343270839006970488961011992734965670180274873167058765392475452554644515029003745273752067367860676055637816207591680615092987446618967012966210134128279676756932956384257706530950957004376700478297152996088036282286704379760871869875167921707611534734290348403752217557069140980550863618901036782266905713543139067651407817639750093887890956140677031111022602432811741607937140514975736209631038546475022436074662061274893979262024195760524570405508711555138530479088031730056058322159947957250717772619015077368438395507768815949329746781569273388645926478010328394400711424783717450368072292588311569735750101570908799760499408611685567842197864740580333322965145908120633605822521378610546066447503396466453609498792886328674733940280953952177632144982499470256473798251907734667546120587099262289462128731602553936991289303897145257027419073382166268197451360499263525127781107697352613855722078537923065840920587618291038004370233911995136549350571661539494747145530898950646032242182008231490594196124122772346075506169054655152777672141361390719899453772588687618840195856897970702516336618689876267921390283228947419199378343315096473600524785706059849910879080208878303651794640251848562297008400418382900910882169835461266527790908208410582735594808110031211320776090455202957929928728306897564383766706324491370277423985877514662431789650419995061824859875175896088658202441940047713466439764908363225118243712020738088023556767516422550184627700376916847491290218023230674193225777521137531637779178918725274562573003625084788358514939142159999809858515422153439138182315928723099144954700948270366544630537421821147688741493971265137326787744518426268679666483321775801950393468206192238918679881908358990894820444976092638117862375594468113878553851316657430585819786257770396833577434158293454006733891569519698740218192413421894678189247857747727025610035643796850665677826542860622632718922793071015879338438480031838487103343232647412885317943173754464799803426162688749262729464379005756477777287125937294744506948226996828281012843318720668552781285627600320307067877095929141141958222740888485281133810172916643421108035538160421128694625869439708379328909863938589158276273547685436236864807298046698189179883826093592709048458624562481576872731935111068009586839519160157462946138213259369929888997323766383865548098159072807370374215266989709647491763828051800414684275972520462203288730481017575468190015587834183507796938590891249539659058661903428702744748296219380263553740475734296627070498122651893199308976037176714326237350255866266180403782224739653851421282973743292426593261260024537521374314788834978883706622454040718241314739339657394415799768038441854557822164532157549949351355284801063808265424787956799305216533278098481719387221258140300436502884868174024787783365189869196423149291138552397838060881474772606629605971083819351783195917603596871941842491647975944611576147497770747975786615546540617529095550453169841612812151083230148251861883478294003281673554950265361768949584421885661315955859059664360412766826383125587768581812602726399600255569034407836972264937605782384675725235191188228574360747778963303102278790033925782349180600348286805320950483384468685376596095057036480260720594148433615649638721948143674758978668140880003995674084986584756728215109937592341873249356537706983127197720510743950443969774053222208528249686561869885227083901299053650166215155722516830426506914067716428953716750579877483498271355792278672680937954665397989348665416026812320187931644257110745019617324189966999401361718114683047848910891637360261567496269265402079650380810947809262510543335946303084403176239314552637234581685289491012745341251358009906011904113539479688388456961582623766505953450787556769946534296385890720216189268456002649297157047994835682924267843258766753854155213284193043035352152728333334369151447488321658189540030819879796873566460062863745320082425688233247925238123089002334158740474953763286557112466033945127233909898779829347451733476744761014642419126717657955607032973559301969586371711618586815904813284690657241370965101958814447679401523868653919248542081249401415906933482840438423660369048395121294718084028113659058952534950283957604232823798382885184728736025661046595671616593928876144444375232475596727875266045981347006514820791267580073770557255378464208615468346823280955597200122908556194557961581332127249364359305798635688557223139709346030468024995460882011685293083979753064022316593721775145948285635429069781620254596559864177337028857469376407860678607405425518027853999914158202963167016576465084943553949703951477810027718900088502872612624043764187967075358592788294784010894156048568112863418892325068879926168967813771683376956928806301722392743349549442570819125107524810391699914955602463726393070794682738368017712245848345923304512494358197870245000544045234943789411031297923440086819662687298951003521058537874624245969286769059162055003044866745997199505623949806978599613123343307869180808770917296320710173262513131590610645877755336669704309144569571660690183578648369448732233582644820631709743170993673283528259014873317781338617786426818875252460612152889353879343126765880880558214519962071046486919238856496217616314774435066363333018522504961084786761857547675793704891224073829187673156797178930347904670743969573611649975273644972126450225621608586761376880337013089368461439341350441609065456470290161790702398920394621306547302546379858156772942946051402330189010254938384172678139002718754057300840757898700127080704263934498487634745769284252320379101119993193442867194545846127208977255663516768566498336532471624772167695143122240643455419172503704664182631798890919357828690487910501518502957666644460224432550164974781733384293869465809021025835181544988001136791436807711701660085667831086302747348379842624825435228573745575563089157185134348061858354062496430911395966733927874922321616423711909232317522133089526501500795425902793548997898321205965385051718988559954414394804234350464214765976249482756092023369610709106254036943040239885220694738893037422082357334801504908503386158809434679923572539667227166583283197095730116286214272958483372077040676750904611863480774559827179153642486520212509225871983851860991413171111040761159875689625397099230950863369602491929162786230414108947718056891441514895627609542242005790982774497250914759731047611021786593550181457791370858766478402163458613227360194411730169273787055877527570970650595316620158026664166207916649979409765815348756367919267650234660147003450171857352085064381687690227285940519889997031563916921577457938083792679189516785130003062922244936016568132540267303757574118186677493186653947625881968209551639606805621903094496166079639869711234419033786694382863316825502314110448671236370241837115045961842049193146386010295165598649204507713968033571355477219692443048505245491406414785427404390368709229448286211789828980842613659983854077946745254476999156899302558494358765879392410767003922821624706725809871940146650654834179864611888199243503939470684622103128852883758493877412555801999792828913902017790719243209601987922620839501355718681483336867808086051829276435591592650151931863125920043056372698839879371490010576783597508506368338719075741649843079306591398867910197877645204055331856974582067038730521924302239189495863487910252673027791513410443949385141538627708077956922079264001412626032631485596123153237273473076390885137522368262629455600296412895964556473031716557468987208492615425343277366663910384328789241503188207671823427275750467471443933782351423355429431905657562167321548789165442970978695047113434609801160605467785943772377503079661146248902744212586637329776841964888592205750998005254738190855049516929065892198006466058252755134168424320784567922002164212781594791858880943582765806461747674798253777227926252799533379063498665004969424666169030550556530822830953583301857033146182475160900797159887817795502913550527852212211494395926697299996575016706442663600238062107911851949827833743233696614876307010054205257447484759761070886437457380480158670986476104220599829726285625073108520562672643218543459152750847664487145400822148679429026004159847307857382328612968427898839587540266587104275724630254990574174470409790591552218654736238893101663869827087285662735865868649400388226773552499428825955349422112066681140760892621558482643230978189669375072347858850825419555078835499719254155565552114566706965333353504776260423874985776534822232553886397819761563149695758443822120653381705783077182919676051511288738768961980887239867944814093439102820366671898811925237262692261261194764408038973133004652226288737879968638243688712419997473254635315659644029153270847689832607819794716607803700916216397216326328400014245681444332546715344075509141147278414496812555720085137431566067957774108636559506433183021145622263258400581835270960793567306996477374250430268080840235915019452009451482436997471334357076088519770504083648041014427297108868371461402856554699410027077778889801431976734766275931670375314063460135435437049816195414875061136882890468915443674318651194513215394892460254137716115982669531565861806800778438082163484951325291465402035552678616351176823963659707249763857406973262269340005363171385466336624528151064037006175423752057977320887903489715217718716269896595793441594234213860129877951386941250008671566367427549156295174547586198572716513627137411244752811336182164695828296200456834809255360655439448096180832589031442528313451164169087605120423900738278920807533042840297640012282996220260474593359943382258212846555331383798837885480644448845266042968114120797652645818214836402261412198517686885211507396068618943803072387359994233051266060988716156504596186962049515358690792041500518233647411325308173808555050183548664068456204960335645788974001579473462798498108642720954041640062700306913173317166296204310952267373121360362323363174269205482684865487002308324347165999222986035797782305066157570115886305239398486964372473143503131117766904111969387365166130445748528008619458083926272359719405715406286642731955408408015458127734712815135431771228253177785348050953029601836057835889814113085125258972223375324787488769071564087653590960189246845209864270535150349819192569045851331472129832064024876559362152179341410504057233353427529635600076377514057255285721778320447307557411653241594999347310462727723801856013264312452730569714669509982638117914572997362768076525453320419541756444921548822947094361740151869420595008679750293031166817676106861118702188546140596941485849458960193478257664811167645439164069188251374312623147502748160759145987248955081340732107897189238069993466811384185833791231014979514023642057897670749295701989029721529500410958063574481636393180175264947485483588920719261545278103906201353477882367166422642997254342651978759048410693431051007663137895252107927308361253171264796309961296505836494467393127655598003660066136087109861783049256473012396637315047951072810004338424726173212870852284302454513562913254882670240513827420248915520656321720337591958693836592297451424855113558236175477738419029997956867814725425899735261651164346824021892404507402122321750186454747159474722224490687808957793847457421609554213639664337111212429893865100151570397856242392510949800042877106671819351357660517229409639202042164709719824994438830767711289163029055679392434135768821334905651875713360019378298097151643182239608608272700215099605954843519220562017824475314498274626031371575931348175320561734524414726446570397649230348915750559298102990280087424478788914462575474862501288558145281556853037968265702533218864007705728979573364521375521858839049323913026144800338347658516446954783275431031868098151623990632008340003151134345179337964235250232838841029624471552406992943873261738710111367007550508874582743317754121628688484661912274012910909789748267568396954656187019862766201020762060052982021698728419035253662882878914646107942854658435714614564260613022441975542555600847603400165980210874324086550155339691241416502765477811047820968573037197262586639513301477445055104415353914612771899223985633411136571421630172311096906130881287304486065642802992969401964509579596313099450614752839422110403298378331909193068241443592306750169059893229798090315036329899548900935057388968360019983159600909315515606073291447518059181883726798439874868822155882991969174268525742737293213596887528185562538738513089237437912182689028807997089090195551327182854485588534157402964109868928989775655317627986705707382077766758335555165605966776923623518128841872383088247754315947506333459939806503143587237416789903844659482387991329069971080965100901237303434096077340485250556034405799123794417722943128143696607988774237009167779670025480387355241134951992809341543923102635494688843554775582720867048155398170040205623323569494404681638310912725661920400722643335212151312660031458252730515259692145786389625049494234129449308740583398178338805506390833715072440943733891404251650474933239393577917791491447674321588833673871322638604846973394773898648149312715236671902496243399738764995922632473652157825130926231671609722054321798885419396760091515142871772449487575581399881752054069859213406488013704473042222997368673848292716080239170782449496488474409564694857746321101773814205482900124941909832538744490986856884190526005968670714082473974766142290637182733407018870165087105480674475466099171508672375183712028228457108592172291594087329877037981314476150888574999746708409638543287537554272166075428154984730680107395520417504260746726091944974675934202285648995730142578619787107243687975058918711682350955008655303023236539832071696467186633870508078956192961685878069917344132658470728627545712545467342467799630764924155296465034934155351953402247516245685449714556120446460479119850601913117297253578849445960249633389312541103364399598743102522067996736609054193991766941301193048326882180510457011367755188706719995233551763954630137667537940569951894405518233616174764211267439766722140947044295974808248233410047370407677134941584987558023830982772224861395220391104799127695091545110565853416171145682320861876495099907772907521475019538010273108665416124863571763561576091446760890790752953495622338089020142059406134653684142301332352687050304358239733486209111901697582369974146600221841398087824686440615946007969037002283827179437629167499259863471719455635062811966537453713854537570447298508266262511912074258747279771212462167389777776878036015882829373522559367045674496140058615055624262814123976084570389570749704860967825646272924550317212960112275885401594104576334569895641112197724273240462531924187133002690706715158547753480027936302887991592985847845879787820221700835079650578961410903667550961695183187881286372423191523728819461653055110675410502060004910610800638906450246356773934624224745844811603965389275376284109585363750487787251351842624109872377440724214074130264116099338455103429654762657674692562387114938407549234891820201188353507491806272983319134299782663023361978815479979955185761163428055235837019790126151887897032403254312666072903084996043488216826753295059797699144293061667952159111918715853421601491289182209787541691733189182905761032047706323288018516805871190957178801934372204905614966873254422322549936358106200326083197029842624451653850553227280957996794580604950610989778354737292560083134765049668434615023445213243966270716128124641624958849796348604817106517520104668634945144287351490366437358703495375353477793885184817559193140069747469913469088111819997949873078481433285380685488465292961973504599698767368722486225305988854045036163392040103267267159335951545045732403722135872119409296195145736341951732842995011558527997765596368988865910300363404477126046075785193953532176140623265236868730070528678022710198730530259480901510501363626728741849898444960763402314097964412442615586126124029267443503917061010104518653265341681924306507527403590451153086731016802918864503929021672028519189246289128130637636150944955835034756344538108827041996677991446509372759590366229644122001181542691708465315568662802088195067339021556671644659400060787427145172548340122729705970639281518136588206382915918866898784086388224636871774408278922515038267700198464759676524689034438538639876863791482453655899072211249084230899641215169383020310451004447189612234745733563145464417926553079253703025320984649964220891500109590508723254988668072742777228239683415515625776453125635483884378200173599174740285315208972795827317539107971689307331505547572430471767292017704028327791854420135346070995715009246320741419854317355534969646720315932243827788879873798631168241916763038180860319089978307405550157681521675913001170937729811439810319223853880256581608639856163121787307711220950861091036283756527951832381149713175581258553791763275912763396324047722930313252840156095348715217018280907445665901217367213074306584986558134257612850783221198226730574891820638068681376810326720323233911037973095635943466847531548867345517983275927442774506960616380593384461757909421558478837371164216045031288714867210155068154335531860704805396327633093473503966662656602501393479866355742373689418058780358122056217244986505632742992220262322101518573721430226053264181345677756042663509999219878098088681242394198561381311893166156710561864694820197181362430642829040010637932728679355649624112450304939897752431256210894101963016601587012508765324280442775762399839028589249387750126399628553508248025636466887282066603658014493212404061437049377332525101779085047147018943625974940929276676326150740801247819730924571384870479750691217023903059820135681550398978897408707594538630168439065792913180306937262627092927045159833223281850484207050980288045625801686447325496725747232625951304694274231779780266915826655521818281129795101708307575266869215477523393654941170029881869674738611660806952570986856440718468471715947352551536094789399387662343768023793305225312916601725523183574386486034155817399246280708358393602917441957146435119910611524409909799957635660168414768834284047433635299103732113845678442060253337252832743306191548829400045948263737005081729394397064181028220686139372965276807779457709641591000810361682837207727706376488175265324908739647779834490325013528799765884413084825088741087105855330846678160347795765661933359300994391058060586137021519824216687539139121554802441693301189758834910972901410102818492156145453921419689546071302584009690595102906354007075459014182321690781839083031794876246785719083151689646757744379047627220672090944374917850899139598744713571648808538286038532515951543094165175372983219975213997430318616111052974705463080711083120993211844443806744140570943382643634304162091914428637997171915570599634532220838006672654758843269228017463608168381628461440256364523528806771085554984646971864484788500556873012785223461649193223641540254039572396005134270234588413417271366784419193604886833558784711429752023618611544181656684880149056964905272167767495743060406797907652559708357761044633813289864614127701687363266930512589846941469435972511286850473630941735842396727247940164098163172093294044190071586967919276341734989638846519141910269740319903379767915024315635607218702977172667178363875575863128360595144049217772627998661098455755832171390454142474657155910138967012805660635348336760279114801260243300656431954508555401916744997287673819091244053059711837997524742039303454664695634707202862560568532302427635273441308462792814706159377972672191288377034961748813940374228827466457452788789979691357871502140498831201680484140958053880696510827982658482568284551429932806721467103572092295764009482579649564521211294326925436347543928203062099007219047537032147643590443848551223107512976129868086892422183320535027797445344476964342523742594101106445145895405129889738431621165078897770650837066411205139547473059330138638494332527428524184604390948898457733674304352490088736775625035993036847991764227154315006479405470405040261814980703310232313271086319845421899057233681662680263592807298577526282471342990817918624700597031055320345597880525390594242871661012436536337715021134798306479526970880725066237230495982715915888061204083836952878478564328179398322755574037574911515615350295531753028749820028450167746227399216779515145512390659652221824266481490265400187538338696375670642815252607093523631527307192647093826566763806032741236214558765093376124340998003160554067972230595637220503714672229800586981506362025799084449569438747778404296046293245860239793826634533877034980991109946058828173763244380353418677782472244601316958862474674474187591060087535680329248189503520641137502399634599863920408576595808246098099501696975973384291830931741488876173985594338423059764407007146251720333127529773343665037129917167788788846488566460593117790727796464064122610304138772197481071253122939803206053654871366220463513652580317245902764061692053116389863810413018735541395718107744576135598983922349394576912294792095543433751916737072037288476659994405417313293800965921551902277762774294867047241263743726237314205059400167541355652245247154589205643333372250660708248754505703187966773968208996716262942966439902842675403321106270778682562774590281000669674300270570259998546635119180308191115985573418034413000987715676669493438679420408152663807809941606388645091252626943512853198544816207927859563962362387719860474394148139562639804687072916041978621579705804583104366399124600836280486301455919628908806552026038961468706827421302869593250566075829326520847953931954764628778355276745375884633465772921920408531809987491545288387356239080720729787278405990555711407877409955310648128521298098560793769419981043875916464446730362649718364788425917092356396888575352962092807815592698030350016124009747291667299745067696058018540851692525356395620154415465341843274336714933329402931437971261526327232847894159130765536143505353544652762410884023385132377757369401012799933497057294298713842214960624834511931386749524600422721470560477277284920356673681455179373264637148386673356898799832179333098890324746129641577180577827012386305650228581451448190708218331739693941025743369325480124414617159805654955041727372550354279264067330352099793756271430040728157970951992598662070219560642310057994795344105643602542788751881012895137822873989625322044333348034385379473132163431223327964051029862381072846019796483462600875375236807282404579859249722768858016839266363782708337728271728715179551839829193887608221957808603298292920565844717319581191613965389063373322897692851078007304984045893725808436255368438156636216202501430503419958796057040305668624246246801974770251059572558965093283561103773033375317277343455161048285756604299218206556557521866375553678060223454322311705871470711538880026510948072930014298899587208503159822278146371161307418481332200447025749276224073857987990127339762550006106413839874558955787341614622383353960393840676125605766834963770414989780836262024892556521746964447439788429378707590045796448784175595524544634707527408965415132799948147387133201315725903804474815085919704073105313260559444540409081250068194207114660709260442371471297560349219139717528958897259809659840532192772137252710835071691808584662554775109316427986476194457206024111850263918273061577661268280983281156407405090364805077900540407211028356919232126692551905886405725446065685331969679824221924344256591077372877471100509551187781713220189850760639397711289696289318491307604326095317424197094069040277782158091627370010426711914440909683777560297366032686391026915839398038830186423521757291071297487632132483542090376400288534717917414799858388147499209142682032508265018937005142702944930968957360705589330956838963351801981781560159707085338133310121474709061220056193812270707878589810391527252353160951108140391754431050963016698244901382521772102947135403785317957394405584121527633206114178322566452234468938182253154383915368428785422372315301540274323601708282363571367254062924554192850552597793380009297161496957420962487152771491119015222618666362299422933982339077452183785807272996571801640167256672208851804307279856110579846004361904588412748301070073684980211997564501889879388651247908208827073142328985506281636430143329827513401051702296824431089424366153823802598267835140790733518121440327411104875634049799433153075374287917070335430915936422256871930628964454596251027115553222377619567306210366233908678615249906769999465829762438842705410192004945403381975744394759874664602255496244134826985766608418614105229709135494946051132160910908964361686042829346978189117994304270645728889589408656941356798036909144090048206117081697745891968648780331911256506618407609177928979127823484889925424533824606939037292164673538162661728991968181478928603004597551250679940658695849192618513451997663460187171638894894753821402192087655426370368987558132168329074659385881891649321357528876569039346641571539080085846054292221508439844104130379763167148927607675249331466715748033888176052000551701778774810118149732863531672603633005692856550513181040111381456831336298567556830311904460229964165821581300049290647272309273546770770416001197140777822380774355957996236186246257839240749614179406315139041153821738309271288706980739837946315728940342941030372272528124732917558028795040126820291140423667412678255293815106910520067010091752050838624336641962045366833466758596196656386148258938144684006198188094599949543877065090360594941054863970473791992230470633441728379528258363767339316767469138569923220400400345456026280302284037328955681525549286521418886427053399174281816557600086442020955778271378430178296622148371940319577418998310295470870470674138063581492882712168279421769550796215740784678420501221799917134160390419501049033147433836465543989197274832392992871890608662384427413160922466113537305925848961515396878050309549846327768909861251598489121009064970627259047675480212610890387139549437647234930121310009472507726814662851017874135122840127829784942857622288551227500974165602657436239029029865785667922673141189447155594681025451813226803747524771761171649961269021817975822882104362840699584311909677611646667199274356600523357441705045171893380562898713996044432133612270776999590774076346017849007375251565562700413345594032426713958931248632393546295517191488925239843291961528423325902544973428011654543048273407811897114321055275120786519112329890873505093296399180698089506099709432409461508205905445964268595075243761312699525186027026057745619436160610669287525714094960809299792982123621267777347849761153243877663542557549083790437270342691915343887587724793567386184742816810778344488432155900746629429118379867242767375897365598318319457414077532588132845044995568314971955147714549943450527715937917127808203724021676172171844157285260714906128077440923974845525621885168073438984554989101869077694218347175069469849352532293291176878917117828761133619414450284116297712706712438925472596045024667576805688508024358898821221734291468557561567249153971950729150843036485131207427072690145559850693346014366663473839263684038860161925905689726316929404110404408317224479230906049435390403174058783360412917544857337270268033121865523652292663171041086715812238685526982903040783336963343056321679733949629239487590439170177975246246041007621958755519951241714715411961627024242060626225146472363704665444174322672919523324280717556243022378586882187923821504886573928977420123548732359899540562869071815735357099250339163827019754366063209217363555357011149756357851944130365145007960945851620048420581803329914954441739379324879971408801996869794442160931740282130690518270267277375976916359364046159698081563413040621618101600579601473330371794270019797884012885829206569853676922676492922197868512722026260226101640402128907575111467240352848212033050799754555739393399730110352352250417594017612197347695565838841294345079229135868262181921849593848706536980390824973170194103069616337638453629701562527696947672557729492821239356695651195072873406663217192541182764694243251926100227204884093315078799250706357029451689243277404334422668806898251895579350549972091936481047792867451095341799412782104069025476327305871722160092898506599639608189513343975402642006963480783059835816106854631790004255019691091478044025796883411763247094230440813194347430482603709146645345904762913799717907666714748540814977407289213886985093583038532377857585796423683922501296051495302738928059434089208637136186459125296932224741688395063190713114577665343990164654167999245421920880708316777884213616888326913983171520854744523921623313267225703249108744114608572079969202965482465731080313325929699018281326752002507475834800937711199666644179131810382710481067721899926686687213499019530460801078417169388024529332429409841971232170682654805184422496500342094868761758205238532613437457521421468997596410690617600094499597538787893776693308089381129372339094053218795213599983755046880381428832703350642241606025933653947759363275615259543990858421468425367049541414096470744307598099991091151470629406662690444531121878251097050013307529597641000810436498716690412919310707890812074813274426584870780741094276313781882598643701414353674902585971209012257067628511815180194165944984746148529164259298873410102868147815419714853737412938839822643343963360503986258943417448454614678987415829719696520855633427650470336462485078011841516205044642793635488534658534317615749014191956060864367360836222995729288567295422661701329598185050089447223672670104195824511134302937261995675706434332173803685194304014793097152019740561488085380952142522865367449947994547990396745862436313318786515842730520404324075687060544328244010398436512392645060593294270180292016797728300670354151920144168047834828807667146619568731451681242065095185463795715975773920699557761016107235473760705367114091469468857582262149222179031953371217505856921231647820565274251955744797425394347446127261542098570419527167245883101478181788749030136127364902701408695187733938746489863903775534867497037171038682578034326852844667587596253506908355907200808552808258573713731376648337015812436168957282387545464166428785572050664561574798174156963382641670757540922205636217092620756950418417586102971762109126163982201551901549549352463834854114846595680730161909224071708957131160052487492676980625937800708019868224374648054936516785558866677512235914568637401598825230666064003733181359989409444925289528876527473668329306211988400124824334682385936649921252941842106107310557541345721696889756169744246727681592404321265025454095623155257258553204666678679566017044958001894489927714112232154731662896036716986001184081122747596629321208747649165601315828303532559845637252833966239101564274465806460795910185372853563935644364716898200433863316489712516602918315335994924185227613434173469433866265744762006937259961728907176639069810370035716651468986296851025824338912072171235825743718813001502525214455982115009896767899062230575077861153252474184776031475475254065629481038835757986176394898398888483974058006936744752863706145803598766659332962851081232704286144474116400450974822970053553072120801471501787670075039783440097348313786261869518712964186429779506822363722512583837099322596900101473908438358697557497962682580434578368792590333584383053339100052079959250117548182904390924800024823062530525654228310145387702899044746793506563928197857329453907728410174399674252865211445285016927545483578310845933746077030818634299489791736977010595991256269665528558026240155759347519564141503268668946424134543651054664113538316754410259267405075477152339934586171232877223665890695197238096333897552324363902308494805844206530674508483261184853037995713300140540188819785664105748534852937556031264235897850123335545955741454993549883179235001417734019455678464558492053155883235049265651780393196428369924919023117842220078655707460459220975156956471250122363491672433266812095100147330486171670951465477320083717590801177384231072251111189531532672614935090810165332117255919156755442018424720933243276453361023748584154093164948213812191481361677909632406256316727514903935967365517608161196214081883708476124586952909378540946094173373146592888590122210058718034713898614738224612778113540546788159044894312483319246576343023436890018619061640043351035487429875673463809861748312568156416467100574939698727394686995714224980329266543732513880751451223902296292298868878269052019300350402853844705663946659002516545976510606004809091886773787936070676331822574076070234773438048762582388600955242973577946833767663982984083520031894774618249345518088032863239305483366436639309550647058729578188888260743859890827797618888415578104093695768301869623450598123565842283302109580419034079029170045775913498354901529907874846501974242373762734202512854867427223984207057009877226957368999915058325417317279552622836536759520539340205241110583761033287675631854662097454283302887390251895776471063844227572326090105111283415144301640928705477119770592475894673812384042493577970617302191230973676431489615703688498249265663171033846604420565066742352479581146523074280479178594960326607956935893742164293223768221358230961425089167033705306196784146593740481879689016197683787133829050481225199807385243175973670161454852837743781166238092761188630450870048374280953803680278127742861732092853093161404505628175717117363205893198058397418869229414981277285218837979316846237438122864173894918236323504415042676333849266187265343610614851670018466105552223208024142338058461865033903076421752388553686777792354165941385258500528714593637273024703869004183716090533447362302491633096531808149132471977919412566314018703191037121359958249081801549564358150169612500336648906582597780965913049873979806165107292250476747615414571018481521708229359694701140567861683260738138036680353211463991725020146105502052948211387467827491504904776130710633870598123774976603976533870542551336862425138657220507282136043210207181141081903261099351138709716220263965116587775831967187305582566495935166701634893437053953762134716558962717924549302859016220446425649506236348219077961661882927031256361082753512692600353643824753282751340836314784153679340109627597674376447952264503897562982853502444918865969650817078033237076259446683646043058041092613169010666282738980610523311776500527819135015552940646031594683135070726238160796661143504023380458966751135304055061299758131570170441764882443019891026157747968557928021562808236420727361270826441789922933712553313059253026386788140794180427131284566768050769928590656790515160256478019435618084398972291204832629254727655740910691150990331948825902302164940059597675211766319813672546377496515551986617695634555686133149618520410415050820575395371533046954175376674208669816425674789337569519433383889414946026853301141544100347049838777375274443251351491341205408314582276762525608322938565176727123101719970289383675686140174251338199691729083316950534290345237344114288225348933068930608478602980193209937216540765356616799305976413222842014303300535178413777109536146115995635390285066947823045956867197407024660053698840935751139905742536041358990910491512599130266144533653729438552894561531122191221954887802688934513911312021431606899820656219890419823610449503897542420829019812973263458486196605813999103970070378660378261362430871890770586702426850311365181715005548010452123753818595308179280131136575885579761473272945252288581705877432161297443333788918922866384634084023632217716311257719775834887499078736139526647075632281210604711201942747844985475584773535818410279827068518867830015580708171062507764485544568360019795445502018796172361186770128155677442474393162925954233006052092998766698666539774650971966200876596156044147815140701627129452684537495104784426605929307846922160093407370342769116724339469209772788760565671872186557055379505928201672992089093037175299336870153957479444854246938398374701318273988522627511096894829165461954313529288333606863633123296288954170945447099418622168866615053350001945282175827955041985422346773502290245150585079881203070014918508022209924000306750658341441298700500262420681838881854501302802501450716368729861323893638399006306592320683846330861473486454976579495955449726196535373410901949934273275759867011988340850046456997904284611487111150009355969878007836968835532128543495474624402271683673845498446486610716267771358571217950443770335517302763045258193565630848555669658764835552218784660613164511888726558906039244947847616746624334992618068130037525144479589804994496961200541856926104234859675607832853369466496217008926589459820516375396587186390794338319002688256921533476358453176403387124867126364545112034824793631651634049441183073365209251135437888149171844901732001039458917384477906521463747257455255784916650883985343885517839809526614608352724498548908284486956601816559636561778146853803300072169732709967031468358804548237915395073089650380990924735797556280468267311563352646747752025397257351876710203350985554235139570672287925439148999396922852509394803647055724918053338448946379310414589303118775082001463492761696579815318555416703998731032984859375965703053869148498118029848567799911723705669773138858892787314927751953421099750231288141262864800206460810734980989518829937556783350479830178153843652710035790383216571854797952135660959126699908977340076633243562386138349489372344523805368426872656938164754835239113435621628130491076715967382877647559855909760195792047692369902219703342193412740724410322991394212439973258751728624033214626812779260921408907142276769523767262562887972884409549056939497842023328743819595664032141128449991902049202471359458354371898908891600147705778168525447182295522439585208091876146209229379941228038764463962705392793580402647964596908879998209148530222086812829790993700895929106904343673353847374416664374733372480037048134260884901200668418341517650735423077298526016456830140084390943453543568356140827178803826076843636304519463420742689139388214695615135072547724183560497549817688976014169496223653805390338927123062382202641435390210948909066912859679755398561018252998219521409060694859329938298625370830641096851811431816481973919853945127470798132364258543423959313012860067391712545835855277511830185571789095813046870124203081394187483945307842746785600605085490959822628884274124265412491998682424465271256956673282509532554482163490709578101786189751084762858770879438199163587651079182690032190387293404530333745907793477296974385103199987472715687660955468110699025132609113271928891596262193181688024679644134946456401071808596001400252663115496281157278890929383966066943923750823874558916500544725236498598028528825346673363698710515769191079877288807413685368701303164879202947587974071307902888358631986175702608859265035057074456467294178355714332891263307075899015006361762000877808367377469877885501405977902962658655179910319615436507343472084476794897037303035060269653119793661294621551927761954546805868638133246005482242022267950987635021434668492880584206857745846629768139851323634617042270221154845981952489385023057458385294159240316380750047498079296918235190825329557363951877231254726642598134715048608504746768524919382767860621435776048015266911703667981719524840388702436509368089470700092181634330341471974119652426944881496099436686257254873531340650829579251252342617881607778910826247131956577045701371520633754664240722876445688306875266660450127351348420118103708554666932836290335216658569422049158564434071048103259788476403086236743299973207357901666927595800229470912734856368921186486197479225726570299260687292919178488086188237488274628882459601379648126223725535939097880398314577208766245745713571376148747037919946430135972168166580614557850805733996805464344545680017888028758183269892675888169074576832324244733381320857923756047964375070982728978792689775533990653140817616475541001788430624798100628164503704459096808775199298389508111422676959740566826846928806701059373843071560646417709951829005379262268220690874639571250068795838083475661704537718605671578184662773892033884470124264124231398780107012480735704273698743041179704953224918009567901775464046704335387584076228955786112460299436370004783362971492208084528879770325581452008182908430571558507274210230396657663965639545407756798517290695662998067993229207113557381020068687108686978052677903784107244462600123103336395094890622316197491018460986857859338785903982891739677628473943638275264086767256681962910510296680405400999108339835104835536067910554969467992936269899637342236008108135421806593772251927627982306447079472678938743979559373333046253207360691171979040733734079022943243799392636498571361941890324712013406160251452628375769857262535101638663970057176403868723103557089040514804155180875414204777230448629555820161871820955760632359175633089589352480328343369077807187538719180737113097042447481161166289973993899763548469137866076017864091037350750834083585711695765888408148836589849155835780665063214869397402672573448557822003075309879122521940856637336402622374154467696086654402393370595741112293199843859221078817769937630356808663382019034405582842802120378274530242732911999377525836172396708633757520327393271517910054979324541361904199541408223676401085227179039778943483941944492670142819626124325372247073375146083171872202193095126364108762942460826256206422026623783081766306969583402736732317837706715721513394670803340970790879513004940012610893663868718588977413366259714827310313441958908322841392118311808821542737633595007376040057425638988205783243643912525246011813765902119649593834347064182609073257152408623046507826985323823283143839855519239402393740696577664428020798958015818620599657838245914865364878710590028532629566400812878571378084266849821898297169331857707576904815198311812853791109371057091394840032894963730599682938456372964826936787596076869291384959027877251225962079780752009821203708032877740114242455923715511813098882656265356312874529551081626378741218416938903559281572223469178073386905782397835851008413871059028916336017764392797922118271278205223666193113066366999092380103192480804683252468693123702292148485744829322282913968056385493564816290383533715604913705516469696573360196252605368499770744338035453777417300093336084758520516294998649774239602562094019272939735024062885791067745050062298688631728487039743025018038363967905457801785779061287447188442892693729002036423634973122532656782914612798280628300489562515041450899852730563968738453870397827562781065209921466463666087379471171669172901026718827202998339056699145328971110338726823370263431399585467647508348207228442335998333885418333561275561726322221246648347099687255614373536397977572878950476732099478955075982197093352241715133106555422820066600507319091569802688355694483436869145988123893250673439674715647609135137964778553871858597687722267785654730114057562102193224864151070572703110489115926729658819174035193005411030853737768987488752973278153130735778295284449879373764741493377430184231640596744792338403272495525084805938446052794035001195251604298385369520074174098291089511955685460365947391532694511702896034815712915364697939258858372838866843238978923723878512044642094300899566637352288038047751666656601064901547300727261834190373656586384775844641244725345848488980093500377796051586761336178782484638949915368677525271085491260033631008933112911877546272122629507939340268560083736215987323933114771599501192892679402000664821012154181332490492118260825771892517634203049104269656569785828527061814087475061808359534356264038844344516317536795017143454725238225120091461068341377607186930318649379357869983485236033232050128024754561326376218750152735956681241468334330544626657451196546963354498095121847053195964749733270726656661330322122788603891683252615177661056504900839771188291263583513839448167576417673846146020470476166812889908710449142256663364047653780926671681309000114503342842395483548853898165534044482767069266122711166900379429002651502924380454317446308859746094683625442025115678109300123212227135234149026028213165535961293428055935206935810392563297976842468884124114893737795252290755256620549859253688878621891490283159661651438451742460209409038099043676353693294094302176516539403881574750012241014727271990698897866225164188532712184210468566843236760258658587120371293073290713660634565737947409533084351589850426862075184797810309770364224896722038412117441504832604358049022170870809556500127150277351526283800148595984493627431320278939301975514399798760436984533967982062043778099073327544729435859658703677511495658072179116826749680829347141632096688837096863091379059728970459293016935261392348359053645838933391121438536528557130394190797538966510998919121742803360962425204921086189483618768740667914878463800326641309131255531104329729501829350090532934637619123567023012185109977478118687158529253049193815313922380270786724110306712603219725975421393950712435033604972423531951153558753818655771960963623137689275700451986881156456682919044304409226169307467213665000527316034652152811333719124760353270775466800731932059760794407999814047343139494155415050050837433289931243595037604868170062243691230272013925594047800588768794808837142461800334715429438600009009240380806332717825234746722651015402258243668060917534233469450685340970932758692147854306707124648109156002067473478572776325103014482331117519795524500721565523949415822126169533438846135402823229768736520797331057385811917170868611381928448675340235320494678685143063896786497022453992786429383972388762752995761418610556364209768173257471605196762156247046534059240138073243163249474474694151580999445602823534680671467246586390192883055886395498793112534754236087622743599961209333753445033139681068439283468825418785984748722570209637311103044145591419693778812553568873834902533207041834499115460781222838798289363658052008314422859179025969433591748841530014720339356624533888905074033890881952232793633285844790853193426933469724268282265566999247470561049178491184954078586688837408585684231493901178114112442802463143452892045687532719642564550449978983269939617038652083523764344235056425179559442622201229686751238488711467625627799226368025209488331162264556847090407119563483123758235814575042261700298625367530616685257423673017603297590879555631027910596222079296745693669223566623131292529053855934216971440493990793931520033755351258755294214596451184322311562868456068808963282045478579036560690464767135954089302157511097748079753833799181337638346051207703267024122254569205673305078161846011358777928263849715134868282742810632371792483864274510877272577739793095020741955154020621029360329660974887265779117917557843962758206972078970543932377122932174633586511226785112999744611534408094335737909775682928254492265471970070466720268574356456570329015080555587840252189471260224470164969205817125630902417499505644325419447120851386658020664829085035129627711661117443489902727817494796382557110101033042348397223721099790515773436467205534214029384431282398576098957317556508477006775315268181247626305591336488269636984057527245314016280582397318676647124775593105616637491944806643437464843477753556156596562406788364938622938791037488386702956828170511578977705509922215268142682810086541666277868955268067549678607822177376949231848712898963285252386924113328552527873447338909763359089236823849820710021067648717884771863381981732670064490995346049215109687935100007104944284972069232470777543963781082630845349861212711960720784226006038317482983981950824039873263543442917813627322545024763163472077492587168393864186758872733066719816319888318139879902330653768962786397531494391550752901073537690276446016613540448956690944717669278697065416915336110302964395033827018313632789569323153435779976025565900006314517277546173033240006590167248696970630226782178797728232339617931401707019374106679478360937637983423022488844576675528983145498582356689592869856150595565848173625850655286078514717068172557868431140568216723295366300643910997384959552703438140028549690881859554541661672453813139579312775840295074387642288694983458449265308451469107394501106544045677157195510700286506901924825110378551203831096640869693151518345519527506908533824376322701182650063451898950084921927381584979910475010075946245316987900231301759431177900160520537389859492699638797863333105889438220447696447325375976408824481992281429800173804559419092853382055952794444276094670842774310171200928755831188140131413763101707216117707505449585420950700243535364887654352738691378941504465331774218473155071606493846981783754633445408624046737143947328818896275817995399323857632118836089217377855018117313734092125088301632488737005267272955317868485118428598790166838582084573803423961875413351048922406547357032000432544034867640978459818360366431407132116737868680965726662536102807508695644124926043508833348106119844130948775569453982182206668037815673923896348987910871615637507622645573685261455267919736110331312996307512074010164365740097698993755668008131023700843274479803713062276526419911501046352791327130782590729342628633083596122444956936882646819099569551931515655979535670192921119818004138464643238989891745689537348146245096564869388360794855485010505345310666738550212360536549445371571221210038374374883603422743106139709685687230525849973819525934145098078853613300160439073163758586320183762124240532287324923277549521195698785047734381329017042404772102423415423844890478414473791397395425446603841129979189899426205369916721638361055104802854540928534045074150119487454784184763820306289577639527096975906816482292197513007745910911614361008021299370096634702804410509127709488659571769478314638125391170915323206455513521745438144623629028329054628309449867000052952171269257897423672224711127079562332842990845335991592741925884157073463788549692660626502669741585263224192319777603839379189328536534433198004384342946958199220630326743836675649055556876084109376191925108588394114127866160868735645286620810651767967233164355566751277055124689809880437304861500497495192615864878503348673312615387061589583779239138340009337920894018537636287702510366420156750349860179741311878234953787565618540417831751095472956311392990618875767694602161460501242441687776898617319083263572591033399504969698341866192964406423973836767392714195572216500003788304034247075943690214859976848680008020862237665951932506246268372707082321392391881188888232555139968785350342137735261357356842130497758604977637162907201255968152229177140871040790623265913271702595866068826348699190980115936790915579427931234324815664723138724601679211904887767065387290650585695117102189794773702756383846652288282516782548044470809814006908928524794232958496822218391358317900519090379630586449819413287624802096202339606138849343776966426383560722784591507074065640974190930698603895518803157704510120774767271877950253459446975318303380506642058199271444138618641521532405772562356669167870137310966953184374013408917801534100148913540409117659947973690365034819251786858532534549151587677568959795721194436367950866770366433345461494547374259571247354616879624808719149780059898071714269347326711254180034041269207153754785667054554989217068235962358687853271041944335174740813254155321223496825339142014341148604922708592490018304295630458625746267482868605526653518348449047310293830759845162517336525589629869736571684472354893076992640857811850157745570058805078623822388512250420154037527046674978101181717645910782172013287919077647506489043667585866561062902437840728653174141586303740953664090400871294623398360766518831057163649373643295948188943192465586417001541689073800069605346965890980373149418617033250107967303559764950550484403195552609531626799631283833205323630199427340639521266882714796103011614617386201943003054649071369854903868200052134098361259642934664139512852600557463052741192637817248562248242233427478879529317202672411303331357412863215856916717736537078333606124231811219736418199614469361576604767255427609649099848228662403904501845780608235649119611424362596965940058448117368111827079119369695224644933687000067232174045779456750310682444940583364368089530553640358034524325734077563604208366493855425751262851291217780502207311035239495374644630765018325264058964423459410175645998263761997036444762958701128500554488363636903592857228759707108913052910956875927871847118260865147105197654826647757611687392036035584636610547349574154622928205511942669552352728948149194307139454447228699141658724217840306570144360117202547180996358785467289078473986983826872360033979629103582729738930400723614728825896403999825215636295065835846209223655506257502470717431628602732988904146681408345819049383582962828857197975037865306533122097282207392138943249081611171211424345449893349656041025278790876461179361068283411891149792634842614838722391153547307767078016188996894563785092572719381790814597131871071177014253924755775575654691678785592033811040893213334501300549882398436992289726532251205005343104595915678174032153982616223125871736199194768069585560206839857002820746972335312236931018767872207743018272668468821206577161356209077423048541802807726444285753522678703283388658942318555529955411823938386752815636886269130017470970835135520686413960878250971203785145425169365857699891918906016526344452400892435115083178745291367190918293156255508767313792199403520845838440588831957310802025939488824415540882488688490107045643701997057863263194348921220573229918058745118776401295582297024384128859161722902865046156735153794855773995539739642032754584189968777637944898330732193189168021226633579901578283421727136473457890802791618582969979937510896135525416869453627450276489134012124110627852845101920475582909457400345318514002035246819385619158496820777350519539390991318095202848209473520465101390279093646933744556004499884180730610638749906943430760302171465752040416015598348034349491986036005856706531365674603360698180295177960380694012075823456118298917732905585016270676106811078652268598349627843033473304388405101487333661481601243241585628884335268154514283613377972852287097925390721717980858986138008921945460465861821946524230384970859503484243548757139226143620570264431258802601240345048340442300922512269219254463431116483971938579845870017610229882433284435245340043176823037483424176195052850945815879118515209441164617808835006892526381685144214517457415454609396230702671329755533322756423697510243591990264353038501218366328480189750111988751973158972766995691049879901759535918096515036160148787709346199902423247506613896293555018486639321225124946114015393987767682491233446632566791833454785147547266253230156915688629684706565819732901393891648015980241557274559040696238182050606994988934250777330647026560131674154380268900216524306999112850978692139715776149768939172312567558529899312673015572199164250050152113707097067041255667232076654485730351615106744486544003642029997423927772392321430643157046009539961179173723441518219216441095465346780926998945102189200403244461630287926058629082201560871377999015294173930412817546125184695371435563312058147265529933571247610666490943638274155058778546487320657396849812058359886095886986554811408641606041084029502725251077065157818421585125609423819244800012776017675422477001887033350288787370771399501197421725464089875764335280096766367242928913013131258106134855968431773333962853590886283044401292373557095797084739829869358948210070379542055469366709686295902307254542117126833502954394184215467756320633601778450156067581451801267009293116820114560172839542602363624761172298465222439720613485928631308442140911646607982406562966655005652672598127951168059750483269282940048304168752917574683274249421394776239288685374991286109065112864277729330286201281418805739353087303531018910534950811039748206621625606620727991421672864134567354607812838761248075260159029899847487972136051329740794845519787214651385687095637766083686397736532920008056059703371848173592502815486043703949040438107805687819854620347567992408374422918797041997874082825447763067487276894770296358757008375525975780006348854627906624044353398976443237038775371100355788452045808529568254970105979627485816249563582573487957290863590894078825141373518611199899278341363220242887196650449151991690839356504528084792828463813234767562916104756152547197846390563069579946495522831248406524987756243002125732813926844451336684999231084179963762768207074848312824736878678336745468281411872410748774248958016562744110782358537275044705624329328154969982922593110847570543291858399849685498418359470538399168547869491033350113742445653512068284933954599893651298365862460943389465135781573770037147306582767005787761137052308261590438520399158735207507300027233384510023016535927983126906990891121365804627445212851425095018739006457738850828077858476170679410739752145815346092519188633781746697131259336900541291056020340733076083047517342361314735510348769834164160822340723699365719786495017600061268548377821156571021851109994822580428153159215283770171859424320273562761175798703261178462699920721865345177388743446472391439742533178384039735251566648794915146122303832990246102074144422658837022948676200446258965266357961234447804851064961265277650831093592231912037944746245259574675144247070078016615968380538603785835656540884113593279176634444343728266340962558290871638800614810399340853113989144224897712777785463621225145206292583412523740387418439090284837355925473436136912990806805377792836180787342790605395441755704073009751279390522789262849090931639356511851723406782112681357822207898709420526769085970393338359112152796863608887747374814760396960046318679054365332138965983782428360236294156863690792857445174107297215058506498525422369248241283120087209551477335516379819359859052435643066023213359742522001361329319184170755437202780828567514586669570402418133233633481042989295219608340775083138871901643278629936313662151735720702678910711441678178427311526148122495202197723819302576535897097707434659581151535970754853267215265109238652270700339928911201884236271809829365368299038891535857895057103478315189642318573181871302382471795759004229988554036964280688593953389740064524110419880460942909574907339025593468456460438409951416246231081901604187606794268571945593583098056926419218127331374290335955932797647815716799250319600780665049362333365387933066859651882560124835056439049676485451913816726646438225949704357573029206273588098794855032318508996692483466896856913421900745954585774658805124605816992040841725960343279383353193408543164721061561216572752746887050508606648589363340828458576923314052899038716466397801789570725442821923953069898140868500754105507709093508246582636821410527262501333491208781309098431641230835606821888996036080238800125819672267157213624762331542323596614607852123427334282356806361310040417159995968851599051134390569946214157989392728842872592469397017145100258544936838959504583499723256958910047311742416575142882905192600257906288378375573393521254792543776904325403163300867410307775909310942574085087901755251327826770826597181338899960300662687207372576921451956341123876675508661479193540196168207028228272600392113358340811769577283286441748882539966650788407050820477777363982547291787039111571508817141315426526289082943287513189332591917331915065332241663211696441408004006299554272664393256624535996216741884129095583392548803605308925211889341852209100950021633947206824547138296248769018635245822706801448736493824456571772693649892730830836833778867086658764178869875835060042793066632944200197761848236805956687362495711493597531895945280967792214995391133315929437451574992114173542844599377892199370461500789747292812634305070804997007975018456268698380682839784291391100579015074845518174901268511364973150571688598943431750546400135331440135637874531746391497306545007362394104291814640639406897774956369777154725456032858300989630461641104953966902147712371341011674535990700893608503093138944538054327499072565954145574465596513999298985810769621452284162549864467589883138724227940392233471319506287466062415384155417137515911295373534591479639676306463704467875403905628071003030021068974857936827600307968790775967582728792311851803730758725685821419776616385197278157409172557996559166141726411114515048570546621806820464201482713842231550616439917047196583825804538641402648826289534057925213651878739672263754474843547368141543553630309819669688177312565684551326835902200935080336220051617387090929403363290133058664682290313204909130190742773330926127576447090374486528667345602346819970436175764375982770939855765820579422519595438676693029533257479050842005264545285818284575117663884720166493099245326932166452695039352094189718795778121412515508886115665010321582172849517191111443064267595128146828931298346676859821204009470314361577576664449315437544146812284476757337007305898167953920694636814627426170702350796842297704945121178649393565224884910822491520061402601270918310379296259459715834669358696647961837665646414894424496060795280516489889903828619584433882089092399967834195039535042738736830566706775495237451577625219308964668586147139457829173036012431692755660231370286747064019629593383799849505192512650239629554548984840954903289422824690939091969063598415373872554794467708154172201052279134094148569212462912152520644992073634117210840200236219176624949189425802515956873048147987098706850241541928959156376764694916609164196901357248727984079677345378972239477988812609997528189917388742419007105654453959251238104209288855189436033778465410992207968091187499375178931178632555407276463846933436215155622376813964534249878018868891449953758046048770424205453225915505796001111613219045316119458872020906869830278549244680138051131591310709271902363700618388873763983015764970141991415473013653003659992916034335128996121173699602250694086906365687300987749096832894748378360096808920279369771006317351047523169889405617912366666284468749967094919911924930365187151731773809251514035800406906842923012755219900654368708275330682824782785698341043790974451447347729482515226054829463690555556863791716015292846869862966917464934254181022653468907942926177520439702019995412502578059169365322592562533246821265745852114959266447568930442880477073775240879850504191381531315363654585986563925013976596905619204269048362722594522018910564909120003274311264320449445497335630552602285940472917199725824254043748221709468990631911851044140319339163745936974631511247943519528688735785985139060978574048304057873338777405411010730878031934470215805446375855905321164224491953750060326648505480608325576602366449837528803152472615170694808235067299007145959709078334042981635599015685071025210198607613230441378548234072032961475335376060442284628345951273953051546261473299725522450672269254667656257735805686717450460315027145729625283163978232198540947942406367339733550139139162227857494215968289349355411251995821657973693476577023443070334534451963885193541561467634850180271686463153637588781027353600817459636617740587091846535178220771684255438124316412580537369999621400073304389212733766198414792103917477521400817898608030127266512397681624458888487098725608495006413161705249011445430657882307541079427350627662177071315630949726962735828550218193752454538761835678454027742514257009014480947797419564255096074563396450213037026762011415309536861697939457295565445791312116326383646621946877047202620317070406488798860332453588420813491261309214983004783485284624823141323897988070152024691016575347684189165906212312069555803093649516044039802422359218707343292735242591910850073542173925168222841071969224786414493058185947525686519656334540962768583197430855076827555751286771911952595552003348561619714191348918253642847690229288975865697230020522519688170076694357891052401378456572743487677319640790139066331261846193181312825031050472984553196965359984719330448748311411136305384399576553576763412478907996624212618586289034099344415666762366136003857716484288001083037584754337984444234633646753134980177218662450221383748825020205460215434077715396347745833377837512808758557396230780001407821053318145176422248211100848507120908465312371999985425176274627122589909396312549483128544718560559127723964220874047297746522695730845302612093812803659277598930349587017387480549194604609766470908690536817650329249605280266591606716697648848914420416008401869000346312975477053827806861207116164094961049690983657186540199884254018385604455454049698798213769015216401772290496444101891695989991899905235813675244520184719931731852077872308549125483783264827312607828224485632420071007335004879752852877527901028220765988677013931318227300305805003469648730521917221411459487740134695180296395334558994230397344244663577923547771341603401269158177403742957106092171093262041976564580655623464353673042993249437605465134012129970333356239645175207901528732487746458169976498656561582135563776223302442709699741271273880496521150542951455356591919735663229012769110673067732413962943419757894511763074278340482053627958214667273639361260032746826201813125453806810341330411233633585668349787145975704270763703881795414428258785581348683877445885624049691988699060671667891315693494997035393526588098521772892692298469985009044431439066494631140097652460677174245245102379498055303999562954384478116923701586064123001350853355529051433793889111792797351261465644759647530861597770931018962823242878904033991125724969486185665943469322550547841826029833642689471702185470150052128491124019616543427816236206695201000832665740375654805440794413783200236312934190658739848833145355351075037687931353329785310952307688922475542049997962881903990156205017360278830808442615845687659648737959991966437317485848460987721736300483253454255290765883026446632533738266654589222407751924545590583974093931324151971497766971205780919032007519413559988976965875639920543750309226340429666257223350999570016074235309291215795491320380530798999014045684722433967056456573156458561918572790451816021655147195318659078403643197318741740099058342131699502852382201885336606339717556499214141726487373574442958691987141013993969071645447329484527161627175277192739561419655402655785352868459530688835683880326188635005341997953336844201185204160610655471739280079979324736409028892141360574213035342850813436746927663776528712923594180795284628025012091303803137568966936637002162093774345839255205696804459255989598867084805044757355245613037759898262780469958735184040908523405894031068445094947049451672329842907859546472428002433020744828111738706104276471171328922236273630592884029911618422074079815750335058724494805084707257606962832128652194261080174478617457827066862055276075943920598311368514296797002873543640657650151563551634064763213324354082676857460985528559488395105175785942299701074915722977600224334936760953314147957726015936825276848196007468225766803302894980053938336219296299901971081418179528509171852201362402555252858161898024646500231912945982545527475445916593681567885869366770895906905739542203952756059983426322336653242565699072326579511195197611562738431458705984393913410502393690560891408068256417068081552618455755798697413159784187544741515183438152004081414264086618217904590475671491147113533359065840478368296500099853738767431098649500927073599423098320340350849939602951510539662338449091416427839539552938323394564049737956621000878139554194519271251661819943802714493577166885235317682056046939861493481536673372817111077992678622514476019963235020869855602968942966317208997052353266496154712559289304322406423866099782718835817553655705314325570388176254770208837604565117009760574035104996356179602415314830737053925050075306546146781718337667916173910462082776273470508134502467953855952082987824415383689450273749660609230275631861968787945897065261373555461971659679739712342517974091998893969801114377852784315620754379312995792239479267381459403769937289433465355480215871338441758702814000804028455562423545761908057171096682825466159532092555907848573033761234931392512027509867804218150526232966830501339929655545025207901623450825922084007447054759853087003844189721298750350435274607745915680193871905891392752964067047169327755710312504798777269429698310720390536730296005390881849334374211379337824655974670448138612427879944794528010771087524791808801299917647788988570787751926255983286579357357915360742821452576612489836896044821851074806457048242316390171092549656907641945848148858071285955406609148793656164357407521742390989522970090320655258805299503926041277906554149733893000116204238610402169898441374467890793016714352625361107080912475565348381013121336130745596836640575356784687503734975213364716731063715236853055803081918296329505606473615688043006699400290368364509272598329213692189819798850932549561521994059806123795923378963936826850766498253033838586175695901886446521224244479279067175353872733644026705976276472018657299820249647172446139781126865350753630867898567672797052900190123119370957591651213912527629501904667158429235838530450595024702883069805071009281939872779905646414048473434839215964127492461781015574156915993273743166637420696664356030550703188737948816297071264443348110895849314474409429070134101291786649127420343759201251399601423332636150629349416868099285430360815827779854706106653622473717136310609265767137072178929951129743922907851774925725645041425738284116202695495004338983655543671016009657202997674374134583921307770198038138451375501106680173021378179997247951339145541445012330842684626613849400205751767609094838935248346124893224859332198685099176170795719646182391501579280863413863239695756355730279684293223788536838866501204500978571700887658374996745845961349519207563825921068398065237943953985032112547523484742022960946487620684295190659705493544507367007437585934645498900740384385079849364850079609251485694021095900824649089141482024865655523687355591262840310770517676654837327714096666089028333558607161086996906857389650868307929920873514611464126477594310633173911703130463292164167432134850330782131049989798166369403580611041335353664845539887324265219901231962940292053679303039174465887155333883584796225574893376006213811877652074825350597334960484425290214747955421672969872996095647661762469468337032717810006201765082929735920728666491256343117976873366213604072936926320039314274529534035532447833828364677995465376036935099914085455858570640699300037382540654793552379999535795772302023205501244174639930185494395800040755812351771173799984951542186053106217566065648269527227361576318698580448199376137463805849905067088756207967177539763960888881211543057936124123826412384211829260229531380366661370271223166391774920790630539701062050988468759494053698712648637768372988409267756811445853340964938841867055055392467769422898312130308037233997905063543415052110524211702158105631626643177169851297530610453784582381350015426888367494284681599201032408177161106004628100525264594955329308679064941551598550785268627102926685877074115024522337182403213865482159839850499650122054742761656142239672191203087719138927813247103495666472418653691507482976433583156733898123101433080306769732773043914964767847844419188215535507259595765677813561828715823898206087807044092623424365839345010568415953412837154970472482467326373387659175674199359046769180509892102967560846160469284305146003767453394402842006255953948569314543647927586931228460138548861360533348034045697396856958253435324387266704593829701314777902901758845058131149129867479399084791739757933141293069139069334647217827378684965752335558909113633780508119371519986397559701478968179453079659464839971909352837933410410644174892350248934529096933887726510211553013256286692157125598393901875488485272964348392367818127293577804111263623121903376615219417334889823156668811306101521601738484264049896633143143854646485781367771862192604333615593221559608388794789599927117806434187669469948089223185769273382842286374322010413480988274625725369564209348974673106402059197992794676122709705228953561598913583376779940477426513626456606029198928734904952814814126692207639588486504274461539229896545523126731044221132911159246127011887323397692430790787750380509650919688166137518027740320691941385927504288627290513911635783180429805121683787746721461018399001001152491812972890621038624146574263779652368675421908592864929917739522614142030963825210429680725752185040298017548628729225156753120444370385439093032462423474602028793626759459843260852245941221417164322682720342328621405150591444019016251613388352921968392286428532133986753703899001257866952665407931760213418543307259172805736947039867156095972801943203505595741799591352794402684786572112633432287945657816779295407673125927582050200101171318751760001449864371551380010370448064149261166998371931994252967322266256818581107825232559241614262942171348641009367745527455424577700129872530551937345214380820790511246152162951076718078067427867244903081852656125821317666765222073041644905183902490764078450731411967540901004433643529118643948949241031319673561831940684652131535062138817739109535173919267974862895534483352720248767767027150942048576256743154882685121203520926119922256135298967475720085026202407185130563047565733771492842134592720362767592319988262085594949891392810568886728519790405954558167753842034654241005991872188272956279528502784253723130075771958817230514513606899576921707675131391433086606455398838971931193924992550699224007664347736361849036173718831003967232554472731747066604926149177985529617348662892799961734473547062131045562923855528495675300595741840428845715268093227449045443792690139640680728895750684904854852859257353780856154441156539432871673344342719879390388028696859839431785069087244526402564398186399173552874469637845062170902964510307858698718902334480496355431184503478841063472936756099143866167186932139946697066430244025039594970163941120989339274403810023432604914578436468176903773301442010490304794319508260690894353067673057250951530335813937998903019324524263672670462157829369625095239647736413498434854274708897089869007132010492307014951518844088444727815309006569251677508612242792829731611319728776850417639718642766333222604902070367521925738138855901445228992379916233657931904429011295722160024293825694936287061341140122390830909857465577167873440725430765843989608649076309460129848930690059963606156538694436189933007125525474407483939697820224895865193158101425499405796199927655067841107159349637520690668818891440318576909943675284285777886881258157559853612287681317595218927556415063323652684460589280728177197626114931468811464583520560476360030657241929243233452117605343816199916734974650770639914080854600285914921508037731660366794983628269714152336108851458551817784129144138078077588346166700229915175918515590016187077225562218984550134215849508629329312555154707594744332286877420130904164732685949713854259072913467289174812929552635752951642842970299995146550382573561637042613896141015231849738361623433309363485215163573169245668690869875067700789044809352343591311863582930932619686922449717846902356512947444270572486636180742561516420475642493114714733272297745548586766076484579618754797975415098107830772861971516479513658369207450603939974523938214222475763070069992172705747905268903948999500282031999323740747483111168959043327174223909630609692112138451096012075363373546392326320867056381972155255563843492075343539199464235164683609895860222305850836729351840567511858321783298953889896007772835489865949899403857429817019923631120197085514133226651518033807078778435214939422754854756139229614879304439626925050369693384899739477399388092966288562284987681568910419326127998287222985136769881547034078913500883591227020332036225964712083908114434441703240430908419483133449513711935212752853906014064037916119683230382480831384520012097645703033840855199272874476877382613645680960485790705995546704878982044135181623015553591124261971539414501926150101419103489848897106814510588384044008280992685985281595036788315095905093156976152537934389791514389743423086541364472025524196490710542513220481083002889179191646750910405062691079643521034894071384880580910521207685900432647696558630598712663993833762416403661848171916262738506236063349911137298289833554047805425255264278152481282904102050267690016750183196659609326608246037495161623403763459106472353002497420535090142655865607594012483744779658185321375930807206640681641862949796656409375616830912247858106097135233332483486526460856084134394165092369069545201660489490979438527158245039445130851647658551382211035235360252336725506545913362494559749666374205037132477804173792865549329366496174067586751796195886850521252343991404080911175999875422151509164118862412713405979907015318667452481678000467423185633396968971745920213066148430941815880019278356910668131259503349327269739329733312450194785083152413499316510290919053214768405340489539281305115084695048934327137521267848780890018006254118117598357330205420045459522833541947842563810120121018392162442005574040850335925452348726947411045528320460929868729887045709267102709215562847773154533043708563050342659712283589932362326142938724760213220573256904695685186622560651732395343492256652103172524304124606973434196467554160960889797501555660091564621613081936369921094996467338600134530385310323377902457297744796077734209919185752971168019125741439893817850721080209343792992158227979186287556817517001886059474062324477001355102951772264674599746187498060372768584198417011495925239110433914522906864570025147431883613022170672711653869953431769373208854241518175245357156894235537460050268659802770820663257962585988378892683233742741900287471246144590993495785425942149547054286858427603254859848215392276827689733286637138219069746321680705980574491213255488404283053514701887518700539987390547466493373524303374685755743926372600608883834318273688989378419846169396492804924397839132418712103855968585273130231781416813374132614347324851036806969527501037386206847485862134721519224948189405604537945894040617142756193740916599153622088710259653127778013382404021405151426152633811547186059983570845041857550570464104364330459431113365064863542497366316363300427843331686606784353886632854885999937331748142209614307186766729184199304089429981521133771221409291569286543974074742609988583100691869766019333233626510102476845596387880012568287473419088316087118831141591573890363337208946740954426461429030143995105824362000268538441543499428241652205760714457227363492199486285411272235562016817385098114348380139706603090962286246771291984794915758252213985390957815331341566337875668181726282605537404072727831221947903494212652687979632217761129679058344069675543117590621494875177584535590044559769430377187324578980803269739603726946681893909517974496214548547924957019853245775885103570682248478078943655736771981172991612408943952229983119677631639525904107743565021760952098818257419628367288076465312511776525778084867399462595992065003327405119909206412069851609376644519048023584389299771549359817390950731133722490254015314794148350646080636895166513745414839780848124508724664853210998263104961796113534104705352850667221823696832104729577496747578950707344506181179562480975325488744087633859698300647141030933867355244584733701521989782766299161573920780869468092116481302058831144966038705246523864333686499216327359475736179353408221843600308653130216378347451175351486650483865659387540129011923771576087973511521662991143871542029302921517847701869706160028137774613652431033767843994464645961512679051092164062949998367745496255731811717679026214148204392169521853114640839539073780332772306745608144307028848768771081444902549903618734878916045893402311563102673802378050692081009904972148346670045546888381645253521291944063019550897460182787622336223566398786481752651525804354323199790321354201882758959083901588953525826230445417250352619528658995399759165253056674842319568221530813713699626346059117945762245277374926185780282066330574192687255439592980193570721972591368560860998975570597731214652194844825818934907553665774224806931481306119150400587491118868853783797044726751617278057896565668839496008262459670202988478248892433020409510728341828547275659739569910264909677639783167934074582439973076269506213328593279694489404701556786208847710899408088240495859786460297703307221586552276469489521481225574483991121683619880886495500664813123543355629860246600809420653809483108177253953067682371298777682732827324332654497358414919927052542277382027711329554505236317256964438043798725454897930188471534209804618652709277106434186859170629621861035905965729800785296321855573030015159267034958724957416606120908290281080518753887897302258883239602206437804934123093762377562843675340916913174670536093277911519394444887732543755460842135012706267881841378455936400082927682075085010562935239494162189655880947406523123505895666147232490064656197633450271222187574383448737280848046265991744585019924546887263985627812884111816192841372899244091993478971135967083783539874018811238837624515395576236625783683086924829141941943179945411063277988591130314499352117577606000079298454145070413296492371245405752230913526172082112108082255519684866300631428870531700496395363312598331464135904148965584630389804183313176807821389459631035951753498071110268473849185306575940543172626152275147270288530535165766746672787257584367656478173262614334511179123782832485531507340725834125640534903681409535913337318665833042291119606926926745019393161479223238291873848343389385670079142148876951243337189683082772345323844686730400231661911163864749101260608959416081549671174656074284497394765186809811698315661490719970457869312355397123873059483606145153166876822122937381480397486312437157516796419905168782712325320100002468120658707884863522390187162647524910215197161935246919939944556516711024384568861707493764679685460404920499987828247014290648795902239893092903697327553479028557588598249154758162526228067990537203029578449200147230882224798801096298505025764249850123410460344261387162905726379436280877701584169862262221786847624746755746546708928099852571541139075765724818283487019688455210777015618640113618325418718067404615581022760221150377514250121661709319984377252534719786361749211831338697302454234740169199612682286662408631032028970754477554105007488805135697415842604081995124074107717446701361626176134350354161316548981086124279997631524597116136429494611593518573303462539191354313792723653851128227227929450512078310914864585123303011542687999584472900957133050358873438817938182214561131656503625489192551704624365141132976192465626342932004752593434735324226423977202607447487159099658786888160293549161243136063592676407830733983529029264887966894916804433368009557699346063871987009652212085552879479985688376574590144873138125879487692123922420517901567352436524506215824173336369694888909074295862906522604407372587894925842398210036683107493001917193089462745606989159408397635014716422034474432690041197314026299774757067809412167924253109886218457525325453480083699825367163931396931175622775522978832723745219835254867813696564501723963984436023926942699573703478225105633287206514588472125884470565812104955154408953193254961318670632612347729288921674638752495888482374264711109634926214524112925911650418457025151474736386489126357121315733439000164850207385041986582272577400605863304664149230593771185042978645097552950833509955165248020508349268570107996905864696529296211975088690116456350103495299624319608845176854640016319880252977624988713591452590069976480573119868028734233758280905835636132409605314202366694995831793875925059227777983163371298294844743620145293027743633705323402078224545856998473831863403695266059044738364764718700943638015901057750140074872290376527254075136769414299033637305016258348524632168297476747290788001408697245711257569568538212588965292857479557924794857512783938179211814107500954874709048987631519102392578236249883826732374574412353533557645497121231194230131652660733371908736177046364685105057580938455279393583833622733195730741137168316914723655818769052896772630591323786569465306912320382016084158017171539466827528516986877888048818005544856245741635130982982341098313811391854395980524470655021675065739213888028077442339645066929501164564691276908586376335591341874899179606460011564651042932870282541797906565518598052642870261101261995444689386807706622946578207423236985535277695992374868606722688079670922591926787185880781483233492790063996661869052099734728945298442808385769306998256120987061243864094001386968014812462766882842147335907916072999518467370371797609512426714070648765307987848284054802831721584884676387397231358432148090712685849200061359165349416824792190110790307681244632750512391807807077446516791305138478414431754225189787403936910688074150693791932190705709619800641396769890116959355212026911965195262434818842216302840872556868550169988097262855086732761316441974655462283744515191506321044229487339485402439146507964232427837971066438459432415025420414800502319587892101974230523674171814820712620991147730075891571076576079234918472973333466188971171269470750966103022002800420056809242688306913759100660549739283196633428341207848352626226716829812245403898466602962518028545107359473825493506784548083380500411193815856214234638074577831323316612467708461782147144629480646105272330265717820345460901521442938007199716404531781881619300342097028725662903358476190862994738639834023955493906393879017085893783613274926078016213623063137688267896658147050766260350471716360537868751912003832794255302808445769998549922373632852882349501838815733577879009415978995996814379892461405405905996471950866778010104574672289669610897363758770367587886542828069497057042133846886582850551442443359697579806214815214178277304177485136497758991373501402234379427261373966319027821272837455202263180942158978677020699360459829612723576774987869055235368504403723829280389975447377980368678422496310966054336165346651642601644497122574619682298371959927398487318868380547725636376231881400713124219467598932233024402152731576708074776602513585633806723273064145071594992597109031317223985819967120745641497679209778174028907856631092810174365803363436732272986343261149859573358826153520545966693022389812542766759501396461259584785853106728870958987586969564250841936967022547991909665467269196005990772389397684061344288333711220279944215913648597735203083769390943712838184446628903578694231600347689718258693868582613200987886649846274104624032742317153771527647634381189352353764083834190248148545180427024005981277719185022736112367888077991841589338229305470949683650427676712448469400451743332717404138083542117349020876961843281511828884631453727446329365151741815384944402693485283706220044367909219681064633882418563385922890726613238407847812234976891441910280002035711123185702360987449816474892468556232744116764560050663798827801565967023325666721178517770204178667523196478528017828661454923009380754165459666096521004431158484723499541240333051826949729727049090040108121835130964753094683320710695229372650368375528939413081245503844731448805034034874601600662468506766723339415075727152963987377833105654733255855668557701483038334241227838951072610458288797916390767818065846344915088831282686965789730655338344794169348710570493573315033750241020465891306438763239301984225849015269847382637364191688422042295567948057082180256412135497471476074870640260404555198069892777575737333177657521348600968483040362823133176758286702843509221249006703231496239404739434943713370868003530694568197408570324326264861605193433146663190421961202114943896968543809072307477706871440813373036273438883836284642179175007935956344918455303434875717990118718597604759310534546819254976928010245093163444379655573943413154612046731029102569159442192817629971657829662299437768874258451001660179238389334496655254777751919128646869719208328987485542276511123589595437968155938606480396177805756439471558107404310478289614717227241851025341106938758343421335275492124802947611772424450012545728255527947512336634661526022792548970592926032911781266364435099860683680371506604832605859678066724371360740351240323355268891111646885025269998940608170487853226564386210648214007007026808312286630461441577308826732119460875011451568459155247084146359603758407466301460446069887418564782072863661382301750767478338530945893435604897712614034648463378612809719620283731958079201554396599674037763605347000340148828190058809532299985099765547764691353605525790766034357578613524753720797937332192720873650584471606140350728389995766138472506852540672848154642761296852641741856879169680863956774957302417859670744152728456908183410699176946511665246860087546957990105463965813386993828544844889217683627356377628113459310467410509532353162333139284476119187628113522150235783406239590495598923569327193557705863177296914148742225413920515582404481222401450267203853076122924847393599685522613671877040135248577882392126492229876636977804391833129068348182926626658328847245703500520094945882873521319683606762536211393937800990846046164949702608837188832246145161854368231206688177914609732378308169466534308790506592626494803985539506195773395114564665895205732243868681836177333941437367478555654071257878705291074198488307099526706595173852174991486416136606789860730635115559130151082794854659756940363568297256468647090027731586645187518183019296133287397765541313284484231559070941134916691347165092442512495786536278503377703982951426133889971194335451015045755153616348508251650570209862964723944516917634224140033237723260976812947816969592529721721359915923554366302923210085652298353007285355526814418810229848628172548707471857550000750650539430199728399666396863120668423177800941470295990416497818314934828470122309663734792305480080071274705451728446868535841600564893328730907254928138255275479373897165177008123273884927842280075831789961213854349101828517873122175115741619134409078576549077495595504780907971044922717202526361170505635199681847953857244757517453651156033267865223649836751500827028801757864925364016426229672092162275015718226674160582103171752607690011008630728166010100852217098569781240451297372833856373576778957127578285490530976060322872991015779054153123963740513276838163756379885529806431782110504286863840109438645777529458556111153659125976690155255434209379708246989715421312098666716864306877686577047646372144298885077415568239296877109377267000275201807093158390357228685536114531473034339876528362745583332524805588467304703584405187945036541284475347797988635217126767738981039010605766144718353631798716987267067224287769286182379491960082789152305537861702208754776857986857070237772836838142063248555021718756672545754627989034725089983417726667409604355084003979925314315747541106043987816050960823365377783469192938290605930156805814212982917776360144520800732402683147436520570497920972038288358282544843044774454512870576222005785478906986595097913735346258622231688016227904048175416907820013185622358365551264746805725525480744939020634142812159566502725655731040200606807458012611186048557789264651187843006732851379490854616077932001475182063006683081052224583393017414749329962289279254356990117571637535126011209966602565815874345615378969020435588992737763308497799564317436433469706130906469214130583843943236861103004201895829297957138498002883272972032530821602037258290783121805576914158023231417150193281321785017247947912639499695819117333793212028057517141773168438433133431807114989709450878705767880225292091067301077322009784836599694625191683324583281665653133877161623838122566040294428929104619662241877072133073345233851240996273782131576859306821515333864377330002746197562924896766400796074257367309465636154756224199227300522771375422445111875940687488674824403909133197947044722484139714972221617655679800724259558485710661768994279839488799570491962696701110244302828346326923881711228915674203737709512086779877970794229019045982779746395808971801410145436838664316319586191271880987341793808679748075392805340282687230102511692586299733580447070488631465541722610696761928306300077780077916770732494548282795278168604265452190023838185446383138322523421277223122455304623877193255851314838382773564373727269131941530890141762618042694746851212225625360687759242721862508014730711284042981352461225228983537621457676959759722540118710970800299492364282051289701096954289798802969207823620112637588802188131188483589388075020984918123489632262419675112364518901698912883582767755187282901479351032816072198754659205868543996516001644916747033853446596287835938197060956595064452554578641388476883856267793289072575432827859784490211763106334445725029758832546129377401343476902785425200857981356771555830451500662948538200503903062817030860087780281445627049498998224460465826680262245903696332519873905255181440691984270888450808797421278909976766106006431128405697761112328644947990668674170118473533004372350483514963471679167739848327573530180330321331108918384257950873104985946883626296053979896294781575380534327574239161708562876878894182703291252369575434701884768322225857392085203815670687123385897439286613700509581459979460250071361732683134529258131435807769575145946856599322397056605505540493115462553931184191713024357590472803249002085160637143758574105006130740196056448474110936252909305288143687538213597436981620560806419236307628648858661904438889508651407134877770205629380151393226291599362140002159007009930623769901690310470787182914730135635970805719824681363292944584750095893796542580643840854292104491408040499155952958697931970014750082713175970241331729325432193912729976048741546015553590252689119008488641870361510411242269409656299059627561794467142915469071045537782034144542813793360167668797332019562007587488176770026265085413633949087826506797587938863597286286699576487509015829078956699969579809307372523268209158063987571263588863844146729515645916624413949384946150213395049859656822271082467039577816322923221268593399362921408845533739310610077855104098874952725251007747513929340541897617463563385596186899001363751460743774032443340267537478503104386026268229692250933782146978303643293182703451135139469268573167412272241883923127302247798019935191088137906763622834353548866303919344805597174508391355409799660371349776627987119705341076901065667225573771422769243318280726477390325501421502750920789818345965095406340148934227111407153206589426234873990336291919241721205160173529021595345715035054151533614941664995861680484109847733201293276305657891722290150849560088043388069913696610466916725664109386836544117262467847969807399446903423841343030054890975809353541268120619852902487500643590102307235837648926206350729685215162952014133957967942040967857508412014817302118397512517261340860203676309972861412188294722119411622381079907242494243057849878375234134431624177785965510863318179344907272656357544625116364678314263938053328883990397894042018886034711843110334800980140607982959109496027348369791872425021743432026431917934054310537038332272543322878746643608113304724227805489567179232463273813701859632899950919683350404200282103656616173874058445932193882746921781794402832125874463470079860857316039818152124089707622958649778662651298713070726980711247256120491278997732486207157673560562445953740733589712256122337889185677611342586553310234538335135871187997198355159788382656425779509712641083666695978065077838678319050968497247430119812242488715745545807267765920547693099829622609398720737398695571713660166130539097265719259857637911888776965067162194029004304938686617272276560264762471684153268153454485534403326066306623868163480230160205894775081070618827896498995631390940770954540601468222020113572871830377307168194296816983035583346876706823620184697160435667912293326982867596142189138141149823412344234307854567598104786486700161477328404381695678524382448426769806579316822186795756915147494303830291711908642099600851568746961245957252166111018504377258566385011276542186333037194370581421959960435229503560475341323236964884625391874095498796659741620106381656617300058543762246033283346972476428602554490350067891833446368379729942429126062850806231339205560358441440624424132970479163617126419027937300823769585667383687817597698223539574292445042038808937113331412798965613854856484255304315170754620076830239675339217100811591382586819788362233014410487178389865123601572898820347135555580380480632650649232822247271256688205080624491297830761800800681491130265588692397650685540400974488721456485043217148346943974006253377976612675881575801920009182478607883506950219646773653121411208828713420771832570927092441846852120904962048045283701224179786856985454586977296758602839082569285810304877867590653742809919163660207215796509855749847805560569229620100728158719159542156454392256685366987888457590904700161301329297531713968772430119061175132216643254871079526189431860501686746925325064969527751972833910472060964651778418798574180806575133913618654596283532738811550998053974157554816540807310406152915179843209116151961648825226737807593054370066967119641214272578135888897298528155311389616100918720052412779583704694306516358904125314994605872466233962065797069457189568714167297728059072575125975857477772953044287469041508613756466253767204253663329993743746243594932364703685740345702737306261398940970561062461810658061126769036276058900463404245856185192136569287144089329946626517364002328061702440805488610580665325266250975527884078149905823792312516147364637156528158860038685830232258596846282123309537537800166848794301496785194476429025718437329347589800091699893265743260696161785485859052795793759169209805705348267218505657488328397228715438797139663281918249290295872680903857567577070184648854644870751547997549787112126362011648366645242002111073677419034990335968425410656949728895834475707350050217385859956715401385443731022791425331540606922453428179041534702510503784592208547669458599140060708748618543015895448984827681908712196741193536701345463143016090585087202243838591100009271234123447547250964355478820734767778652014621670289893469784767694066958060093124571926781248678969115211185874072730213012132853841593876557621551688142022719644725690883956648882726835845275056901176448115301974589381465767192759585070780021296855698706519312902431399989207224849537160594234358326896089750002176926702342989726565170763853977465767181615494330691086927512920028513105165307755218843223167165734900990048681496464816941882822785126212172280603248700494385464761727441730614044513866275305620360742174299235796325398775030104633173433030816288360975428097041937749295227367609667356912607660606020766577861756632522304627412970572415872031602491581466917290668615120727592943744731799681176681323268046640099511368388984388857352580248249885363202472812105393781280670285432562199982878944126502922761263120637452268342748195476401926740648240551790915429408665256199900624191678553177862796429380426907548684461233955521339083535064264638915033869787358352604117588943992622382246092832238101815515697928429478553724320378187136753551064791310763782790476456311002828644535453688072441020816700082480566759934597132719066362683332114751447922174518959596224758893552087454063129815327306692508069273266544391352510833018279331788528695958635462440444311488766804550610237173002370374014927113966603956159512834183830967552527337360816814318692198243365142543138280758008784774976660677170753641222956205699895097461707686756703994581027288909959881376646858149116149290613340259572176606920773970961586357988768310695530683761675314011005207614202626522424900038630915736409514749309225909119559472785029735347328270051450508965122965775627005322128305826389473621271811994023569749202301085390954636506911277945756063706250397251845551481112711084141370379856821804563937147178596319497019900707453962852924684689129404605175184834332521803378510002866415757022295047589080207991575817791644468703190268248209556273660057970398604093644589842955609239282774059861362258051920246687826893965885131400108774609888229972522590104585556948842539471885678061525663747431340859570051695602669510570218018219375959650907229936022110827663068894178997832517312917003040686454470116676387018210647902949954666461525862888608743253760525271503473923054362113085291376465599682775991609690878044468753826765733189069933590009744706928566204309267095677239631655121480516214184983708641629443072361703237383928087285969868812889003526430148065331354494142300149890960020956181501666756958872395802811311611281981371227899713578098657323000563792046809961297188913036280517890022907242883856377782076773057711808542274560182446579201149488363346169353888599973676842893469297272064237021333111946401250940442457682391989805004277302737642012336269145685381891809243335805264291269314601341545857011227731874034639640766528285869055604323610619984633167247825529323470105333398217366846534497147262218523636866890396156332270533786131920951818725708825471565842163836496736138095091808447561604532381539291794834469166320983671571767292151812429064482259904582999484311105439663243028193597469895331367224871063222019437763234759321914721890874414856814841786007630288976320889517919902944566768634671156166769848617222446772300083731016462739680311318678727503192275555029503829908963388791273952575357870754704385287824412026746520990994893547729804973789123180568142805596507789007354161125082672641730127228600177164158797109425380836274790442837249347191583096255735521502688429870211218055004070755257697620863825171960278708370447969608398058568201564555356399575464673018385757737667860709141142700536399912357058143627423331362267643522477557128194709471358996443419383562133894002101525589705774713111669454455654576582889104281924925355458320218661676741818704175362167780014298233370416718445881456128872748714913295706890708700574740588881704205604580496207887549921548282098573421822549385240987987907250536541597098884866263921571933420426781590229229253729708929313089747975852980344747577747458356162757737998081577288980598917119075911738199530277636691182629953903697187173034173074149007992512015050166572651227039925583647749644013313981004442689627097130003986218169573072426166991232554429403207213713562117963102435528261534513402840678262860157645512362214438498498130895827651347245645258030077424955185483538025386263309280115864629347612426766349984919127797187399121552119557428846382706158575905662128734034772932711100114256022896306923028846661112552138850349207608948762558891209592547572301006049641516488678029788095115774050562909625515832864771201913843444339130223484702477271844058061313841921733172041048061236815700963924629971069893704655842519974757093034223228201508002775330142600951289533471629455544468717901659945533603619221115524299527072230986509618812342049445944944423042210879229046264842920207714067607503671296414305376067630118283122759043794629113061150128345761958168183209755005977379008508922511184741533094417056356099652275900991489966771401712480096335524684846058535624334046796671104911923057121476691840877594004963489503477411218631575903409088133001750747685843937173694561933541296866629229228144228855108019689804445230553165390377329253512856622103122701618071333972153804002405714041386519474504693216270171625647485846902034398827951901087387493281497614650938632757391655733967213836582824098068932300681364862953369737173641952124422728774008767352127835572617036659406811138191307665057767067680290492646620944613845701499226597890433652386900129509659869139068202670436038292083473315203288389191638163846616785926695542595905768742996841380231890074524219715051025930407660526223013614719751299717571259365586271917300190298169905402268148417730802608097468099700740898313069262269800418903024834771121278094966146991986710052069506004577062543371087966950850355040280523784831231662588520229201688159674009038636048615349358757674699644192480225112389784022283758353818566630203299757408721999792582126148650539397701104448367735205855481780006948759405446850368466907836639377592879405313553477416881099453347795050320672665768836313438303558226601337713974673714573071522845773893701895960538433228177222346158263054777121117394251958701826297301403359290678989593643408242887623266183388761488409723712393645664865958888551260843890549071737034503817732628439217222851906877870302939237365043875572191327470365951873240212224406098071178305728552307182153626690512183223199626923941794183335417898259159420805894988646905056041242802121233050001932534485059072236922595526056844017754580312207835392842556735642276448974366894735857911849013901734118830076857124922277346790550829630999963470513577031513727405756394793353001630141176092618870753363532548388443348845374249151431403872371197187712379195233228191887051126262406119829149510610545733697261451670578587487564577156280659989145284175006347912911748249680338421244258116081267375021596478841795558098786506002945305336030922320872974665159797793628611048573625180454625881964356760147103082824124397068045799861048606000412029794101352509780305264317312955219805397298903502088829911549815008765655184557596386970652562135081990149551881467252039463821627592195721050881718348582322551424841648728927798671002257076150990226969875636353630574313795533262220431055799331341637009003164428630576423548547262432852419974189380277607136061892600555312073210858323143380973652302438178799455547776543525764748533526895155727181058914144472066446472305041945093752622540386212678940315792712294678234540768484474774483357683954438318758472659397273183922077551497772791879848871108108370734787216502758967959444786266841843011242828452472391528410408781890986815257165883423636357421059635472470816298913634423970277011572692928614511105824549384888472020337791431477348898523638023214010672593075408937886592027325923925901545643250140805247276424062320023207557371942925163482119829530439781154338044673901597092729901455977098942895359236938373945061298862575544766407531443922536184531804390852838070911363591493951870961395299520839420435720114118646697350695213774037090214635031934608687528905757014151990699247858706313653124620837594397700985327115568129715808189583720717073043794703269428083988772329399473451345298832110026694838980337355599956115275543807898336984776968661264032442651885561870906125850940588513365600763519351484919795823953944683124581673071514746451711005303828926560766732857082382207234934818789533856924013092840699559598740031370174323139781439304229495812105412161468090044009541593532007802975242258169407561279608527103302120386953750482965530110694578610858299960645365845610384707145324049321928289991085403515313396424623964755119866907589296581571050905459858867202185314252165256181655667320102421226435444279555999019860095123436793519103500948430973449061188871942675313558453730915578403148024423268427882831568425090736903594768852397981201029566239867776775186355096268874864023142513561777630469212867452506844901315828509856571326330088479700323186479571094898075454262465472983557752218574110685403166171557692131724637836951396512104026303156182428898670036203349349692558219065024606343639308682489283877930087711248256851692821066462361882772536720155591784607452541678170527109204287137292325120721019997106673457334782651969720732704341513224271884426802076855924889761271510948727359702856490662470921900799344352731134301461958923715262263625633831296276315429617039194975647123915042251324260689288463034453130758826247773036102233767144642777255300678810604615404714320144543023439409205353874757640498671955307067626876124380159494128077478189289326803396698685443309920015308389539853782346694781015670879986627841573560532458796626979234963611313744296150793063344962568802989007958594505904047645830537205197210776273874043125848931349455167289636555142596130565825081640911386432080371406795704061959087674346919086447851650986010700808650419646435341951554817154948903134777866794444019198078020482442888831310878728701222950241937394393758937875944366176858453922302622819123263448820156894861485461617746539268337690488073147259822159379697176704958125060295469763117618483778874948273136016414000644103179988840223956116869146920030340374455514925083448324109404353704900614990809864143817138979467823168032960221803153412903507159732531233005030469609162949964890547101789023566925859508797007186128905140837399697492477271887624401790636452252215446765961943679740465479578852708165746508648001508483571168397265312158853268113483579216565773157569166221662232332186497153871357336015649694787432949033448723581270762452492953131986977534720952499327501775855920120207340363460534152204100496778459012804821068572240827606354575655607486014975464805533516928751768251550515085627252639825582075591704508263935644295546078863944261426840332133645596944557316131675391491628608578000247350696890609523585773726597631680117802321038928995007487757349678445026621594451035792433236619992471384425198243516001166871785330959833376386793747155650617921747063829298716687357092635519701937436850864582263266372268332723155910516309205770825898204472441023813820004393617045320117321391647615281879311404441349815588576021404398999812587451454878820058316552717413133524747181110385110225004873246155380633072106472644114927622909195689822735333712553909008191478018422133383517695990976111659944887857629787523635660262450358497783274088780466832211846919404729299984912253815207072912099163157536092423788656807880265805144007913496995200078566716352614496728473010964087413816122245106274542517705092436838007241691901440135976676577099765890674390252834764417457884735273753253507161281359737949897640009214468091103017412275472264060811232950632257398844711219836662416522416633686455296362128720946320668901812722129335804280032920337949323038168765914943802425238512543541058471814288330355653564457596216142126536126601324823903085456736685482055640628829479747583799368120047211921655394384183209001293749549114760658818869171811392102881658331009176170569895273073542348505750890470604265908665087479098611711403784676236559754099128264555560180776579993484423862183317602168303798937434738735848647192311663684692937746025458268855848072342574310747072653237997776424916759934157876689973167038786170424981529268542223850176984387754966073426752677927028071812222773905722592540411980120717211534617500839181716229010674543954773742406188736299887728470538826606361245576843597051676417862698758917192374834265860607204255882960721603680354823359796471600224999268752892461428330381168466285861176565032512986763290390082392727043965019157463841481984344059011673371498305877783544027239343766579297060918996960722732122945927908650193243176897972760501152869696306524544899610904012092063962981189901145861334600066421998219765316695818032176698681112882217480945463659743179184543367828620161600002853920236738216454331927094315096267415836514460042906773401863922268670574704989665612833449977129749423792269496376247012882110694250534486215440369208948274130379421471391174295824176448005321570326537031712406328774413792062914767639578276385311705599235054321563627512370768240845812274735009153493247159005522062559957773175581664920836981454281600095032171535511202064610424958986340297858729695871624533677579966726701193330620646925829988340598042736492668957263618477088684810254121634519591618066765997105350110383093994100406899650134190848551156131052037034230157096164266580216734711666224539518847777018189930492632397195369814609815383233388964785942519351562988405333684433994848778714234334273074071130146806960862663779462524691804105620687385659862077993591942812300412847217836432534633665990896729303018639046787852067293326655274808874940146256530899684569506895797395303740970120123835089842337609844035933546699696390277995117652387905971079427339796792559141103485218135799588375751971538540323251679852281878968696055745625930021595503610846213787664010771889494461870169218127903286052743855498905428964383011279516508712137449416133326479784061278894150075321914904383308672730218425442689824910265637585813742061481917253518204210262205439174669716126184306513840914966947611938528705579824174467768391103232637638797939319873728857827763431021433506026452731068862213339603210474621490218272688936590465525341293332860794226759141728508480607236064060486178304248050601044077080156883566668120384076517638190741486158231198522769455242193219729542470106486666840910883067102504655392520372339157891568151685135476177406706335326448477796954282210602829946618162117397489119071885633402259771501776500442298346359032234381478451022400131294645642768815665705158593381897920339767675817579097174896272713815263357336244974808776091170981851165891196555704467007093162046734141988070385859880682903741442268317280917923627913855326463649970584669609563959369890177584815393328286554596470335372957112983449691771952690984334559671357633561247219867766679211999921622646419161472397120703772340921997489063414303872280263777088039594996203403984044424818180266149016132380303022242198741765651965302769668928707842207565453863833320838950507181209716886679834644347350343403401262096741472830632935532564291834746502846481000853927297803422857634986116863173298226808015814362247757369336882906839369050960840525077535424800945072256529310815888685466573860423548450704071868115895206576963341265818129399740925826972124600649844857115234508265462700688739098956387164438880172795676328903415680235225867357718470362184223882831847922850969978620589601252348113716423678201835270913924716569878539120476328821763032860548069074017971226566071070638649716657673789726007105299980613144227969191935293477606279998081697747515049648642526907228692186705786723543171334032675413786787176509386258509762191734064575824210426987956596016480141627004137056051764720435981986190138006732327068803917891984868123111349446891551860425947881755166562472852692143250252838490598562482084268922232220210763863152274752650892947896430346931706384904293273168755064960674377950013672620935593356347306904968859341775104044565718059246673582586170714622176354383211647945982236260045374478340568674096410724093133446987817299505880516382275574667734495791996728772048277973557061558098056915912567566523859101635653423130788260918187336045041480007122427554402859744176303257785124547248662473786642198162918217431148273791133249961080159872359619489526862284903504265100118687812504065945299134353116224953722458776943245754479762127226785897561440549780085703282755162982347158557367217722045389299386172629701564634434121896991932116163475790735043099824489760043767784063969570287566698259398416618031071646974357727891417604567034498339771150255058248518256123607079881821197895270508259424792736477014966460898581540879442619839881904204060716370579080118143923831122315073399766611441643040443585159330252346280054653090332839447322420642751461878094232483711401460713146989642637909268993393107402110292997529284472086618054283323371437680864642969812078306808869122452961571005446521705173174917593975763678453788026088279050018837224393968809903716513991102906211894918226313091134800789796046765877544713107341503449067732541077991509047749075285661877741893867097604237123165697456395245501777105443505257536859412625912567563457017483282008657624761065453666518169364658067564990326498268143379399334688735175026059912834776982295412483131583844592733439718776960531055534846122401364321874495545866791893913331620876907751490104203008131710291976310332375382485633600688812264417886857846798996050738946901503872753015302785038337350700894003453714365437334808159731762683409385608268829058100975557171895626718334731000570126503514496788107997911395340277866201697053766125432654239182151207735961691980664721615908896399126897432228234918299778225295228782579166925151266460269129530030223629003387195492253643338057178109849692183540824455883860604937961061627144024316892070112793159120118036212937293000648606283017679499574712491197129368077229960095164524263455865968626834544471768130366122005126030153663194292502485185925904092906295334073222565416359172542633198689501664922187053019417958882512564407503515387220754288358051342411119224819846885190879315963542640989725649990112995152314407738290587240713146071848460984216765841228875632642515999916646260405185451687935840386382120606725432653131989974681270042679723298831737177500376680832048453122101593026534398392227901829691542708981139613884812280137839081636048836126990393422556601762893453199756848165535446481365632726018616861073502224661654289701955906993057195031199761040952036965598120631457623263749121306265569058222776696284904888097996514355421881900383033071494862150518745814040601479211539341567188867994649996306995398782550613337560533705745533957955063336448150915088558579936702829718451708341627523059417197907579520629840770667574136719751410272998839159067927447056637194200217301502286450654134331486721086296934065507936659910128891698720220016097216712685383154120166636125680982164124149912971656372936346710041409995737859186389637293823147335328170594657591669023845847138509497239147220983527686677447631218152795845369628885170582563319546114540081044047344409108476687040105989657855797001754819461224358204887330391295017965320043172976226918137606282022335855099157543751282946890293850890928046858303307487065988475147973500953263634178073368458854269203791380813908002534870886376069172129901526518595682141864677337568803061060456972541282052300377725744506824042290234746221500982948948454031679707878277132217426276538049490943761944943920509257755036803496868243014605878518336079250158366130675265472076279099085678003438121230343781445853489563327647326252555992107345610714931107255216696901865476382965737336180824340243012493022820448036743952008420187950737637598010846812998567481623495836466799334076337175174582869897709544913124388269378015261540090416161302969712682597418551856867065350221726327435839882197178401484540923788554371978464048907303609921240067331245878297046450099025359336822777695397399925980984070418459695733978241378626010408382825648411427850869641901154148108745125137124267696607635328844500122187993621878214571211931527284884849658928567386753387899672782431524043882219499965758818458509152074351626902156662402873773528875075003493368415931067876082105131370902714248743124961752518095736220901554313227167389674866375148062447368004238983548147478523723520519845893756489043670877923010322042075499179434925109350026332949539273297617845716408776484535347948631629039442401305258679808642693263251474154477668688223158274872639043776902696798269999570552069863239442476013398713712135041820278717022813610384342542424017789984215273092206911064391968982115476140422811382700677794458298213840014484466160092960892237052957686675063279319280628337339548389016964716534413591793435623962585882534455988344087514031620000588320828789037515400296397099636652892817267995902030406097098164090437014439557490946434568000562969696544598049017414431422619181582483141920479343254948677816667681086293939388138605480035130822311346720437386168099862221050522266025225234572042130824418281615673940400149415472733438084898421872667432713104069220645045398904306873077136190046577432351533215135560361031685866436629442564914345434509317739569876794881183521578630513885916124498512105738405452870361023119556907589744787655972724108704949417020648360769974800796224555638255857449159025137902944317622909886380251106956914462421729506603943003648714238318235835234333019134149173111514806123570996347627069264419471765501708928747214399081864717130375971503008046296815855008072016542760571149963389577212682543469259489327463035864530287181086436708266007645137521561213652719338441049352760796471206584449488209812832741252404519260609618062231011533647132027378146955704693969687794346394465231425181946961553800469733118651555277786550652287405041830287069661199541011757918437170589304482996144029428358929668201515013738415982371530075216556969457479064052127108364999657404098889885901068624471280517997869850359308249696237786407715974984427026961338320957556682152337106858900028422616268308103017273044618895857665530855266963166300523993232091312484363744748773287627825013394966214990081668275395039680334881461802147390852915335216747807132535323920255702983827516458061287785889557461802483903877368254870952256745025701030707456429828232034868381886088116741106795933960264597112422692699146102884735300014919183520900138060890553430565567760544564716347386114293965389499609254805922187639014888691653461842347516208316483123771917684950844358345219543932376720433795648945290389574471946870957784027127573098132785419214872181884803779785220312663393882313725769047022561265842824545767896470454949664840722002122984971168936961278918480057030713803329935319603456351652308197543936976153925038692547838630805471670875863255286717812023662415112596367663326271382184134144665237082995472816833235517685434168817025795662813884977769713660293749256856195169155784580243750118082063481839400969390614498473116412399554372021909505934096465512377613582538319852782504505579780128787329155639729520582949099064746121851886228007116054195951688746077322628031909266621294255760278030566193705115894037070176299084908910462178415723215452387667507163014761913044445976850323807585055850182873519852759346015330758447817268326302661165368193891363206470538870598920706270896539870776194608722238839759910720368343774381686764418149371287472734468597470713392645894812820341671275312800808761715620707210305238609924065356706638161202133651796685154714135494680210077915929096857584954622205023699609713105414667673474274991664003179454591876108063200029282771117674462875500342943938365041568298166470639061035891751640081945528611188269565520977345320800279036970710710938223284980868973684073823914681378277827483536982637877041322505676702247004991550848971204744468895900484027356042435927702724621484472771106178360156423985095339285520708553815107428640929069559872755444819087216239913044239493913531068849977146626616571659152327685530373673901483657156755818267880106269867319802947095648834142935746451228256768554193466526164692601660021875535884603560685321526289136525168938730465214624669042123839880870279994414243701734982821854158203762534061771723901767412893924305266451322122358861813392146761458588849402139132464895986223318149988755859350417262733601881796708665437574442932023575534286103216400295660656863175547153398708005753161815329941097642545007191370599919818497268984278254698250445095140235366200819544294388927971259701820226231702605692809277162375364108124316616303469649409007341826167648384266879785383193544289492784786000445461266250262991386873543697570013390857309666185102152801319708363917886062246541039017960356069717460479974528781150926279207475042527262572928587534984229314955876894731201575996243843582033076257433383836485052344563222957688393025110349643940237135840887201451784068218215022166052813943858203161686346632914601743056735644722182031944631848352879565545351260283101630420599283814931827054186588312864131276958027019438738476155223535842084315468796766704228264281216856522527579085906061584347091184857296620012254250229129406654173940272098463433778701224468538844913968501305973992197206290156722946401871450989877966593565161959448660832859117940766326292800748238945528661261708773932217306034890485129365759253511405802073898047921198771113893360974146449252028841233562025467610254877140819246798844525755984289269282973396497970471206030283766699766105648882654197404246901841715215033432165343131194950662955781287795322027101749484932653049552642815940830112605758637961949094522643568642687753620784834884993697918075891576988423839319954220053383122880811713558714045670132495833086785590336807042583351518499381398444387394244096919307763575302769526796597544858460057725791046729358518347844417156940206804394950913448325624364982479912781546929985825555028383964022759169773086644927575233922932049401552169579769271800095887210190251368127949725434041965763896987327289339663242658976044309127061556579585491435681886982752919530338821444225194931421450026160654681580040161296743177758763540150231043373482720462750386008427770443232546525311902971480519990293276599708173478427792187299812287298566613176880583178003028873590916347840056702813112303280550265880881747164096518686226316319647813518511684292964232795894848519061829188304017076362644951044988716975204149799570320829044631608450834662026087857437497878723626453121561497393384374636442594669708338486707568369737023374151311206958575624067529514244874367827618004352916035741058693378736807011493788983996922619977762092578869296996766853320133128406187567491131741651882157762404195030713233156211874595942118678176395887793509843380104822419584260228072261817304795427378860366034104021698269388025371092289574092656334714645784849162162636099572055576053232769127505075973811447386088958946162023944870943794343780818782153302872810192514712037914728415754402308237325821864898540148401855339579860247225063674270153557138247812628254591000350583114562382652749499810981488416882049894006253911015068131556324565000723866107004471384531894150745746679110049289006353327346142143971287977652821190079810030996354821912310281299920534585214196529413528581948087802704006651988586339492629023694562999795794982710828465256274321089881282117756003718351576124322042496446243278919188196399510326721588110216402153774640045282750656482644227666057629030781942053023763517572532367461555915302455291783931797677498932821200830111053171651278490865457733296784686744353182373383832511144913147188726514501314116955881516556544545868628277382976094466296387060967332753473189991729333862527629880777132681071624964840435263214709009565049819403632637843758911862688310003669920500776373943339428721522920874840801254251465908148954237620773118087325806999224960176369615711417971597890032470057603474900812889669322874539105836411289076267363154036421221884291216174333530243952195632389584315095211647000096678685249933953507785161435254829126865252794746859328495183467021838716866394338979223374031686975456620147277658851314251448364705416843632802697840937074811578974523863325467166672300079410652537301180385371129004927284481129916754013452170370284676389029995664318316144947560301848544556826712979958696638476815365324289436327811906921751600783666845714671682936748544326282408178305315710857298583284342906182655990724652340643939966235460199688821627581596938457800034957739107415126504082766948917972113100995170241585490586160234284212968088811575323474361585440148986466334967562806591357532386169565451824814039094074086018051206253213005821107660551633801840985942906975020585917015920930037522250573208275464913841956279552346993800802877107979115218659315184808576276009918337475712161877486044176165009335176098373176101479088977875367534126750293867878165227267814112591617762359621827468015852233192825576143693947904626438307699339143555524650956045347384103846178762162322190559787618117579010971717277000035227496923983351986100018676366094444658364832802496614404785536545623099592515282761248159778001273078633322033302243842590485091015863268620378677717719982506622230245686633899824219506850912526452759597142920716500255418720942670408530487990824412410080465307298001616417014252979022427472526208452204828139742764545016865447622357287128828115461334052573032728536765409903092392182715661280280645390606109659571280314817228054387966665983798583294389740135051758310240808767526856257843902941984033872894790388899753649588479411400024770299384272443813218124522251353202376592393552210554677337066296361096062587756886171694476240610689818473144256333829296658581229904450804066382694974205588206699324028889931815778714501501899114274283734317903992224119987622190811598992798366052375669778967840467889957943076985653711559042456918902161574569185839780351930172012955983126510137579428595627053134696187146353213315194422819129757990892532326555627483107016982666370753859798218426852835048786462764964440137445202675885294289867860137067494220233740828401454291874730262732074618323643778664822723138365758416227616440943541600547057957303397952888939003929837515347517922161589971261428419396057204716626137239921404861363001941943175484780998037376325907347911113552437020002271465177920958314372199127928783793963481023054703574720119015525393861661270983880863421634720753912069788314202045479492778630367078069768849242691370703359464992031457280719701382810910199671106757320694882309585919232540440716450548788068935451333239571455063502566573150226256104824215449562306299408459995567529130911142003015101277208408916078805084872471510894096275012349276839667556701215172011952468405079794704310038524186751655128655985039911893444323540889757092149436145153298810739127978976434194274399432924080086216440235352197421726197708529402137825417415835801340599634042911115821753281443737775623918456155374632104375566284475070960521106605280654243183717933949928066055678181741986818147424911277156764917254586116207150991066759038494502882023181344579699009571897504326182614887166950643163080364364116073781252338054232248037713205456385791967413854023205039524544706497859422808322325440850330460909516969629018711774727089758250889996727024276141409680313058479430253052421619894806874743522667234255765567969704467753159545466337192064401571666552173009838590539578497855112582458556762586816673361009395811956947098909263997212113675738993844106184078981489182567717530538106095107823905747665834283802967155770700541659654649504367367455991529762483328189031992148769990272606259442396555268797326790653002859038716736492753463055806060395555086106714112244780840023395837280088519832770710560181608438758818985327036385645582781421265413739904451513693627808082542222556904451371348873571328235002309635089738521467197088575722454685578810783837266671401119239377668549627328588053084242328532724778422294294016791727569785654329671712617837436175893445849175607067853556936324739996428529474754226719430957226250743437172017721142850663878100677159707619492224864831493169809280929701845850789558936129438550815957587132947325902149404172642988427338963087842863371166732854323436206160082322754410907119237996654537293681184527569455269415390870855001380945948319141645015744697807197655079164439849015940810582195909773354853207897766731694582377697149632370328915371252108934869810219368693810001771384451950687436966018086250078858614505161831219872619928912015716195246018400492038136050689343193274090162536460862487960831859162241832695578038055313375617303087866530453181836526064382944909302065146720212477277510897438154110893467604315449559568531056828429017274094747774234911573211234392998180561711740645577947449111019236011147326174315977209589163004858418670356746731627507878627270916841430318252507189261289327937506369315201129584628708971992773261130002154670614474754084598853763735715185617763468181697056250934232447129169665561861653254862722879084096373539442755301039229329814727647861428538493886836722152927247575701279631667303845006806614250740536709433066801675568148900963938511561454580040332831240452971603012940868097415103801542235854419532949947212061179991176706697426452745808709069916731043893949088357824963767764685716355051767865575839627845427314859447122346476938866701627572660484071275632646497668088337752562874529940370011683688638867431087828616229010288004702837804953704391536550144261070851303406148919829256894880361645917824086307694552350740709510872515785911230995354387214396398801581434495182737853007752310127646603934392904230930463506901658824966290766685505149845469494723582295613745332841588692312049356925694202294405642707714306284622831392286537754820733530557702018209354494805290366517248105499007220633276416560478819531117673838991506156858405334497983964701280191805250399891698219929246514187755773652688725950421804118127265947596018924081668963050273923074107622738782081570018507891773793703449085513175941413317801206483052294706757326517808130747304597053621346539594662273638728299613402893478779068383248687733732733975444046909539526705797893068157674634482017082858014484911033832585008734409571782556901637716842960087688321367790177758427636186190164277519228519869864687115670435905457102904304546749064456501228734042383949165636449152260782569853814434554606376597137934867165206298919205543964060404578359738370984947543747462044125784188927070747253736953068613639830085247790803061363371706163695428970434218352576013263035136579139126223549529301073032611636656460393839236670088612042967389430468343729219186357653435459195905664050454757541330654788363471652380192403914228903118560351508466419720355984954826695434402548699388178023312773158428532904906147245458012400469084786557366908666382199821121889334562434546674403037212668391178056442846335887825242133553627786200615167226533915662798960645118840749331385483471741654784456933180151353160804928402063324165492853394643975687654551927872882846894868288100171123535010703984198478749722239419277753735845032070457988377639375026540626252157668215160803199145655164665265724666291624870181661114349765224418260548085720065055474552231816621363976678365037600036905722798225206158159707193995665608466529614996933135496442015761738315252330492973333323755961288364640844983855546554827366649516218279321987135148798139068834778322752436090321707080768780975755686621057816835386339379382614122149048622889694319064758822529031348090384668541288146445992694386304835576486289731008920320651346053027517264917181295192786394335069178416643466402224019384023200930917749398930272929152643045097723004758473260719531028562515337266201326007330204477600871858263436602247540868069164302338033911524468152030625948153400815930823537092236862890815149378015604437088367533863244323525326745056563547101934114941474340641645282705035385029471126513268939878859261155758071613882713899604039814687831617876650854323081978029774725738322537554760577879369253731195996368744390558323302240412747864283831059491829422020873796475782820085788774493068279587944591140769668184444836937782064423360971872225697604025002039520723736316870511059391281797254235956350918956305335622174927425056664457566680574183845662275119135594725978922727023714153560574362980775313443547579188045151852862001241620052032435048869212103110232841782154569099113801286524903411017842656096794358047288300475904312092420107696357424172020962846128950519403619767139702044359184395550105254945085901011645007253327513708098246712480336510137177229129317224250809743166390107316780402739765415439803372947421226809032609783825605401593013740678853012088801039084820546434818716954508548387761879190855442109560324597136098682968462039800188329968445258459870544038793301714346900185600716742649341664429735325021013908413254135579233623611315994691250590242608891376570946046461336451449452124920279778333097123546072146409186815908737503167299618405477089645351406223355107704376151241038985524956775316653149084123152380648643292163163579533782107591519252371967416135719548648544237336363520284180337729304153330621229042842909515428780517420066050031864390016292920793368497240922093313729482520786990599895271882856566653205907735062808090957720553222998281728054656298122529676733598377783087023645711964877223134477089488775527114918852242973964884929942028347641169677322280643700548690823229295149054273129375733313608334974146166775297260095994263155274413138329023552194593972740906739573566258049805137262943303387415422933788912468796551224611925090623114155496641727884217038210848434691236449358510488165820895312087429203407169355805524024179051823349877364045960914776025143670946795848814106604558434049471346501414707883030403286346252656998483185129266281673316078544478493066815744306855991376335603032613428713376336728555883768323187733873024931036565006330482431426718785332642912310761525184145740493279615496411987822024807000432947543181610164215685338928457143833778369892293477660090835685555836695879569071763660117023032814995084591667662862500448174291169182999550361143310947513199155537761197717102103661280332133942494899877854398418151870375439044182019007352363932402362994695650526644359503701888033316891579920919434015903476135287247707763906212155403184584162642471585299637863737479717710653553193211205987425187613823121294733574849813270072187330204551196932747607403048979176307820242197558836628586728010487213462000891909050362278983423972986744667235162342805090647834065155572952737113958278232114397339526400074079195854853051741611016684022210047559818725535367310611003274047364702509038633776531152342317779960983312305248693727945742032214871229055937264068257802677018019089390780926010653883309019506938529914091820845504196992650705055673478029348152634606967424869982024801466395071339896914364871016003358273012763219131322582394401068139262841069064359140093654787541555085706464416785215779982832702433859834825753590768617934322455275914832806715682072325377853378281278168029626427780257580615019068025130223524536108548455059259920909437280526880362573629975108124876608176760224452632823978997539038938678559118842003062347040111163943453767057199790022132624037157030388672560828605219227428849985543518347579393801852666602755306236836253151644739346398297193057718767679301953965897066972708630227038824388121804723963710077453316640983017771005300008582822063544813237500600341009587253403551202081828777805135257173046627562876471091658199276947159420535177285689021962305658766001826567866609890038363627717668188896930024751031067256880716283482058445045940702312437861852745802649993315878153900560711902247887607821573700532738614165403249873225596025532647327748097154272782725706362088320868558250653276285231210329349206099193730683621393354146799264792446983295713228908166459238719048424971188562476949205916215762075552161849249685094795440726091351959638064042908526797269191928868368982984458173878374269482347671279248787860149363660545613345674925719826968807992053013810948731241870874814498769802065099837554066044345879474608242678104720156782762640945169354836566476513814975888992367470734472067575299716887055525272421705432814804465458744411705054616974838706633157103227983355114812534446385580521125369957899056937896946561942400352098541017318327638518566970828651235554019365402899283090274325432520802542560195918195991235797098217746335023059319047789011437490686645804101140290372466147491431214355964623091149671207661629550856836926259966398726690627406469938654609137638644628406851842974010898344813590070283870920888517829900404036730080643984683315252054026137450821127810669552271786468791060715581739450817806137010617367593749447150057484523700564726942986782685487675015485467736805340609013583091239208172029338433129588276904659740390572511163144357954843034559430654656207561796115188876782308685139083713011770300539807416742844197432832538068980271198162434394977042727159528809340459726313693220362805001155319184881714952767435719948475189019650388479709141899435985759438089892567972863244617158327295639986976322733329824340086623289630662558249348915863309461473626513854948803701684662522009278240135448435374453276283028715560775877776686396908475358760315735904441916340978078907922468558552279372783527636083958218119459845635377154916096436120229269619013841604398237195918439863818957792110181016955612298010664827854063251014259179014485188872109716203088238784867651584770697175735235554342346300159924225475992537355433361317344709587820006082398859277153420339231016592264881033499225582366309990160799621746880766316130029115731751095280603733426136946084210123987285580797411983113006151186583469572323457243047683341514616562852129295574557721489252903446419644582850295853374067236726047871838654846186267731119240124569381809788080726590808669392062066099118749348393802576576149690444233576376098321056004273792302717458733032959617617181819171274103686369491378950044360889294086973721072460563367634072613130193123162164535776275078146112410092025397558560796649496462334704394641519610572719877809354495894766943778038709943849665153866233069929898362989818190005422820093397806514721631231967542023277121492881607122312788163502261396413326094470540200768586556286129141008966166691676794179530478914767216700584498372187106449443623782806329536715915070446429858446787498864409164569744121026245482303476849056931772562182036540608365953238949586560301884315118756894128910054700912466041506389449608143147647544049439386942860130367722759083007125236373711774225619824507439652166603319741833850879992246945182187140387922709186969818476616705708645292836883961254019879942486699620969059509729293986833519525119335784012873141838318785118507287016468193074021894486049634017797499444107401515984430143244543423127814065794119592849342566854857105591048101282082649023307089259476689008962446115876156056091419576212796542926287276057396796303452713603484996003941086441305115584555911677801215146239898126954409920332049301668741059852745850389848463074488947154481751870247163830985277725128263866098083227709705542994516012593950273713633374741967992810933844973543064570676805444166207423026075533189149003474526975634811526749831294046262980847973975598877038392256051346809872952043265659825305293096617985768993250608351931143572534719366612127750016009590556377861889325583878183098040273171441737627929457739189189796718808630508314920034717334693488637597467425550900262855926423011275568768326578136409614209827264679628107587503370843296945607054726298425630655441063490586482364900518796528823901497956891976206289144449647687129578343817105038289128803310381082660949382723276969938283324267164241774715589912791622430403917140309335075776484247472545629587088123368267589904360473997784806169857438668963810756850820557165489614031519026998611645336349423285793850539210698807846312733907546839270150107064149183093654037369613187263912014535695032782741660172019260638170570159064899211894753575563490200314735783537054881548836696098341654280905295334061666319095202511254366321331059185491609299300990646510184516025299431128319139566510212722454547239893624078484804875737459736013108866426203876667914057052577873465548503115988468965939475322532440119892849587091823609433857706998944959360014413066738206412246354561439946020636851410453298127594927569021361454118414662979575106755455895860204479412838919445484041880242853760561839762987612199157813391664840639764831772057098889647724882552017464106202937405297558629547955644820147496363121453668097432378893380204583431946307342281671547970172128895377879583453759634839682053092281560958231236229514167815741849173059869418728201971148416575456332532041024563180235564670810472846659611258470395950789946538702172278373812267132267017991828164673877276183913508137199686211155369742310081294235732264427325050643130360786279198193730581772852488824253181724081363093043821509348205400817896473899302333266398477652823784460771486400256782109792251192413658047635392814724677524526913513690803414544700221884679228108358092571814997726370688767547847041250316219981364757018678843569970087709660053204457078602728744124586539997241747131363740128333721082916309773234409150029123259631632491444723597106665767977064772341701531023397786808329744066680082690287933467408265754267426626780815117109065087605006934402177112473595004192981056620429707426891626689760704819004528420434844445179132824910937448592739139088348101117221622300992167695150872475975544717547615000424866469891244065384054858172891149662287808649104552409844377372330074036617374801969352437032469293761903880931549118623072107634346669940928071746265081183013806068603998726720908628187414506437165880235291469982621967046725886293844153828256662470674767458035983205051242059192320159153098427735611573294234228398813275221707509088524175039242584894658040781889673470793023557900680508021537791248594562180094590618805947202384521216810190447189613376099941622841342159285363225720180421883711060075124467220597018241682578542598651204983896679948254925124756778225343762431883779389881144664451813099929085929376805881861345688812400237069365637824138478449211879494093163979005491532358602221943038921177267436772093594452167963291987774168924246080228761949436293501098269621198466404781627212626637166128442678158348948167507765433279981115358665905867495977118190226260485626013670856006460434243787481746717598375435736707926711826617544139195166692141185747922362307506887627598890144171649736574177677069283822107657661519125190330604200395677182583164092161899462902812476388891184199605098996765094927379226371314312155141873826836204199229038357789946156161963867397033425346511304468553158966249865859876685179437340106251570389008020067181839757447009399031193869225389468750082487065057130978663743240539903588862621585898309037708110988555390084603355874772792994754181960263180336638150895914035895308182214449048898705344855582353299337040490266534965642521713196868880833336460428002030699251164293695974501229754822185618247333186293962329738507309110758553930568513595488867031111080026072066520697987675755714829862147170472503031156543377465445554799971366624502334671143294549454493707496550357255853009012570599845614627943705298059188960676763623048158929193590430412994614407038576262156848541215145841732770806155752435467578422880747623949860390907361386642569661532218877737148865442680004218061937385712071110564441940606261854845312289885768235606803533050826879451794663913694950578249758279995463932148257462170396777524671920739563872512376118224206649566789312279569641089520760048951132702509379566930434653418846001366625548388479557303517727691927586248358851572266009938299368319405191504166580068993521015862349004110309339774473659315197726733033723520086955751769901482689212320998950255056473719369376379178279732433517059234143493086561115479832520517005688047058416698538934365577842147839754327737763734171012355992817961100839427877888754343816238223364587879957113561043499634910819446182314722841669733878340967182322998083832112631035151052905426691792204743682100934153561067870387674719976359393537241104559065881823878225136222814218626736564706262678917155565713789792411522788723794675130375967547813741490167318609137966635238359174631896707429648925233901834620362305271172377756515260560858060464702892964431320580725372065061293570568622572193286310232289313623816763494597106923418858600716022527629671581688779620084201959398548993823318832737986143277915424755200377836215539861480267423090563828077337024168917678998425499343584664532019890642268623326184092544835274625010464438856653408708934013991961712274231441430343133267714745020729550587568440385267469426087816014065037797575977205265444259715223502482844702650115307971887194125121557771026167370652307649654084950713442124940264600060647833381225835932258596445437941919544721851491655714186702277818847782045039612849924944197679962740276748111018498044178904393765503337884322267345284480772089505102942671949480419434976656634591478765457067944073196904271889751458052055039394136291248804623428044914036476516927275018991774109012343598277382737398751449494081241484783571836957983956328636386024954395083280288201577317406655922879659409024990032601537448796623927012160578583753489978562888387588401821066118959025893475014942054476390208867851916256708512222305397386121036388919956593403166767359506639341803607558741060126044558411462359831297987530537253071346806728575610606144089054667005416130977280085726113208715267926560960669744093584575234907209824202520917451497796668993560215421438290848340694610623235228615983818319168352286509706580777112452770782451982561870445225659225028875462460919964211489864403129352365158741129668301297593046487771918010176098982826599592323437864940246847020332735033138861128342557835017456577696771347112558887642906073807123995601424998297657324072544358893893240412975057325943831492933884038362895850588134745147996490608660324298605207054108831795819525958711177992273081721225989984926638047562379470842657169466198923968943731945962182097458814948140809149607916551425829797963106165511072354430448757801005519311793659254503819684136781087922563702344446867836044730419024434013700839663225238780358840458389083219728957273139085871348133319920454124262759756613569205271818613142592963548342320637536137094909727496609714011612805796737072318036502841557354754618607606760457093266020897877993456459687305973698180270940388566017119158924019038462998349282416844475243870711489199860999425975366152820644508983107897090617341957497317442585568366347856902772342777582522047521322108552500140732849143525631007325174504255719125084153200394584478417631678391641131604347294266326907454166901480731625130641111345097256453273212157969304537435064532644128154798072837643066749015720269566316181246247130130203580841177876175831290280828795196211233210127777367890266687738321481730003649987464252460507902105418611512255638845137440038892938692024551256967327144603532131460223531971132289984254037225016669967561858013738500548241468405244289274880625823610475792643286823654191450921722272389022350759231472219255662424493891623891982928855021126581695698295285069905608715894403354626126834791886939714014303064635429895365457020435467100432433828676905650777496872657364068906244484761513343576847014558599588317951119308979149111618097195450315690974231284054912719445382763889973585906015136737132223591932758393615096352836580997523967322763160967701988194706770428731818188754291229689323311950130789922444104283500347551059165879448759393073650796281673251618508796726666983122094260861202344548492504933131009584571477253601576494721593603379110571131869473996037533065551879834527586775451892798742555840633942591282597686827695244216542594498638253585061809473369295445182805433265035232033309742945055244966329112848711313362722384544266842424414802409292895846206556573505955613085308435745158722236314867163812772766664828504271745040135850400134957209281067207434780997983028403660227876316174385885679201797307667080072288382371701893094699459038054642170781111858842162567569416573026778553454418256949097264771789000282155654546620261876947133747896688921774084215103358146333457339787072986325651344956076045178308155146255981255063875261876797223694174597985692729100617333832549532906871651344221237232351155288139471867133814175217598802273720087847224241092543068697243705591919957432696054383816900359227813204594058649622539575469574117723560205713644130774999224036597580926061041249638828121236229169170780905373490856638167433270622290093903684524007402689755953324278261477137793333772474231101304826575792809854667653976160965579728498758048230704757542097409333738499033843173558282144116199550352138968059451736599506395759581261413090050628110924928303263456187782025170404565113044555000157439666469332974285762188280560040240045371944054446215013826853360059632542566532993320830258863160655526771454521796167091033594794378732315907397231321885200702402109994822176798555698880242300434129303834870541031429340604703134514507097294052200130133022661636609087932456179515552725407959087668096240153709819917010986177687368495940374324680589647254187529620374602792167622769549752702811914099244280789041580440114378075540160372696572324588563505972440262031802783303291272003811728565001292144566295629742502957447172697536828050472573465339965762676682469422289403283211581207957302897200313933967151884592651918577708225038724865805438368604822978503191639393356717010169663537452736823463777471741428173758161652176749206007088297914431454992110005809482905688058196312157720943947643888208354339116709340316781465409466858511074277647425918733233670235112091624189958833420801159346340467185981409754628804560795447017211614918146092680226324037219594954896339845659271995970835553824235173742509370435743647925150904062302120894210796857250591463905006093143452621445508700500687245013739660084097315708307689571302768677068807879589902955849074740530814495418557573281674563550892128918995210938471680210852377825352763898817277022505662406806250888214960728482267119842715647187406032767316406407302383896618409901395970924656599236315111353587908817389012561056228039415401252559284005857891140440887890168769692439526934805680431773760884817889726603055786978637365834999828153784371181461342074124627079192286788412067391454154688253534534684767684089372258215853574676037644003464009296006908790960615403482927723721622244126980081810819552164145612698480001566844484318042055799319563643958702333412463234749407679761731661176941094850613430594883922819423805454791420095697900609775626191824748987040085453231506382254274822854442266348048203031167481040800414482474258356035984940900266331002348858713411459528936320814010366561593198629626934078052239483073402946036244070980649432454527919027050447327100612765696065472988757324624492053057195689443974678441590167586921698871834343375586450310705180824642584656679170499930334360326872605159222162935986156992659355425586459968219208515072943529869757631012914572804923757981148087648866533944331510562825634533144673662170976911547210059231200030141720272147571265333153600608180147337753150121604325877318673190352509297269186837487241552405731885407857717229545395818098078606026525594914449879123488660010682471582075521583784643656601501350637818886539141652370030842712080721337855060638141238589296618390308325958123139709059871099902176384968838854270254791621161609164123186239292686004714718565299472492824964575912175842813721321261340566656114969730419436228467485855662564162910633208386492428664617809010227591113711254155321201182582351116335076283553803054984369778335721505753233976195016978078343310826682690708128721617346119145795096133733390439463912335420590357550650111830607317734867275301282067068513728710358358927114124575396938557717362099761630072877097589887462884072482948411298269205653874326085196168194523115901793945872692891001259904337560242664203490912174180515130151779244079592174399937247530490215676191117714270870845269050296854975314203159738743970973805698370287754053751672368332313417212731445826978118535129495110834597452608745375616822489290847797753904365121128216365635837607008873003914389379035217791176280105009530538962767969907461163965647883938647947009225930022029292157139203444166640552946650036607537061038187695570352466693624933002004622475576987676940203823761556161930851696032442857989690894218253167950926288046866188532465163626032343724640308669682427962579201918782335260643372076027871186956339344087260261805083853350241959421345832082646130765602399778131992904806051285975199777393427288354245489825692410469224027592825615384684745562878771351213017006223678779610487528028764144201632721208042310300910640575131976037749093449563871159598974195084358929789836004909635024162170303905497401017424126731418583459916110248383752306836679291038105852176783083503387310794246167445933654653386684816759220964919484843350872319467733914412638995479307404050049397470043055148707786416213639982810750780747195545023433768654622195314672684198713968180376105235133487829426106233308571977057622890937621476891493066518619199402453588263595961149387667333510735539625550706637614635374893758187854137762136876525494526111421910833727149967639231407318546874719072420123885394831928279126813329007188787930535108477023675344091874767545535879339919161703128041859164432795830614967067492363177679493598465187070055517203669515682633752133972067755668598621732658850927989115204711083195867882170044450462194400346796367718355599740273351459812255827764772827979174262854925176382591642581128255388958412015777082900016393476328793982709202571652676159779786617688863093036295525861104835079563821304386552107991647744357545259447574971319660196937704221988425823473366688518575230722525839034023788978201080406690004802309052216106388367932938959150471819428401973874393421227506644595062360386152740346306305454782080638310169308456302910495465296807204126874409130549650643316282769493747065878488095408957145480189718303512328029029518989905511403092066591476178870360531907375129444137188064199087493574807234806019520638482111817438054758894220165439042907973860802743416344023254353903665994752311053922982379039050847651507214753417273461167539762111781069898129551263746286400428347048823674699742113061850094404253203027006753694831729746083725257402882003405077259425821064932673180769771667793179422651815008829866405716111381038034700969869625543877023262893060325323072964518816758899293962287822683649160262438967467423991852062465749348199801899278343153297596057188267977817577726668651828266089748444667953435001168648991078475250627188174660389160618889325666170970882547667879762406999487784882302474045221711728237586523100671635926007395632264100276694354248071249222045603658709222041110631013642957563228671175049263734448986604154338824612799566154229758384766657604887141386269148758012241902577647094529352735571687336735903720874492593947250344062001543452674515920380251906697295953648997618619657148277244678049355925286861924484869565283013086092778404259260620533329649001128337455872349095153218241674073737359749435229385110511670266325984844972022908920321695030220170861979048315158038829554937794517979641551176320623554631982537263432052743479833723048672981890078730464827119032541384962078949708617152149131457059972588103866350251016773228427667941675473439986295761125553654456956553960335448346372258643616136286801461709751050794370280505378239569515707252563267224587233419180373179402018738645727175656004368858061661124703343726509298421896311919467132793825963084776705465331955877186729359788940137461336865779235012949337379649640597682049795896577776291032662879633630205787783483188725668290691880123296898382582243333544403441489483139126859880479574221848462699832880820869457444310525032909829730914011448071309105089457799556434614818055832741184551551397570897491580086438379834377335370309243880436814942537534856763971832952800654351930696094211975035092523269096097351599668102705115837117157670621228743356042065781732343853696402026271668017293856032967127313395569294348369181707474272110073344883322305647343238345473473037541604664187736689697974334173866737297892646274080784645506882377125080792169652481153067379986036321941335143785475284939019792705313926448490059686948452033193237726274728124044532801690192977210212263911735485659796937613713545805843941175957953170096491825343355617657239278300331651788661890657970783140512458659225603179301684733098012144719346184315147367110838590395351415507144661818766055697402770837832072409390916943709163791438430597268777084240580295231143509526133116912952670707535393746389987978217587099960654905111783113937165563211192145739450552138857884838668490381187490486355506264703695343382004725797797519530084745903898763381709766022894165100209064465201689046866731531590025515107255991069850156963829364928882168457698778127054088919821316185805095321404067978834812227011700922520044254096774482820870181423073376768327977959486717945145671249475585157685413302772812690690993473630991862213549296227552136526313852294829919378768361607467509232727226037898282037923936981213185244571788091822303542132082037763127164155052827855994701985232069046067498029673921653572955867148920158360622446096100731324217827633642606469333138468318077518146311852589144994295877936838791952805941984303781521406148768940677958348717931515806838509888378457722191094461837311147459847723624034883337309623693573311988177698908025665461621676531454118483146912600147740000979412033556652726171227775522751529362599472756017599493686138463681638337565309126857757177018218044294733556126670753075605109847896636474036770723831880221768488433595162307323951580339828721137450307023973267946405745823176723639692141542390955645095416192803971524029592230375808706671869856387267925811932819124813837342774019030869309547161821008798192586744212328815597744320284817229699762174396486500243140105527677012271001595388923440370642179558555074571224292092213931808911901883390887540768739199235009013144805620668983889688932194280848054755296620868357659414030894419504099251768751679909117356887347878719389557062198610015711836366612232282802527794257420357827040915365413249674930035938086162685724283827430886528824473432647900775833719892704443274484833681468499354913151134447682094760904785542723820882416609100969337573585649696828282129486729692646181574250451642605449575859858639634050095399274259724740761187336632255632465641310832674291139603720104042409003951711425012794996411025912689388916552798796558302770072785775811460495559271499335470427595903839354245024331468020779636972672673956017802974480259962842046844782959618557864132518927371068596354614864232280267737774817123982348638407448886263048676888490993011128456424323175479741572895544024348225756638892315712543597769190978100093272037667962014156642824394910870275093862957866132962399386427508174742253430876637184312516890892070874201502537984303359355469690653071357987576863937320556562594066670753681322646768971710459467955959625774544288890615519684243645558343605578045302228975756751201798651129823750138479164609587351471113686252005097393634862147061891660036921061485511317551269612495427861821964982825736019525994675986445618800286264303363236188742720672070512716296427867143948450664223479855400645947189134866081955479912289879131327899969338683406127430473073251323817720952119786208421513996018319435530681403918795444869984805162408201400690280420999444155852360440124560658852742366524773942904224266561038631252770561511038900446261056807303784705153436995112321084106188974753333387577254985896605384093507648808577177735096662823147479800469272408235784743110122825235810472473872929296978708930628250365868399907088208577766495122810788617077015762446632678114358797262665103580938503408218468348418153579419094381934694708365292148801237685993515769883227481092979182485880854044154931647474087634192973156507506723960200313442064171415779922913413385605872513190919645177741438484848822561319343109210575581328470660339890092672880060287623211170526248635935921428945834921922015519332412145471058806343969280259376547803301960794669596621509958846190108643365479249311208407414694071154178336881583151772895794349767135987231180190456256327422982082842336338574318064220206430998220651919999722274101308971152422907142808930390267764558546001570631467772006203144939278134155600989463090311706940298960140629732803308151160393525494976676957536826448824376028960922865214502735504699087351818108750706075849603855075575906284686503827745835680324383271372627720909108343390005644092540257423648801499183872439681842578841522897589231105922039503199054222562578495083326794006341476812061249476156497178876089672370947655429574308617117962279230387923713204463235009015259873362628062112056147017638182102957304173995515679265636891887681909544579451698604358009938344074417378457774177032743672805683135207662893072438903759316985551799358585159725218308741188648417493057721494403422864385213696579879027787277490063098436650435583801836657426070068625935946620045103574073650816332162944915647147129549839648352928347875987816860809586981459695094914316457157258339207526929891454740660297630929890901286125420765986055323649347096573783600473606098764513854176677365365326331784768570784125528245422612780961377205137511043367203155457749594700555292406138541062951385593668755312225898251423186336350638263649917258272812512053084176745402729430087727032035142337063095255899352639458922217965226063288450212527344821179805223751937496685102266554514803152594574495330479436672537464516739038612907640042947797724814519434191435448016631351724203573174151807616897008985984575981763072984738419222672920455264051356570557321448762162244178070885445722998619238287767004570004641778537228373535201685859834068540062332276448349559947206945056917915251883683998050319974369592515045364432894125725876036996836688733262148873051027691592731442988444115904308087447509588831534091329175823792631409344942651832215188203750519738977796019557673040353323561203374969412574517205359440600393209400650546379664132677051866312877818807044634538406047447558091512980183609984952165638779090010627312996036725988083464349427701602227594591121109427215125598466351317125443615328930122060586471545673180961484357573730001188915582598489093017611200259896866879294657655957398727927553138065183727755839573802343043062589702049087941842308028337888601164118000169925597080484380786339252196559182163289104931088575502218236380107483244868939246095085246850875612603173100200575802365652569202082547626416111099906385712373091175452526793055011328832234680887686382366437337857452694276774662046843861425820458153893143157673003392059384326485512508825292891222193306679910648750709891524638306857352192362096927975012809206133411483885684740563531809971974714285277187424392949147765196268511085410480056330612463264651451299308232779813038168571199962452021562343584722170275726984034709462847525721175260872495346059952512369162813022021911258499866719575338788779370421445154589735122099376398038492414907099803397669632043534731714519037035818916588629596254514459009609532301854739420280001083878852862843529362071130596199851309613344622893010917947322705260941782166496173027589817362537719700777698080038716063681192104994898404058390077747292330280729482702846333095624821307449067938507694267881500686021807203302603769169822130022253691897226196195949091038261692022106782748545073546214303065548865923817903263670513818506880589717442653000276010594203638426195643304888645480032016961820978785184575925042706110993038069344489142838290116779402528090208849004300570607980303741430112106001377777682335641604185124968023618090851388258887720164338298147813502281486845593077149540959911332865643743703228120326735907467959355835350458246021404010237763246937442915473828369343947918477603187249840256452637590669160899260111115153133847946305299530793795839164699784791118719530121040736576862083451326584838408636334538476920305348911004056443317639034987388073034701275151037542384235806364906390856028356539006217130529885279020912050453135249420901997298630640248408078824608419442791029092786066708326895536479802366737811053647785498343973068762808709803362726039743901667527367186075316548440710838259812017076527732084256774926700491431186674919089017765826603062165786792168629996347126479927526137956256644723544513289761874861703361511514064956102817798268663804026496264869746107745254564317572640839815265701915591130107159156031144994502906605947426348244405905725256655081096843259472704487238735418350525725119117907438118171469207279525577910552322376726736635912272475569302731346905001217215871391821107223018927876357928634506265733807498362325518748547043112497081392306206831053817293772023903645927909189163585562088042363559361408499595487169542489812463810619319041656245202846050948998340123270924894531911411015457932229056330692975619640706277341570591069865968831436932270158187903508285077661305830327419259873909730359219415723185130318286243700638697773711946125016901307715708475989762930940431824708139753332194568326054143645664177843858872475345319174120086781039056314058091150190778932056673701020472543565913117119307114888813389020388684628058686129440572246488002314676622345171807021993495299118096276090251692963537421534496138287281443674732832206020483537484963372159642805407045176478546302868327613123324464657138356577508864021497288158285907052923025172965016142288584626862571984393856435572886652065550109823790109743832704584050633962516591879017056044966026710194574972738753330970646656643206094902638190732361718982047511982393184739677539913141117588358000342627902192496469363844759016870831776696779775520660899824796005997420173179264157461079431006431528935153431328336084200515038510523264119707479598089315101870770504000969738666058955059373087927694123788433649266561109201372685921487950734015330632141682031420100044235107203488289643655955751761866956499747873945330282423982189759688967399864659794476963558844213182466507127399304601948607026334977964706031601375596190640792105103944006920582194779049969291778881252833511614089839664240606877731928431629098825234111145099328679694691803790644238257958612922868631015816054451418907396745365134398839966372011438916708343104071819849083018732825295242111330172784741756223066405800384088551752890708370389226147778156982744006010509640053537795389276288190101674969283965468711807174336662874145557188029127199321315793817634145130982843319722456399230415998971165916636785806775794721739556857461961469554311270184692512138100774980623857380557310510666544832812755488182590822335586077265349513405367457472770670974424174943345350530622173092430998504352231824560834325833771909119026032456514574189615105615843570491899359230624568212788472135565059475872407247454194467279615028156951854166497383466437412090782432388554728906177593139388368993833191815850792324056739576425639271710417375977471490451113071605318823487431405448862718511924603558019849199496767836715447145527677526350051788400230639627700310850253097674523910626258935354822287110487646548915014440109863235480751875871021137057210191567266745406245377795237863086446362313306687313403104048053183872825220500840372996535029405914993786572121014369106160293252908653128244555639005873228171634508855827307884802011038579443072337564580047363287009843629859217255912557545827894984686233839171242010351967526751523283135647991188532161535194112127105040437114977809507519375433969533192091511056999813374973837943746929174001034816400202032453635155134842351167395891548327845985446960023028483478637172834572668051631482285550916513664819468190409043024298629180565483312851048313561771847720477127564233764603980377285727564761368410296668512654992546844815763913298000709434394958564124911109525442177191827240615728724851540985534349303071062483895574375630371576094893555626798726489346747069744796268145268552794067928392907667398085302220949280995128042449855490894155538693933765104777171024585369956646560931919391827423943929071857781170127384143396959878148799365383680912262862545864367473986168103749345023649905856988014718801236249163073550994756819103353432453851638444208662077348407405309018877554756197999898593215943192881759059502184848262592811523859670963948139225028218777119151110661400887564678346331148788406716912552519089016098885327143866275511496558162217363170423994948674493668192236233520628247849220523743409733193808135889905465796640230146830482890917440714355326134368163949819007951675368195908884886200304843477190355764477739102143632849214980870103818069604037436223402943336119863347658198510258704602083193072948672375514721825198958380560366824163091192681282686675911062215821086043745617568037204241256104442439138552080328244948404242484805018856003119199009159540941896326429585154989251549883839568265255020128789751351891310079543016490029866253679900212171091727785070755349294311080234003924082363114224750180467085303129933983116880760137831235402343142933449881599470985302913514934861048372300307002875908598594511821685856297012305890230238190657905747951976191335196600539158038113802285282052889862538685963327523883461443652388807919876191833567065197324551573467466022094886876276355247696792734157251418003507534776395120511320499692098895018304923437285659282400207705539816651512502196956244057847571483285938959803674714276101874216065100339234280608866668735529857885566338100038458291357513473504327250396189053951232048273434626726318626690747471886792186819992762412354882773024998305058771435036497430485259895466475127716295195734630822612567828756622863184794975027567018667838248004708968476449587024254408982512948047343664967221267787905591777041566043810966674609157328189328287398081893576494022761416007518092051067097246156664309700920133451656450892387661983432130985555667399664239717064691301036190653068484576930822260685453550467403437375372447007307773051947600570238630037810298338859580648075480800005154356784897170031475909612841807847162574533963223799456707814095362784000587111247083476795913762632239821449443270996635585528882490843522826620725509255447888734625419524235696457288509188631894373033203647561381756179140235716832270679033016127984981367952915268437360410525093275388844947472255142530357969406736305394514268139623424765241890784309221713932115226309357279485033349386539582032622561255034639206813158692010851278569977836399455920547885437153653440888454958857563160937875056503389311151322197054496136572369989006249420517404265330768610846589157076841628076068905865147736715714539435995377921290224014941693367272896397007943535257013466518492768699299188237461679458189714587460815051937679638421414870329711980293202372588286002770180737797472131027352828191413103032881481015392020661093071342448285016818350560553404232688768370049432264482334366430152218889272298337946407703071044470230668960680840635983195367639087875343290911573686079622812786832998201204212578529202529404641143240027168512971585511078634433918028109475696091073361977867670603842105774147647567543852970322170930809046502642539756674728748659229136565009175037534412088391544692771622747993921466001175786889964334581021285188756279272308538341633601376545013439512946698787236156452587158066599858533726719241992319983848217358427582677890321879867371944582525280965311419218363517968240943031464199450724009151628730453887286510695669142180180374232732565085507802754796081983850567827158564642964355621113911776054461109683892303244900885389185035038681095703449545087333641872815736122930213099028429943336109050222908983745092935499865202674505466374854186338332382576671744191897795272228254480896002622816253479743531799395966058440202240312941102812559430941661353910636296202898418545284802814449479965533279324297571060925637090722113410863474198191689987768282818236879617297030541827393582698910554587333394894007385243628553199252881334442554207052756227581034625104802836050450108504953951684153430931777473664671167285511726621588266915729340582485493385242730994280838903596165421449021824018397875955868006550288708343521581524707191798210272187344785632619134843154716587963211559432835037508830885245588698157329743678079330392083982133672036123477199471535697352107871249177231840262291407870390902965193823178315837548690971268343313294413920898239631881177937498189147366539366311402221029375432114678586479846732156102474407669442302639286587099127149731257100270355747692571057012511423692773308203276494756954931633369271023246373714518514951183475154480193633747381513212698103591504489234189535318856162384626946186335037899638765204755027599383329270295476227257585469861000321038683215440162048671755155813352778929961546555922033476234594317949129329746185555853569991446520940719881207842288645709874592893821629893267245197797954070960412795233272386192177384119140381125223385975371198958542538160151800283229726781029589973267150273834970206457723723455846749594702615416101113045379794807991833879930511606608076902634541952207741786954347083863247003116598757907473199407897523551077103009459236223407510381084228847718714136484766192020099877621003391711940989069221755982444003676810736024232808929445913184721958554024624114707300937695577968707963298887545253685090853504004258572084538040378359886812203866297484495875094652371823593627956959023919067281012341827589772711785594462273339208196770657619819393800332812213386607148022192528690045177291450297017233925991353320575382378862863920464283336192053202743971411334441729410080082739399735880822043790396232582110249828825023141125574383991563383324364536126811189365589971979425121788560890830373123545889134982683193674564297044745419344630105440684593736238745802856513952902399137438037100753459443855810579419952839253410681075929215540602986819274668616272021923162306061820160490536101772598010067405358334248297733296990192209016399477476228380386818897626895142980238301691838892957251841514766767237903958813849718216236056541775623426853492655619368437410673052325300674559397970403449913424193957738535146152657931002402204281126994455237098590395534855483696322730068192861883451782901584054156214326669703144733986151402792224346060781645847511658475666667155973833155738514014351126946225637609542019711736086309698622945385651258180554058712409249228271110242195852970489653997545422650295098270767543127664370079786078456223272276169482641205836339574013452953881091184760414664112401227184082230510165986800412270372105414278643302443980030054251102940830292032442023748326842353311819623764550885729758193467009328527524186446289983781278183636201294507549871028781181672713997322609713921129877694755090391448100461885367170459220287987304747111975328748493868573487119864282247068013495554815839004753205670761003223857602367633200299278272956018259923197865833766123493666083502283988973811525508702573216990024680676059271790389048034847483913190745848835940402772520449437820890619255519550711273469103749353655515992961935746646714570089848000188908041376063933226132301386286033509654367204498624573410112565697017839132462831073133272778247156980823471929622870311038604966508705801645881909406084694909366689463581455541450688273125714771403304924831268193741403785413387371514343367995160151307827017046712471262105979433112500147959604958707124290392550865226257621058733876326762841485273542161148244042671062650119305761670021712548212150952424914639669051102114879713559143345942696357341316822546837621461705740317926808752660672474700646123963267422749025060336413042365848376404673008696809142118019402342120962580426067901392090116270963431832212312827282356544700835432090688280559903074872691493273959442785625313402880351641212775471543403872479263586998947829684598201404708494741317243578188644943621894598609381127834564208192623228658168233571585260014787327515449569828621154948344110010842477637729140747078918291635795788667706914250830750212051694965303375198617963018386982491697230183451848422954340424483437485047143920597697794779848587456882078960289492987127677417342209420859715744690166595549035102522789736565424360045434127412770308937955573929918447792147721047724570919041964758171197877161297891818191009586779518085158184087495201611908438717594357347180819396272666943319510374938723434198135321102885316352051518552148018446086649102306265369548255454035651267028985629192209444539717380204481024353552779564209685725721876491293506558488859798099952076721570958288032130516238577640219030294890476855718775903126936829061445214491659612827777378370081004347021713136273742198553181653496179065418152030597882436772477248393768344460782941076069785836534795665599528626562227076156110948911608058056381197014593957979560241001506230447517911008769705907701289791557388351411879711663785940095811440961486354219958241698844185908187253778306712935249571969479059605338669177557809429400448873242459567229053060178621298919335513334087873345959572378426020514552162393302661164706385007721686541612369657084466395874898385005930799331806931484848004306415729214436348386576867595522540935250125862931351060572423284420414032293691862240654216813255142385924199658513396983526551413914158168227791960900443583213434046229582358866138173857599080163723747776676774345531605511562070613888501242320021529229230664586429736364599716546420165164245524717980917501962822980576809741776005962349273636326403601888247388279438154635850404730579300958153603510008864271444027831897334779481057822269856253187181264345664880831117507041822716727979312633006283069226710150141846083122947389017558792215779016091483321351606415834750266385130962903265057275325909595227372403612624980342892800374186207910130558883455981390181625473543115479700855624767679910069458326604043231848266126357309933166988150400710653956603892990025853878253972236140237929957959956521231137375790895661895200094593635985574188154475868738833562369413632654976441106628795970789070821240580464852357200983711856424677130576643207129068898595374267800840022167956621499918078756412039540210658418676683014443241660994272320022340099137635792367770664476011601083537741431687295536966902444097038913791230603516485101509774413842071635322653970777525682934282723229734120892965670000173040929860668019153670116020865662043816420810524047232836141006453010553145670513647245723431014321879802288118117083730826507346771535932291623014601102079310980375278913111281187471978243140429842289483192880199076398389188466142377108704655235097966999117090518102170089605930616492054957191178218539225140035598684700024380814367162992973477793483300915910868669823523989521184683973018112688441030417552362248947889103118639290741059857967751076289070947707175690461509843754538540253955834424888438935584354870536093188049588324276934935302942910566388908775012167838613138268121793776583368196104464109858311433668543369651077335725391802108638418677988147814199526434639734308803876384636115566341460494860521285196438842424393247151432920921323699987480006612221751945155548862600883874891054299963823207748856435601161938110948523770673172566906610853170898882376317934374206041518969288498658312992228899059059746308361788775432943864141051855826691994636055162438002281037006120071209156863047567772393497294634768961129313006654441082629808510105446261215498250378521101283923530979852147641763530752550294508292322208952469500729958142209126233074542944939942465066913401597310057353076801385996986214131111756132730424796399056885359252442489564342270494904810018907563442134331473509346180900852982081300610531211169670098822822399493436356366117633944843171951144634938453477659998649106014669613645330599399497991062796155789556544563250815468648804131449740518253338110345639211144617753292563537185025849020410369557081565348515446119832316384566488366436216067778110658717611142259247296101663746216335998279855359255879215832066269280754674984466867295650245837760319138370382116680162043903834656872689918214011845001975722215413528089398222024775915052002312943262915544574204648872909620269150651199173933670458661697601238595698070646850376875861834830552003949784019067918408179924435658202102007292295721680287621369588929103241462122171719608207196498194805389228166400687612384924442986530245568159724657535868931356252863676255321693364088300623035280826542677747721702741929774520903089122244194161859493889556938822628982652430223111974422624184705942734365333339798293225078782806917422189734817738117318889447020680269418495614525474278032102824640305044451657113274009806330536968745925159896671237821173645807396754561785838759771966420185069671273069820985915155700803741613913814684881926242613722757027004216161360699517479220206859332326053042542808426135204056912217884870118761075186838559767547915186679488136893434317259218730982766358833485344389347805382418080163297505687493839553684062074415161415253562484621830513343684714221238052110143690393805809026705350600204331688130756945528853980270128376046617242430424910503139523979439467711713798689806584910661221603325687083854668697456892961436530863482243183250912632675439607394517713872310696624947523242892057355564472223888098024082571150383507319259685763026392579961013949170914901868696481263571149049057065608251528842170207769634766350744907968044273912876286998787972648696848973833509481548676053527414949463453355694582730610848592228662853782942414840532351652797516952881569421147382702276429490609164848019563975897402759787924862426637887493979564666698456688615346542176700293631699585454710706417369625846076123007045927614425498573522709253440816172363167713754615423208402467096690459777559396567660818021324086924986252641044713654771756750212613896028489706482928781472224149733455259315908915503890981526347572601162590072620612013567541110171583891583931727270391415667635637064094814666752157526553327321260469377980090968102466046598359989154420371479371454782582396026430162649091799728096803155287041815519959471210897497755150735549015617524846735436755213014849155127831861470272109518215950012440382531460678475061014645381971308875573146235222293674816079461192803291636866982061688567076425603800068818613251044606604103517366896113581779218239564191857760649438854982491279514677458050172577793153308261886108428952073148782014848690625935848060090834145502718562375485866929051981005388949239978075426863691161853952555829871254490735871088291931777942254699502149374610289074075389137030479060658097821269047501972952886691783106625208968569949599265406716404136459755165593430636257976533466628807118661551237036809261321805381599800442691717910769732228512628712429707452229416246581267561428543363341293345773211197878285256505167691007199085532915032815099967975044076861092395840925794115288544640084123108432174181892026791992451096257883879065235149374518669613604149129670716221216498725068002969628446683784091820943686787123791241899933647132639314696544445828135876520469714989721949252283561522346397124265578503189783876107431173896281024296735688814537821083486841968213477898355936695410884726923274100642029370054345881674957305051625954105334225554234945149366253044589896452393690450309039703336383197539040342597062066223163491218044022024708434470507616517664719707835346335359814451110964428144067493223439863975278353567524995723131787961680156186242341763161008552785331616208423922277002900670258499661706636234266052395863489401296619303457396585036070044151517546127984030258596935311279342802585645610323250647591133494094378380355305606127664933753785292331165683767688053695009103556760776073482885340510334092713291182244980993115377342506150935364650809918577701657151436970849992210372541033339673184910064862743608206607320939979546247138380652072774544826314974585656228745728898103071400699899602622719432700083585640969794561249758424771667321894359357718912359940769612606631618364601897830346338853286942391937243827149737596338477265273366232356529587469278633022232864354799445214073877831135567097439680480092314227033227578716155639889944712219879895869490025584650731154944995735993352803167779934100076715033265531076207231815364741675112496390600632208859311607975549174214493597143487254061126848446969667978226256156699668896864374037699844516379747302528413291345876491514744253313703478556266160848392718381916280966601775706170016492088170020998732930356925876175772605437335056925698612272023044995925780157442362531650042820070518269848435011172877245644443471822378257237410218595748789641565414069214532041670126303796418142780619655163113226974292124909652820303527048187008931376955354201199641068142485418170060335063954249415853277322871161479764299669925875629809592281726161299787220721517543119131942278939426899560407624818956221680620052823049298954186045254639619790970948771850097861026487036547556419876512614580147224832880376774813646597015375320863797471325238515478388804614305981591993161348009224569570550850817471628100215620720510109368323294868796729854378242707892785766997885679116407123525179380465030090516237079492019917821263275301730723073472704780189803778809943577791858090045794847960501099774263541317645029454024290273140257249613116575474743522070565746427509702958036239902835975416848373027208834129209556519189561615800367845148563997584173153656953741820773878458785189565988424266756767942379318435973502402121212788495394022972415621134855611192006837327160926861073736251366406324252235942064183721641054962943322491709059500696150961317039781639944403790857357837556519140190164792006317672556633651993427793819551595108448592544855924774525522643708795172048333939877745841275212871292424196575511315785821770566679809611530613421839342632631460234003274410517340133148603998267024521026358054669174107232555352131358460397270183204557316457813200371760323945374392089405228924308472755944538134968058589116322288707457558207464480577109805227601486796452087702570953447863369068670946031293308297737642975525458605038469055145412270295662878148178208490420628520129692934904357166108764138756469430882226761987457655132943099836468197471378402258702885686419175025287780118525551843455383278955836494032290846564602187226582575221714169188341155966052110343258388835771913670571351367372506505759658342339393130400770080505096178578270099848220046081110771372026123299104298371055838049953449346042751355391915854345825332712523934954953702164665008624733911631812317990369940085501711647301536881679837357190982375277153382445351790723784445534218561409314460019826589041929259737913235400237738373181826468202610922687456873817023410740845519657688578076437351892275613085544131717050275360157214190383381768242120653343353479152959235896983253933993317007345024375495224682915254766045558762690668613885025791478995876757659317297483783414812605465683711879016532053722395332920381838337452283469350417381688732933648030577844273257868677792040221954884228651786325606136798551789024084781709943410355472538667597401444177247134222497662754881351641925035112458532883390990308172450815120067049539534743459569050610387841107886125701014779053280693419296751033498541535601786045845559108071206815275785774268636207470194517875591540613807646429425457384181681916420122205183180379647540212320212228233266629655867856189324866384171541393481479500616465749226533391233518016063512853946243142182342021805987387773056849384076441932891261356260083457417520782986439602448750812289080796297488039257881235663656802015709616095192293885619482169955409280147604594813562633154030921432284530958505749882001784933231333326914408405083600437900989109652945933355341643290602745844243573549301117836380530910943112230332538918677099347678137068625180358005901833343171668929445977239491930380970791260847505795993011690028207251443501917886735456791779905084003906285989075344605779410603598154582386241645216250574242617334352282242045621819548838293941988081638850562387050162568554403480588262911721018486133893772049988692567238774963871494970187327133423663605978657549579141291458756058820089052153133329024398990579508609946089753707249222717219805839793980926679590607412890669364812023159056348441375617978062463747587190729663260347864070120824645109245312015765460646617622001285343829737449657949833853248547568522151036512095237679842606065996836466142560192653688723065779742304468728740739397843251789278901714237657693203316310622144119075378419147099527850016429757635879214880842319129615088050557530213776557578727678945018372551632957177809420011376994912213939389672301211590194239000381729040695166964328295227696873242203824004495745752213674840727176747482024825907297898116252045875240423009941993173546154297390626377995467423438755339178107658795063157561327593688649153227083947094278063291566140319371848550089957417674868114264989336634585934196256886227187829536860152312256227632089735220571997871321550276800325966245229909659496118727427811362655507850658836757088622580401246176363109604914194258147346478454181386501679434215637707245021117820933744711087184512211649144337891885415330060339231412417862809133157359762670726314248171885910828448688347635130170330864352520730582004603332694699757266770475680890246891383580068343526174960070259217942528582467423234904712187050150813752291711124927986366462506746371309492103357577728758617378991888157288590953218391714291951709681393958530247256167288013225951770046422622835483173331337180116914617991374083700524588544490942279619804223140179891361273456012810169159039865390956934824635738896841233363690692023810706823072149388557758729140707709742324239420867105908774230328605831045364242172619709513331438593331253968255454374546447448965591882097376482084096973977958934395959048245903708196672730810085682475398777016789672426752022661244155679299647570230940422697035899042309551318089089151320639251267461658700128133026131990191008142656176993006898705623557683136324181988541058256665202035010164117454844010916364059246027790719145258557736986907241358142120081123100590426189094383374999801379036694441930540155528854945270474522770466473811058538835826611284798807639826021900968109553136873801212535785006241131254322812002617638561279565521511557627562285824255403532335209529434270725748889587522620091280324634693646294805406508174599038207927775933505075332470217546754450249853215493627690267293911285055480766026764574791937634681555647068310609041014805344604080434619485418088940335770124795882406410999929335562381722540074969484621432631610637449677239897956338833733615578521364732023559889019895157261143035069154360551482514691052196994968102104128722590972903693736431555445187533988717331510420925037914932089507836206649527947015181780672552415420550850552124655656872758765874658006163738652320885007710967443763131162173504311738445108879243763122276231742955243675487631202219955714313301107522299443324727949763222489823523424875824000458554314064991641980088503640666123110218130158633953154109744193404409704961465697579348428643510826392073494443627547627891029883849180539608866920716672706263689157819452991568364408041254281951054658545663841670549208450907552662206890004371794955585843461496019941899758176423582225560729696189309354329662886095109971641552743278890260208210119190289760386255574406312246676188180922139703959749939873634014030095384772873669297438526339981686584378390565384414304490830476569563405538322257411286067635520274450427766577242894430261182151030107954757062027377848815523283137203973960062738394348212684375548434335058776626692590357905224133712703602686095607183991814813286029045774577099558388503799277655693186224537548805689982074425092938456905865564165935728536022338016009849117848272775395402704591000983407152931858426602544586505615008461420772813895955279611592777197303834809728187324985382776769554588611049001745457003084798300112093985762416504825561822902000004819503954227598555263603192010695194048471826706450676764948225446670452466404961737864099313854418663259390608333065009329063977325655335117900582722230049590877768568281672850493033905315635439883880861447987813543896153683231569488877027785267408775916779037907278391088111640268967133468168639169610821985681128625028068500532303725745681490281637749788719904652681229057324855562477819005734700192046814415927780158140720637311308936276376197458790868450901693133908236841359356358233075855063517035758768080783772297948368154918345800418659735890904990445085631127182745758116165550842816743027671889828211500873490515966649693575867115284330743562920560378022691162206910785173690480355647529146239974486192527193553771981416806226008917613743695838381217004728265343791031048450341438710630141804679129523131643394528123457627656652335009616041718216942523274953597309294282327109814158325798217426661232407671441388876551074956067704177907764440540170013267646094818354056361021962044567411347512020160168182525592844161098177785734460231145833753962483665410307244060356298769066410564575445631001072012477410214250753803892127323925934001451390347266330164631749294108312245609463632874411225071499082366242410462489921727769421652879877707817581365525672043834735234812009832369194084936354887700208745323793016124022180028394019642238961569691434789010740910901469366099388409959309141734187434627027249604252101977518279212254685745532223659452430342072802679557063906729592298627467688842599207483436609793359816399529946016646350068278075085567577421439248437175026908822683470894205368656302571291630737387257101938042769581705627736243351132168547827536032260757776064538348462690215120667566341225554369728767114585262500996996536830807111055500544716754342745633307819434519938743646678765066901578320067264761888244196056186217593168512214033692727470442372001842887001761552492326288019719345292350011289233276894359422531215775456427404089188033344797206228492239679602979938749752878815129990423186744662244676333857612888425166217692816926751290075947811662230723580149135917569466779361311452508642024725467156497695012047302996457143567321192534917272299438458751517167296440986340059257018672120875758401847743088489913903768412528775666241680056814889945824980751067358532386180339508612138794258714685696624734363281369328490235881227936602812797903446417252073783778743563824768102513290285839910849472647328790672387650765353983288955552160036983507241795925021104319736630977786621380260128588313778786799841577984792180453934472404400394145564433682083493573451959938237912486808006133906748930315352862808885066841694990032511756730289255911006024994814887647402891817127012171641960481127754732855678828781069753793479878439190620175850860635745347599820884349042704738682590493636919632659236557536176057553962241514574623019715108878686775959732837290218640604321511996463854378598161719100399331763556660343213929375795664793318180543343788095473803389986910674035373571072187258918504490891134012962754285181375683338952233264009206870922438077396364762489910575681021310743544735582089862530490846802204312590538389368534848036987866949913804155951829877799633867490995859023343248852575712365093274634876340855107243475225224854128545112317462932452136282936989382252495734377328820838526943459288070670238718820133846887281299412996927836354752865813942561344482426050461166509603701763894865099457137873587650638890208654742076374369373645715925815877687109855301887559166721613695851256143711895547674565865873875713740093690301933927428156356054983838893334835668499271925131717817524855692807617298392152141129572846107624111984203681150614027118820127033758767155504549059992048789093860087739791626276090768789219351432575559303207397468233705271705017580127633309840203670469824785860206427985983844713970372837074874301185442477057475146609947505417799093229280440775227905703684205551579927857916711111204683792016942262238244050677778628640733637818285263855702990490057816976772914936532222154001427645592243654387216873175166537936994408169355067196589618319804862949090894582374566296210265080930730276043667088286395419231346428574592870186578922947459431997126786615708225980287485120887255042663658239030853894430327701682516532420899013588330291017308200589092072629547975347315795584129801164562689113040572946186420945134519333533917809541925437033369561791439644349096881877257175260144895224129194174070674242508248990558157132712911233417865669374676970541340674619708491460993669550271565287765704419167786185440643346883124266127830226280616489618946777543345972959943998799082625288726377720513949696726203858212579704799528695270209541104799684268654121351598521830936290730674868459137475215546492795825721953897843387872135737930858481766464826308266205639360471066173134237404170645274573252453761405621886421962245560853079894859659028520027011151855713435171836757874884962323169721297403857086923654525191544383408429381758884214143626962280402214841899437496113208845891818138420230746555994283684853313186042872559117298201965408304687040347528771202067455518060174518635291936054468344988904469130044961234099509975119639066507280821583433216223495899264094801253130096599983198076589680909063821587653689823398709821457245240734006439274942463885193436671184726950682547521902063183149178329586359841402738585116664213705563319326720730690146236391296673722110539562980277846950231595467177308803733974887327794332460555793944078818994637590929277054957869610570785386610390017181853429856827530699932290502596144329367992532977767021469343810768801676003083762546340832684087544333596689985468701842429668128344539952763154423299683302631506214226607142085249755789126363500551101300473072750625953486822033345189941053450465312561838524080952579297374999687998063192169506497280316244147871004347227495373143370476248094789732890089809018391765549647080993636969609560682188250570191495594997328131177539673419989941805147069157258380634991924947450887629820074925876219090559048007769187224248255824825322570032043305873145166576942813671324517997291440153175226924038583035024224807788939088932002322706896623145365449863971440469925284674472168825178506343127440199166702642374860541277804176514141033807170434633636597728323241673123200873829575523540778785043109668163742216063406149764082276886611143387598356774509493930274104343438794811972772420826731345756047518454857609618311233934384365913843459360898034759834703875779458014316975567895913316506310650870352891715518454266204509453008453899087270038604983871578042343821897849628710190431400514718484987675740709328584097735853109754294320561875775351421556406550968426331642292402273178256244434933758481890140238309322133113429789553203648270969812149496055265327421142133447012358084154785354725897792008862274664317860972019481380257960191815755146451252232887794853074822867626264991139668669157846407180366764260272271766848672016058172273769101131313989667123057739741326742492596027159331819828829570142465656026654946510862417769983478743573001843955234689381532398852061521853994552891535449535013272960106156061182512901763757067735251623379705236856830019296585504667690324636790336689927311078381417101864341640526723583948942883846597843314327023844633947773104998261410119574014223013038749468290284445095300525854254117762833691432909239676947495043566879434445592161207616808487143712615445562873019797966883174674875082339616636043001445897155629710174460920981244223292815396292063491869940083459864760475499826687877064351870903393191115228411596231167603716047912293249720249011953823177663564893268429059600550334776084666318082926521080126709189835858374251993328756008783567690949124570500211225024288856177859527168385846727880756249038603046544239125097621436196086670157119765824566183674141605832698026307299764554702607065359734105619849543659842197331490576125330931027807175479542996364500353282084818341671453798079694909675184078018190879994427787547909579730702986573852659481797286817965269458402077210746638689107141405011736566640341676440263544454416373943937603140668418431391024704625120916809525278844568739307165061155915263148276732830583467856173828264495475379654510113289661216175530171315239312624787505378858977513197995783707502539398087579537690720535876016489955671734578521197575367251450725649202288782570048294532474108009684013786494978204571310551978156357044970743938795685297452626538060668833562840176330475953198196292291262258658872767159865165245588563119201684247124722887425345216896853416674860951249321685938449722928039384617170436712365722549863236652348593231667557659918752791210137035396651911431641605187758279930175991787278796517249019674689471630423333943840836377845859650624632911574534479477607522822173767291551256146899767948774809604306970453060662852134749267200941478140318416245421426624311990166784886623483851878761767797442289245939764919479103879525188177228409752201222244513453936935752607398204352746476872238106781863727995803594721140677747263406030246979928256332708187420338057140323153928043107410065101025580200780241055593580505460042421728412543253236547989061320449441716635040765718233573721562463312296589891966427497797020699772522177433110704458940570106865241898011312317847241245822019465597061448410724517042866088386423547694593889137201210521405939931085509893208551768438852615665273922680751826008251505220348512387602587787991849463455188914484594040321504954772553595477737645483206041055745928946466562878092317304497232139082715180360664865530782804640125978272006747693822264181419545697737719199565997224362527328455949029510786625210639755047186210800123452097198700748495520528997605387571849279904835568741548013167569746171789728063651644963454291589223012082672026967944791210683162476710465043328852986749703002074403419032190079986327700057029965459752362164551121442620613210147313715149578188052621513747114181198645234383011505832610451301429389993009443087441596796852445344787203683660993648642472687177514304973168864883785426292196214165405682922096280042439871919147212509991938281540503121701497761936925411718563025145949626159002449582382681058012307090796439644857846388296039471221522441799458180911985311094910164858809613812925213829629159073801302791977624838510536129853210433548478008087776759088565513338886849346058914545331837619145403037577469566639890834595764061488402564027424482751741495082249650985926361764170277665291558615957725936792276171267028304885053976879746098513580894738058631115539950995844605205165664210021449519326668209324121856481117747961848598250551478014201865285597480013711864790978300503587852241214390041584250804486629372764142046125627811263484420918267238069768297228233676314919065060887056101113097905568833393550722311047870955154097689149582190700343441878950856015164546029937979008020363317187686427778297076381210510862567490766093113008952928719448290956780026226099846556657537627557460296365033164696460253793477118963585261369185473779091767425247608910991189717890802614268576355086162601964094649888424547270652251597963291783179998697850853134511648513962399316803057681589276741259756502546881508438708925942896549148675776632361624266221550405691804271545085484762040114536751836238374260381927425977662722956717203288005842901259902717405673532832645120097896375204957865794401948955376383983253296326732148925575561239865973464394048422628286389244611002894163457571646069966302802352032251222809038057934498169507013450358797775863740544395687923463166115721313312404367669541905716676581116967173708256679437146021278019703423254125518651759845769390869450427583309915719632616959340143597970491592915748443694029102120684167710111825740362918271264989839969497582734346434978923109306157144552927610017523925113598197149888366375016463564557890734438076445258304081229596269856636884609782405710983000403827530195675086479254665148656944981676122796937266429504670585063389349196137917062007654674894488035549609734087452023096247029319040428236186885653060083072955585418627971297060839792107504781185319409519815617387471066720409607317807951565349717250394954116172746545694917035293058323070032032204700058948429222806349779132495073308489306152400642090727402269892263704554348553790021278036372867397328092128981328215220738878559104387171839070332256106219907729422653656907685284869409947027426355769650304489856342368935300687197644360484824994648123306937271226703091502001818001787821248731289277352861291498457085407092795073759659677236651411185359311002750523054495169731145088294903027865148395173989063755352160827690363083811942884125742922141350978050562248243764855982521640662136575774993041203573577931289948298146201010369081208526988703722537752513924944536340468804356518936114983671773008612491694145750132064628747022976607022424646885705663565104476428166540316525179061831046432497197500311803801892980310849819633752498242598951952176813231963026309397222676178456849338654313087034369676498298118128120110467295807332061674257142720434104700813292714921842424187006970807816198875863729944364201538439596768226759335963479523467464032506176872033319096599036863800263083045102833272297139281643132183047215597807028633165498486829900221899491656106493606884341906044056260792879337780994003470719684406786383443387875551518886168061070784949974280274756248429768687842068549343688669202563171318168075280929477489402158001703834730921815986205165391066920542651853423048597731155416980573548814454181900227163355820135182839589696600224215598735040938193691866415340612497738899269514002461531859201839667566326686934878404168445195456990935094228599278067304786080323350532590065006803813684501948003634283157898255254574927212590991251401178651961513986887628473841858567102270743842263498121531074987802091247218438151869250869957241675161676865819205847188404532161332450933116926352701268549680966330087824314084586694051914788355655316760654209822049541342765576509291057866815240235313128862506272650283920638512676656788139338792484905336449864589219037046233859637215418924427850252327342753195725060870898645364831910074040911345454751847019786495683593737603236678587108058449877700587612128482490473729370328561565454476567670823788313494749613687285027427479527056820622554686860803012053254648196190975869477079485456293141220972578605767866986348937860708054579790581177242831048438252017492042447237070970597601030344685678132468725085510059838088291934283741222335869454783256348818612239401776827795419226008905120777113803653095674646867144734227049760513450023656816460651090521474462410147950481811523877020096761645294923343178579573050507359453886847804873634882538712588641418969127846900478001110555978085923326725490865994942510995329846989113100362241252915171022590353766834662994927071809392432342203331878779881386618761487628840907665760504830088368360553667060470082159178411543037430847829647820254894016645266809276572805532495544770601187109991749444611537992600214885610933875026359515547088959540122222011444881082230211549922793588057421390885254523348758185254537002930373674781598692151164556353507438360794909614363398599273648719893678447826299811448324397708004212688325095032978233450056113793055979905121922214116354858508757802586547939699405441258445191889936410863739682824335605828925709663688258528420190725592859963208513309436641029128151052193122919985327303501383218054287509496594758467261807060875508772516610754830151866276278950213600757185078502017309343940737814321375969748246791789498417574577794481327942657292772504893463943223084730252534329530064154033568305257307480160213518280945562920357266840355887110195200441041971372165140813950210828569225534861477568916185365100554777701591843642518626192345354760914823660130240655368013982818400584931435726132065833058531311870395869861212068151303676612200113795612214646954156241080863630566937349164731914056963310318348312858030693747565024553482424920803847628598518445908983398075771339507437253706663367226345552932835235829821137298749250977229900990356883864687451733238590684495434734720133457438362194098700777215619563219753816333637755263977412645691811377869505489922064950856615418726183547032534019369606909120644318344332310601638656792161323843583553334079328162829981058333556084751144407197031553141166454015193768357470603156201401058042026873949247386809534702268909260565143314057247740483406513595980597672723834925341264459519646335913454101284333354446175062900619047321586754083758904568145622335041009572191121525179225747419134924378575895829714138838800847744031569314873826140455110193083049689622515247536240535706921448795314115876353823296616274153996774439392778826805965314361571212306519105462356033665915074783815190105742191518595586418443716600763987880127369173283655331836824407392183144905993798370191296668053748711578641813108102870515231665502563858688584170422474428599670777820689756061263439643479621082253610974559812157011412694256410677176335412993454608732157639979963610441581735606421337874287867050633671953582949637129218308535360170673024748966491900120962774945472064257528626035062006549173360119813564320586850577279164893094240258915519848984808954053496146732057994052851781587834545266125276768397730771066738144763736302353333910010864094953837133671172838671817423832180830920004738547758155298652050546432873144086558069014883825909520325180903596739152010807542186225631498252088788282960053462221830638090843745223672144878660347212719156666525764493739300847328374757967485474214230366043540588201929445531984766966485046447789957980030999270974059960375051026716307708658215933148866235500209922626355238006453825994893414012027906522675092525607347870867327566315781050196902052752378185973130373100005443981860038238776465220543854716843012664031353903616461147833198013590573723515995605452533850757210804752293095374091355541116797884073003944211013887514619958889955481668194443119095089689573609478056798487288694489441529781505613451526510700599082184516829367767561020280720541199397461507419942903637515848909687961916304489296878802392683549971252690444061982288264512356674882967763876386413989628125985306640009939791894325104193867118860026276957498323828734328283559811898435186591392275547032770522445554783965428393589450455339324641075271467323870609728787000582401855266209110859548436994958003248411878372121647099851600671978936697560888899414175568095122184017708459085829611274747478686242271531233928173206047575917378288872651650495475093966894102964346990843859551102386358884069399694439749849896079463232675823083470163111478169744907457188954944873531408430870910390795700985886296922055058868782222481873944224641027904538927518072045433860171436645922940704439696291268786035403445054697280972508560048989745731740083596766329267926363775539365052306707848096833729820364406807074273314222089266277945898224879283925517263818532016404323592497733817293592390068108544624416624163255431495296062673194299990469562701499259001951921319624834981552082370792009587072923048079278604374954777408236997227290056006475984601558690259561411801104346285027576398706333777067636194531282058700927587235745216521531632039149990181880834696344801454447802618538581402751055590898465910492779563591759825933723733627962443007839241486545476263586911850843418693568344394655215471049954506187485063729763342781151058938229962389580644318259922677844432722134630709076986170101739498135179292698034011579220468207929838858978212996300402143168261770287146766213037979177116515634874286188416779773303440365868560565340692529706309941433379668514982317688264975108563503958131987039912729350126681726310957605735870116896423825709482230181817520684509309635666563131593094360184501496965717942933823170016139705063239248763556511660111708086038611834333876983618287644792828063370268697347389072605738593095522436240975794749140807113456585439149866981430249386075028436295051773988013230755314407885447322103545209968194390865016411920684647475628282047259555548152160585131135835507025299612527653649526257839592858366340604229252177828971123783201865776333944506126312786095246550869371886581571902025337200671045592247103281234890532542114129354467585584063705532967919583658737172236371151031943205035454036156179580780672420001417099007690068627211552810924985389163067947549934590763283545976292839087770538832160667783951950912519397772134306753684185898002182844213400463294733002691470775038520148843068518462234908994449382751451557945602192798785712369883059527048679740175062349453459105119598148711520303599011289866166520271691254561089914145679708188065284659496977487438072153640196820840857900689035368820967573833132460539602356446815500076857370482045545405029631075841687124556210400733637979639532113383743179561189348083717087553807482816696173577792683949776935537811322234216472223645717797288908556505479353113624406272667183297109213779262765266217390370725758394806165899719894452809224209370888701407452264249631496367412658798643249467775842267348575908269621609436486803203641048532888502265136626686625237533679252887025451479040477154625808755590192994005396230457180822269311614263551540500691490947493147684708600818083992919798383262074178579106970247175382614187576950955289716276233284505615285303692873776132073752594639431485672541688704538306681349053625961419263201041953600430457973403790354144484103279131675044134061655594568727262856187208404139359964113099263566537129465750718551424947598955402993051444912595927638813834554371793484854261948409745934902608337488821655862942577006483242507350662065424529147841998736840460352656020670855086035002559531949919019509676525567338907928332932541745491949045351103164632012355720977726469830263571784378309964187728923257880591118733871317055635726078071191870993156982397566431496625181176460423826202627334909608922579293988853562286338184929538279495449569469474158718222928479848368077431515326259909774546675567681168652792545221306287631422196893269284041877794149288933604189103887090976573194007129861726800106528443774600739605147511421194002518567321854674909458661231561182988756193290346590820978263391697576110325019884906796735711479339246994826542537729547701659879240120296108594377899525328899934540850075452807019120197052929636576611682277799413133984342066566223075639763298328931147747424153833977677611907539874081666614404762857812417219773477041460887898018993298613755529656225099375604436133557980118341440261012121083584098415567138936795080665774565062107453565289496887609344730188525172756967289569029931069107247053414440496975406715727194405299719630874593418429965662246673775104520703313556880997361795339176361140688237808129807319669232394144806743271058698942488267253354933572790447425554316998798449216721894714373631854297570041193848984317292747551114444951362974056496097826377332810172473310107833222652515482470292567463948850243548719333830974391278929250558035051159612138355600208142951462431477387611006893591212147873311460327383324505101106081801168144792585638865733438186540403276239402707903472619939797638190547461023653030232647914141114097526338413071506605491754577265324917488304993124851192185390585016374769557945148969950510565411347187579525312007266865791559455899939804576461561112763285534370774276597323492607304909334274913889227976880051676331697295271564583686802100498390821846560510671830246002427478177449896424406629945577660142240677347042658311114839758675380555031501437853408782007596763385740512034149016659438074500513491154288424000930670945993450756542880660235241461769702044070199544067100972022261326275526886626776987605526714183260266942107833113281278655212420468562748068872297758235050471428656596001581439099669671657055252268328219072466906313620926876517870370568412689834709231574006654158052898253873250793001994530864850903512346549403818280146150961835082418912314707987429447494811854423459351577610791443250170836113300938041520785717077805622417615855855906716541994578856331465300538351989899149064354694081795588621127411640390478619824275240637451118004533077742036098029081746886020236070928499114035219423284770339656937245665075682681031066216802671913881480463435483269652827792955392235195072327931410693099848122408240507245537010655846095930112618298741684158715423010056593738810200519201486244344383343173771751600019947500657047600143081782437260320656665897669006151754902137608313522376885836514490150164446445556321489433218477865192012186248061006437810504119358716401409371163283816690441399521218905512375242052872777099122560624917181040921491743394975686097672555090113162869814027568677129466142120145536635298133128349590406297162854939803989237511659569304518536656780614090326425778818533603952137214822572103271609898992946389467690572588380971925698753185534855533614030628542922767856201523001517247029736525819854820829940577514878609210555220039229800597141685976690104185024012360822616017504802827118408141408208439688533338243977752569138728389597601145579457207519644685783801346029582098039522064679982262254697662747535826115845765122173313356174710500293131328401628649148984122157477385012764398496768739411209136963399795422016437973921415190539601112171656880663379696215110388596031815096341720007292841586449965754531734174445572006042426952463963456125167990681754754678183591794293899653530600286140311229552726492777601791190811923793524198337527092649776337963231888667814028363737998359268452410543752795160277586498799457365953883907545257714244855195382647816659500580547511250890035046234781204808116991213976992783188879518227494861271833284868473891402366189035892365665840236482504300176723212470473869547750884010556493986667700990708608925423560475747428589820011454007835337468647462959556700827459618489276684542591741566129287896029260473156290387951324901035647313027046528461152362596415000746043515291747419939560639987245360261203993480125495548877636453435935013379513018327016587804146237844583637689849745623758945138756669782464442711453052232950336239701060506411323160810090598012546347430816603935655743862734692550706991906768232728478942970411123733021631176962102442863130365410026694634038015842871555290592450554216551120402200704431676938313031340193474332393865515264436818806975568170149796622908181964283744851184334987995698101787335009420619634047091416873653405804544353890682869937178180034410868744805591581181291623659838118533590532567167109974478327322406833066483109207301223633679474948731124610488045584110890766895434769903018860563830580312213204911825031188015783122201204241843619007611418738932766794490013258846136620061463475564591031077330912418920203449095676856425875833302120346017331607827014849451914669754714390136109652241878439064385493469190746185025346966943006819597788406769210280506626337267995290800192758585770795201445319764526314596949731563158496122756014188248013832296993731623638869206063359516224241504634341512857221255838399882355703188373206489524724674262429431188400678315037935439786956812829400772968670850241672066774550627578015251061718988210682993565522564127760940342732960595964788154053917980998828481922998706608581707558635612751871092806597430588687074119467428988612583532681258261577683179761688029686601783497260141393667170998772947209701996514446473990106939109262527543485466120135420086672073982206693772242704862325800205527691055977210518424818791758237799484372374204402256962870415933336823399076978573878801277294499018218451969275781259136946074945624591592203233511076997180506725279776474331208009373534359553308116242678054089581033406909409896557635723188977685235513147588411352278251155332371909315740938825482440840644294292944921557070252848247720780120607297204795211264518123024560705663933067347027364135034728765238626808057164236709812478766344522153350762156617126568643417775218817275697605064659945002118617890290202531920859639562267696507131133364414128589099949877398949297679213678511565484230716590038620575731719932299025558227896687755080067503867440131666802220764139491282021363396138523374757107307802707163047925347248775360869071410881228606111663007934187104707759158800088082792985069414520402680053926431087891362084289504495788900680907288857187510417185422595422805738191891468910169078397458286925966622022861177746418247048368658148700933878440663564847247903001946248598375959899262327384215068460294014299622351239352704208559027348476868920566549132008337053099962606409017154320826226515864008381828360105914307988977001852156791440332031464059973181400559525585798027984470271250878128621757343577999480144605781832791550489792423602618268315365729698216263575759459905567696224761477087379810572640456285359917135852252915120455905182023506677156266427523040134460459362927060824498476693758023283041510600436674387355362657432017362206752377011468233098493583520475600560691738087414717539896514789003128067332107214801276612866626759874117730796628483492140551381862135154164223718934304275325316819586183271427205009231044803636959488304479569927345580717716244892031153383379689518460765922960126952871289112819669579237496709010700481248089373118390063613569380432741606327890918885017925845471966079628548870734530525213647990457875574609736681585746553086094445970552919093426896952216512172140094507237573859741052558907792896226443283007670288084981280674159477279167622691146128350822273763391199391126282896337163410894105636762690815505446670727402418159398108306158757623557215335926039053079129154540980646510331430008591488595657070678427885639265762812667815448845740278099216792273013805325524877351011516549246765592554036796562387749575352507880489270709361402014919831060603466829238828923840560873757004586259487456939786623322292901490148161408939208520679330896777490151137684263323904089485231664180310456074211477180135024326973278084215979172665801854837556361261592259982306498193597755900926749381598377522386715472690476737177438824540017886254261844856728828082941089784987553490466107446636506131831534903798539349616403972885179903861497715803939632631809250534085902784754638196746425828282718811432692165875353938616992388845241434930686373663502239431618650961309641994486497420914007630224461332447107454968203837610346472569183260525586125760353812596037157136356215305830126508113006168672006835917527729493047279047980765528223624542589184829923951342307170805303093317152240494235676975232955244526810314875440286029477339076729379120203902288605679112558830379155881339382168251785811368590611062920173560268051591279532322755402047410184527387465826257466869504344250915635543056325089991795729757716913468781647028164257304149969530727549472784942302500840984186828888286421135723187342751448575643091812621698038905768465770007252154928459304871608559883013051306262978716719846767057048393143135739381843406786244768937142805717710482439511004628050371123313227915084263807713466563651589824138905730667483405919416852528039090057950507012082364005273678782884818676341832713096156940557904095483740926002531319085170883553879646773758418251435498816213429580928979177002323931701054584971403935201996291600297944048500592601740728180240784756579958839793841101434991934341658583584163847891362412352625443696797512689512759275677255566049066506214674693957762939376268007913780037901675695864845354130732632813938936160250621777544237511057497441611849847012843503419972359183040425877427680442869231678266748992054815393461521397505784705548792298000626412351262722088486181530439373875896515025133536296083715160328060570567696297898777641301597393404521239283244162782939276177162683150061948597258410495978686500467507051704928560036270997164925764555515322601122851344209506625338065818625210208863251171003292986839211416196512771358202926209377828950657658192671927052275020926398654989282567609883097183164091021659862849492030462455932043621051323824245605005728219072328166268321130764682460090195187234610066136819441409406335944491858430756296798647348591704918528471726976034154395333079911971147786641720277609097917872432634133766043668171697062008965644212314102288140857710645386674888512609952330953394857596147508480228563179267779817618583352659290955672697275623987540386314825816371267340854388417598919480322635592045529204069096172027289347903084977844982678302416209985515694676408287079767147587992720582686640217669461599574749609764715841064941012354115280971916804258716179023122428334835894104406146514499900367670333011123325545825567640321694614707608215892127687744653678958961421632274262528580503759585472817079706924341566113096688137339329646631662069207230854596249295887931523550284309185224010074515416314084272720958863067209104669386626515114254353249336262563439821041189916688391969675996856065499615266857992757138075391054535860327483198998929282831088781398594723104932495666408362794535723211678221423283183950641206248937166922828313398431161779486909510407807699127304332246982998702830351440083795277458370054564526668089469550701799605115645729502593120727842405474505231714279678665773312646452877664277601690076290168986801044952054346268936361798983581249250069478433330339578460425470466107303629522554014415092588366579183114284458488247367772689034920090548097253168093091163911926354523099820591456503638466056300240692710402971339479160055651238443823254197352264233453443152815914255759745301969217252956639179966632437833712557210571931651026708505266009353771945498640995540157206069133681151817775363267681060336304011201289956630099002077432979908496137243099009421227917020789114665628539413392080304286028820003026740294132319972936536088298666255879790344958595557033030076588908294489539196162980400178173647984446544917623084792920650108610328243999615444394695441846222194542791412859947827814497297885611195458072670146976633197616197865299229580314263179477186302610219378364782797994140925648762098017364054680451486012655321694406151062195735696898842128458916223538674416544122433803698465101152476589613510568778215452851961066998615936525612242970071094898513400554832569533074289508125121506288822169257581780956302096079186098397789671012363743086043820399270423599399822146550043444889073320597220929824627288547191364880065966194827753568395526121228895174699152424582052912415079910775422900285990850754115688278168290271777215760063242158860518918634945447039572795572537755470630907412665213382537298182750777489746807601009029829397690493223650861113876675491294104211736292929255553670484387315128436667597130123442954864367028916644111576016441572029518697641817132470879372834499365443313397048457879664241273355606811300950882306591799282485779376383763358793489236252984855826344600141143736606866930431151242723111137925643159412504464124606739553711694690009034914773260812107204917383143263105003730986065922726922327771492198211632501308041226728730445878399910271567838618120458175657385314453859197529041419062829208271373099346142869094418538276316566653916677847153234279865188774357665458944274565856582607183784584047826147584364805444981217400427385828367086174725519139373027119243169727760002738195071604139827017010388162914178983424083176396243083028599293635627442846093177602541165154874900774024830157175045199560257943818423218862613769652305328476449196706087405249100570841460016506651834358026329491827232652615208316438497134329729027835295527901432825681253002577917312803447362929568245290835789741854771530042226009451806453906854833063477246154924205911672010253775089813066111328374136282843786541676771205588698071148011360544028039492437630590059134396673926740466861260156968866264880102874383391823397135709145550510652640338559895447603613739447761558367640813144308261048801604195374881103310136946556765720567741592299865873058627633885991467460747834737012473950881080238635138503569534278309868486528916959229378974928535539597502249542201736505516531801385690880419562871656648532917833965787813488602843221071709339435195216343192733245309211855827863339394242743654194555569574456953179332075800267030325355291721626692150824130446705020241871841134841774917451045310649733820044859905490752287404240046946287927367006549557241944627009181053114517605854785891090615194038449198817838605456829478991824514642286990001555579593885939194045571704577913608626277348844856622152073083623460126508721471177002247315746077166278026549522536595879853977894959955988599041273584543959734106371647406357261645489835159526757416469896891273153219787426616084462970678245582967322893019412708876042789258788931114246177222038528141308982524200382739045608304901082561854224945167487339262585239888739097264941681989188040594707253073334433924262969763649966804411626552645910842023620022740052753936932296913456415088740802613523921368046937928974474927951206608649801154407252783968126875516087046489617946558848049712665850879432646358157271006231235121515387576580950082329762507044220510079004290296457757523405538900188413460952511663095352090763521040370159170745973926038788064014611035042448481260014517321525759717909220521268576358686627489334766505328832600147127270874095376018758728472193309171570352859560653653094344724703218985854236815391985442034914809688896947117280549068730425529701561705897677595978919541753148024965560632867198493259068616554327732535194437833534763384463948643939454323041035282444274598516040586686955823798842338692840313284836667901623093760513824367564542586733423464562798584770035476206106197851064683918933168516148498387068667294092590402343580300677255872685192933054319275403191683259310102749783260134036925061165414790116937255348681486288031388187402059856555231906455802455432735695883456855571248136925720461463108884473914381165621336949818564071482123722222768235272527489666094316184599711611590174811409569334477252339985297368546111757459998001930050681422367166495053378338998956942009334563788912849958397026625239751992689506439602766310135335898186308425647562233355775553398095232162104967761115276160016471780522506722953044676079250362677425119389931944861555485448826700608871185852832142446812453059837198574016100824237984500953197227600102851345695212693301268953836920659831550000954542713914038706313498358143975568032674653006514658253272606025473907615135030232502648789905662310389758233417770991765294004315377148180409061650511582531008795531035955441842596147151838175571228048914371732350835311134520093723746454359588827263822903060621455418473135452241794483946433063436654880026779699847643359298771633037423568668450949595760126320680213489877431435821686897376557754832756166517823875575335820298647817116722141333035237794041693579159829234438383347782885334835845455500196382013179375828226333977869994244138603184322206938232623553224563500524826304748332313039299494484233267501702810200181552753028189446688635957833042163560908682406747717673893317037914115413285332935443180362840253026136610099408375104644418980138417985744594468564434313159911895013916664810242393647085086474928393310518132601454525169761448298850169857313436582446159885441841330418681873708830549162860197431024644009625796045273003065300602301930003001154714882883180926692083510168748085140081799070697293402317973767230793942583514591572982289173950981380848923422923742901008891431527433654506785593521304578924611703078500572283573859951200182842349642048645792694312624474779271638003957137733725325662312576896747162790129326692456991505139087192270732298500657438378712715535393998812719276479502903562666834855088842171470971569002954837178650021687156966998951505547687920353218847925872252383657591607354678963547066927184674050419968501001486025408793488092029960643655971235960147695935428834459027014699117531332819311067842489433044424792094087440279831478110469080787049647839420265067369471379314580072853788772947807896811901623681389846629587070314086208300670514893361335330838517320042269969571258330719665780740193144908077262199896124923886590546234770019761748120547180603081110725925108671127772720514193810641558772435931404352886971392530555962145096348651604896265501671617651621092552750913508770133409429903056127813567541311283126137005953812435822256351728153865030123636016384543161976489129002675830685298689179387280894395222475002173538775057224044616966945548389920330723873610254647544725833348776201081035194576175479286333277459073248075969330865691670002104330687442781568779880325417365691903001419529935754212170003715450013266735892493212115979689487413011353134334616745708643779658612899968698593322172974000005695671656901818144034468805115680164677648696049467341562722967561770201210372263457135887066578255350790639841148894019207181424447223535166319870160115818652560046538627162877715948160092439353863129149967814170725046870941129518333022309733027891081800805876038229198817028716477426994974811700948874269826325164434036911963882412339483627030716481000048747544501461854439157739375019161055183899038976393002622569137842279878822880880842320238536083822580616303745866058756535951879600843417632417980967004427423585211803217836663173934714848727920330093074555217099036825855165959398080404571286318206681769505422666003704860973093358689692167747958490577521607354768386033960782194933135968644183070457823286308173852585062921235283665934690652425013167627640987788768846316286264709843214897628804079159332586779312108253147387382059730090842514866300346595753231692962348444487680873286556997460569653415866485184174155580929360683685965757856957536274249603812405508586662926487502773374187508102259869009140577514491180616701207096631647555962077232434904941172652783855328724726455394385808794780036201950303835033224144751646201139085080247861354661239037420409015144262111518358156541408596455909157618561864318069283655912335728974976517913724289871810283448314357133118992048052475772089473966812124766396650528770964323781170632229159850122640562507893774088664616087977086885682574591739023271706339350446179675422862232644476853115018835834010839395817830612302896225018202818570389891661728380030045963051579410655265696555041407536556556431969147641459760481226805119819526766589305330492418774716592514849890910764187782903847962191008624787448418821513213504699782649875386866709803576244625866214136741527880682251600429039928136779548298968077825396839857265643370091591098113300680040996980421347754808146715236568100792505524337363984169370430971380970717300296811063155086677913236638414593189885136334202747677115401968169409814173126980535842740056793419150833940966874537813082200582922278961661538819442068797623728024976376913024895526130898749222917154349106215154902609083822289577806569768130399638165544277602624543936603596181123564523186572881217213095459670462110930074924974320693873669661459764873012366864610050029192897696834861829737748870042913352872897708864002657817972466910647963477235845397000216024434867607746323317451383047046429383651594614863249217934373159735797591360361895044421305490821708360761780328206203441556657339377494939400165196386949411227368911702837903340368026702101668002056392814048962700592061741249483995586185354117968904083500860195950507613521783584814077734703421471942631171195230138187123513607682887850804317307191470283019869810402713288825778331258437394381887878690123132725089699855567183366898472373510070097402062333753798509158632489181150992982091061883148226170120348038699816079056295032251856925602972913207243224069101602663624563801424501850059672783278562389432964963659900835445809931632324336600099258550982938669817015621812203256256396847613956193258911077677405977330282470536934973250247152800700268222585215773099876621121879505441172331771645414493035676327518832262102840511253522750989977300723086256717942302294430084026980103128263332651966223950114094379735908652233184471271274422781514041332741123964188449887337060127146659923910832379572822456751910574185726102107656496693209212865995280462466492967179236005945929650135070732451240982199835575965622139599089652439134149743029736861507330958421042881168211028182471818766851102708914711299721178018772140245744161953673005492569209835052608853289819999995600075181616692164410231239175711716113512190632454364164929327202227137433351474813074523200910945630694571032042164564524885879005870887834815310084001388491713632072202112495320372957769706975986242185165543403618863236158486189774968332312177531372728412628427732117930336198342486467810674408440820505348426079410619775994447849198189209826167855871770751694329609103191264450092484661745319951107482721141194192453310006132446078564620500866625364469523676586570591830183892960617273529158522158836358722971376184610044546631938008531461669753119250848002919928772021379242759710126959340173842644002846790479317622053438464018539400830384564194767690639624158094196200636535711330621274975303414918839418037868254450990438282729554226296067761423623785262078644108670345919059115003529408991140293401444353661835291372549133873249552091974095376574348175134084042577935844725662976843270654662641338816995801584184043151299318156998122309219191956716493642418692972200874628962148227317693281154317111380840339236125991737125130691686490258909804965423032284620424081177380542286954387348470669937101151525423184303416316808543392723230484874245296574789226515801445318866330061257669126299525914346817169410876165602494386659690221206495945077376662778298998806143467509903247622547808851637198303339287541134499453021121419489669091057385262299159197117668461308341776719705619895716851404674089860575042102306791532378274502866417505828429892968089045998951162103639310588474089352656093368788789229585588194487410108908695495828733393370517231401307979467945078094466904389023784950995302899947647967347924939402416887101266187976333942332050463491846650131809344124446447415888470940327864033686714192575985101331519805704976335421078629850392896855367908043543396064634713762555224639330556866307660306532528631813627390794267359895196494309211973694395891243453696679049654158229908592742568294793538522342008381369945771815379768996306771171283083947689189977762236786491699481723492638139676614098561536092562991229857579815153757563195617519140563537399885284003569314226430749889630625994001955218621225976677002814813766154561746479611882136361456489221463055144049863839758641735831817695741435122867370499948804992785430570876725639543751365913296996964153989286678453112636407254063483697298575139529678835332389721757197181608040190033403176666275089478234345832019840335169708040817073222715886810765956354616834082656628160889658001426337547399585254163762862642495927379315641794208550740555013473982800441255274389358542392174395933332297745979972912024355829230649910617483522416210589485606234282653028069511274942839334443375718467011711514997729215778637514458265374812309214354818771934855346492288353472679880606061773849086745942066149279849605227022549805157128052765158747925563308235844985477857991096256625697788093548891307336216655924853262968326915786314051872012763905752191995290726042962267304822762494698358178252649392010446476677871281602419395461792085062597167905293738317770974039671724996564266494157120365033136247973012606581376027396032633154319115558273079428309911978057470287998303792611535893384013781924447887785804368797207577587610175043832188497143103358750142441166214269420608033969728383276424721115668305272666778230348841625608436796285766571872307504457442301578349912227785322493175196101320773639432235469639694313182617684562978138889341718539131670015291276140424722280304057009710411095348294095956746417531526120078286349000773999113784745696613417408799158129859330631450507895622043273570864928829919145185402067995931444129296017277135646440124508124726110327636221094822339473391848313179661590842382564988628537108348366039303218666393472734810091540080127422573867419386194650666809702944690492645728460080345538474110424475015340210683496428523064575928774455696850089797706025183616594347682485795703951976856774603206065524769010973411297019248989673427312669128187568554890687644823126472222114532654453528377683231443182950492297907075802899238334742888835117367610029484642593855043242377152130833287780693206883545614487746425361111180253675988799490530910315118765985640044715758341503206702578297721650903366073940422560589140588963161991414799538311535937945169533617773706553416365612440233187354877621907158916393204572219374344745547842505024988418428197885657328857359040109749289834671056808942963086250619171233968218143610570042521573582246713941946320984154142754672788039451728828422059727616616982513660345519694090971966411207912688663320682187448868529505587858923129733725800871835274026874061686495499748829698494081154079586055766264443280827738559608315251364494301709068012304899286111307169303073075596266202650739410973254699555072324761473172713144721746341725048127089648060992403773790481429459688795477434359203773900869400254490609347092365727351812594262882588705376897217352421051420902074824583974233286936470571209150120119061207718219133911648112575262319754461453778982013913196712038102740783175791567006151721678669987169785299927267910621212013768928247251792398596008209576464861601465045706300355088484525844336856294093175671803360685074435830154672908659401623037780448617965796592389904431737879546937776043805032122834131737118722055195169143443026130263053696471836489670669697884494973910367162058212643485913281506818639799418064489679057769755545332950755117941313056122018777498470597523109790643802459564668058983353584919932319166373923929504835306646144397616687355077868060320112032544508878510926398500890759214095272334898194720823766489731652048478830395773802641896927601628509981900615066489819181691699676511250241053132689461468873263707818515317771262154382099274838854458379435755491491522066693062628443907217170157547846722483977226046053162998325068388088393174826974563334886921599602790245808644272814696024750621246482200461075253941586244558573505237554928417647873198475734103784733510398745045656578837994310887250036530646419355081679373017794131348941223037278012611131963821232776533573848231156579112313805846278685505566194988945828535174281233795933665435675205379086447381178531796406515165203184015674893817858547217443091212790683425084664206224143731562242671669682613814449522762774408671623226271985397841771073441510497194907494384199359674653245752947103462669064670401100486064944605233648249296125720456766512163596961778762186163925855904993992606965126324603088045171025192285803897714548982701574153325795303233860774623750543142825428319571092822896261589846926484266769306544397939175300675066886808063253188459379604877483403060394269944778923711704226795009376253154409015998912396592251752938644891481197225714852420313512212872974569043592828706700378361324254734048945588519164466666050357489222951998837711505771686132549904918635758664609355347422989643057693061802162314653320010346387580015942029548473803044025449610348410566876604657624300382764219416462751021124711459194897558411784379371516275340760564462180148626567602981031781986792673915050680726994166094877791368059050050004842943527874458847799954450157982634951642240831756579006426958020108292607041966138100680475436968191324793872704582897656944266841101382898288579096166139821885984160029977986369088442646122975428949123148981418976992666053539653809285646444909158920919455805852937232608254547096601529541256712009635152782564777159744867837260291108532121326867634869285185105335710540221157904075931400753947154660900527138327524698621670707938626494307309032689379441320799718681899303260454253625600121481787751454777070837856566857282571839681691101899537096102832587526119311675141131566020772189463877388278111694186269625505027347882562020797239999060088606020484256438275464726105452499343102416372663520107594173635507577363305437973462375140929269494892677644201995097343466915146992062994389006634364939085872562452512452549648606431820700989672539273404142491666351430395379458849706782797149848611797985398673587034403052404288498240920770571186239225516313132254619222020721625237573822613112761276089700203982446242133657193875162487009299851975949442246517940306145167801136498914353784324908579952487819621209369911848276189658830862414164528865016189307919413760255219083397971354284271947344321180182462672273043211901339673500045927746566385899167227635597671008476028916165702599095559284564969508180701355737542770902817416407875042637530293830465601716157696559114946413769357925578891945707069185275094042842678151264215657253151461823417525870164590369109921684706450530259268480606823556172103640378555538812276218024325022484972988677435729510159741814916555277412460766413385277715014171485651959715252600854558431023920983570427176379717987173863751696919124429661068198425062915827818670491791772038091067140659013318923100164355577223888619839763089792034817025645969656284525867382961279405143521634241621150500181057489535400009698475045473618716769057469027550056096235286006010466415990037924149925551879654066683148742452008794865123367063086770297383622068628233759384224028736232887559934020493052851956895145792252919232418163788669114358113075927308301473486672047169940026780099157225906062746186609514128071620265151093636987899461290278074158259583969264744988426824564340740679248484099012894088932692300013824272767360867931542127979963774536459288060036669842206011691208580216393155872017984747575804429054109129718229078432249479094253193765186304724374147400804816990471652155839875825819301821419560545260883933408887293771464454141556621525455758590561427997795097078958456388898788346873733546893986373446857360297035704959918591077686841991169289723289196254667947280414679633110202293602969533063466876901998344011346945037314721595831803789752287073234622596893478525188049751808737124624668035526753285454702509155622113991611735262335004924510080173187167945497453115763783536177245164866159459565907025716380646345509902524109636192295567805711305290724694908232862415580665754943080316702942820044962783353069896783422582044709442572239746774429228862181583325826900691263049078112970710157085802659890937045068951268804338521577371894351666319057748013124367841657581761690434592075166595549816521563217128214431890395128211722673858427957962655312495995747116922456229653177624831058083820863725238260800543546483587370478860381426814325997983114068308512392164059077105023583461806736820496497144928298303523828542410397293512090265452682091246741388658117524987988196125662144636367439339337549104206160210429087321276825140564526526481318981882561631371010066712892811471682022697255830920469771336518102260497222219334916264109654390127731244826351538860771504883947054352262268172549876524706033924095113771995706695181184219497989211088476802910660941416400020593493171468636289162304932625983769707040897011165397672448792723171407170021445707978314137811485440455978529980771812639310901811432977329795823775141610662507632965517954045876990337310228807882963093251463375069221329656400828386770366231063510889839464381636305457645519503523940667948056119733678326540522560651035192422954925370596734148913496292980188109269516782170293620458876990722958759291211906897618779944572291838652830574065775524418994804182480247779743803897577338684004191850565039653798772552115196917178714316942685255169028668785073164891035421862790339080533429008099327224576108190797236441664580603587796923184755560213495031141607354212953371492881426418719674874278070599881620461696761031899653054702878611017957729802945127106946043422324437832144185936364418773433211806043377092878951894412700191740971365102066578779958496818539189802437578325230056828433305273668923224082842958759023078279294125087093680470720887576063244327260980460435592338893858807373168862270809261664317171378500302168478255094435278712503805758774601155269297445393931258645554198654589669335162082935152987987042190527554778501714391519411358359857329057674930919240011240213723325589764203928261365424599546492200675102351103270226349683514074977745127194774931016566303072451257006620486804965241768258868737269606299154548603491896296428501519681186620950124748507721901087161291447491358874959229974863788005083594604927230370931157891999154293370085416342003163004595442492107017655659070587960446260294208818916439512747681492959979405976657258260854496025949444263457446402089495199636775734899334502240311350299419515639400480174032860867367521934462340188173333587996463680855325240374882366600499939654575035762858137123791274661772152611109122792170822794493009845687609223186079660808595135790843081191219458219706704187213191268816991764761013056316222899596799449825268598059756724088980440054509423353888606969972399793639609608752907487600878303025494003416269916754834382692300855618678800286922349083198481260016670065439907322233661758793435831899054623943323213996241533019838717155883610714177696824511527841245899797852293490425689670904962228080797898093148231858108254009076287045619445723330499627258648517300165991878656082646025994064811631091185260300480373694607068810889608970755705684629466048580885455643334280516420071538613211434150033519726044743939955790519631782631916261874040203751233939004256240537163347030956072543474834112728612688881039087156600770239864143634636894262000052996616330013544744095161912561150170729855196019291406194582305653952040326310081197677400297593633374685093750227099766062826880207355894266953505267878697359230284151293907113787525488577319966445409337418934867049081135793504045715653886743443683958013946432138047235009236305682416580264175420583136779913087630074867925900080185288115366514954046936083367545916370503903815740205882620130229953213921095508515639760466817214481924359738990948931063041934245262586866962311158821779649649350310722830341859821298226909644290240274172021567114185667820187327602926996063868974481330066946458069528750191885409895149473713961218586302418547080889241681644029552073197438927227596777866572632733458468911660909445281609319710520918981650289364127122203315749758716445312328420104686258438514939680644935595131809647022450616122002887540574685096654902816079767263324451246213842845096327335716521411534238033604983466231873340815720270680519178428611429699578076682310172841024353390507142130341174756115174569337416439327281068573572867572382936686335594677403251120504225792654725284574798702683470084594407570601543150196258942238094719949214448917028112724743297949532842820012190350936437752345488527876666349111303618963632411498530250061739878730468602144547441360367779572923368136490572332990503399368494237530551208023120062096952281152796848229849966810707092529376017363608410281317423564550396978091418446383911012690050204431695883305118727957329818830640705632656667546021831516412858107057434738971913288326263074223513036326469364258291237873778165067958960203823448312532297695803262154688516291815928193212538726294862971974081949550567218438485165325785367285689061016257198843784351041496455347877431113180294167533181307446198264294233070164871809650996960436976656147214123036931611548747136423308271034095572725528807983213507548414793547570035183663868992495591742591373849307210692027646148913207366064014607519604402857511055459864316204026675635444280582552099536342968686615046269206874742523391977242754738104929413922634241343149451678366165833994124989421774866642816095575590427721849673777931778320602238314626032045727623097123260488764066544282877652253866756307505824591148492404589804726089816433422463985646504108870805931507440052712616988239727602375805206099146210960741262413223119144648473360554114631425629427916482527858902552234169689454843697386987477865423512614373606023265504981998389971612764438031020129922353827980673715479139231987528187306411087077538094856808008332663562841300551264065757883542227428819438426970410221197836268940021614301349648941014823342339420675118492936662612949876251142989264760945937680119890719339757554652456905440159621928318721213837356994343340359493309133210113393206137621349605877469009353062190687597640005479510849364367431989465722205711746820070297422603305817164553705669564583918306149440122554428863720503920590090044613080258299693414460042207405058788581263321995986713078170802264913280668153409945367395926449812062992034119059001288973222354793203999324404988080243279994280858302075087583550571683520049084117699923661867069159079340213721907918651083394072959924647978951027112539773730683170848712317750227888200211128956218062262153188459672402345433671352344295561084023164798692149852569105856734900754353527745199119641395136205539496335983792562114555035676368846953555573945369070755512431501487918662076840713494103484654687630083896732864724551400435406415311090286663546904059824075738903437271765046349006427850147531697760678050423412802337485788080445960978182735531364686966470548901799958179068783691525802967902705579369217762587543585093031970172623573474216648770954676262185394769144456869435658530881419447506356878905402127019654281528114974132270168032061298140948126783573932517094554580742817645467932757028657341260387074977362064913070063361497485317252669176070147035504586283221414591201831778099300017241659629095658161618763169714813606307822284695272300306570886872784198671721414024814307713656906147211951123623941966278691755855322588006191919526447941018962463996549405348945861560564568021051519108770349113522329312353579491939796618148565868554519180159621984956359194195127675848181375714119129039356187228738290071861492114270292221832582815745201900469214787911066332508357580860538165287445475587385294875011855328302106787544950208692490196897362863581186080429297926191604474301282551229370414895910311818779511525753154552186914598958057293535811553189919922837217665851148964531619185465332153813613429660644352304309985660039069585973793773343516116949508703492853826703209856772118700744651100209973878340129100792600553719392020825762582281477422500673834891600829796173062557355357429081705961584672843881717972385690797757387999585580073772106595084439748234875871028341872060652014833697699523073396156437330136904000855603346676480005212328835899281736397753957985228311125111182542443398604911689028559018966951807520787414792949650377448147095690939364418295710466832823557276440194745180225791240911613582633795019857903127867268688673004639560432775564303641228447189375296023557777736372166059455005402774305537550942331182967611191315626077620034776608431879073916906150136198376267382678564721514126083237778377818522941442722131264198359779676223533876799190766521565127529938824857536668860409618845650683837031392740724216817612761049786750009616022648512178279545201646195287170778963416250440947330834200718419775572867992885604382353021688248042773192185963836289627498754352175453092363820410013065435753111272125764894350638233017779157846772821625793738202328982793418369602837838935889585264172072107039755075339347303698947594138875655204633162931799823656752071270587176456702867947400080748125504209242480470656233722807689228512603220142296008719735367293290279110550479317158027535731030410457398993368911366878120152973443941393474444203664240300993144329938619681317196898790890651217583999137258028935930757438169991803832155991330376191622124902376972037202737955457978172891698370073947332281464814963348979002474829844880907040853288521705586634747151788424164821936781775279309671714546511037367330483746721824638075625473078050141915110237606366038429463664594874636313930302586201516276733112149629626247256997738971730102788433360134567059411042482485967979452530325181615493234532685623605953325911075759645036198613187186035798707262384776975029236928665205871471057290982584507172453031134243337722452209676964824323535014116773629087902358237697534530062426910445516229366187020937154845978719050988965247302933376888178895588577302135031483016878281944583707770791109755876299137536586115685534835202915117133020942923852676576574562501663181339943253621737602866603400934810773720446523419212956471109655128633614986116497819050267552618667377896996846773273795748304826237799728665948888010598683437219047428721894554659936536486732954273503722276384221381535444678200072674372427212095917049490891463250266661023635274631458377404785340078903672711045691554735480878860168521310765976049120545417751692153507292631756489092221533211731017019383132267642028444791596409722068869279541278404755534847375084637802314737009803761696907978992448265099079373836723265606669550499264950524695747823231518607827187004385286653731768763053064333662278002812250896536203323848401845293132120604198495498399654478116331125766869002511063987209074122707488215688297443472513918515552134775399603731998413020013991622517438354131881501933940863448964288717676562788495617221417604134806907263988383435778017574681777302022851113425015354103334524703430947336124588892749754122261358900968588887802106274032246794978563815172665334314676374420555771889250075932257677470725960694718399105924958876000257358084390608997647913789985830340397964561798547002482324931286620244350442954213448514947615440881684080795032000311690536802991748537316591575702457030969120977142245803154420671316603762863784067960051078012424049550448805710700689170633327427639753640205725493220295114808341942687167750552233223019196314000586947923639848260387119359696956240805185231253477455785425473827241633788355060397932631801317731465134286705865436013118322785717914847910045078003787509800019711716505720145141964375335629783208936646901031036131919365696546604847931714376323737970726353872911428744559259380030781173514319296080637749283185701300599120674482927683237062953171431802219511044849217203342676088042884336245410071226041927714895660006923679554004824558657669827001837726819935361653899750131347564481947769825621254205186854531457179439105342503236448277684866590837821933236915318826445834040809163184582755446984133246563090122845198622848938958048568066919736494500257104909029958745295357893132235147336875180534838089058286573992855272762095435657218385128163076099527108337275480353188201681511981050005695315266044817331326238345823985937747854173535337503619657832656233555131811482901162502687679403002465975638779282060560044096862896264387996120314304247208268320581032457710602331591940084599176854026973211565636974316623589238048684824457388838949897776351181869789579766888649506983573060368414959249535479288577519483442083289422656237527092940773159191342922913699903730580772135864437758122103104766975847642841342458991299676533607012857979988546244854968271636787912055245192192971870953464718925802136276909947302557374512685725785468181422870958938315641966024847341123898076754365026033313763032963274337412016488898140513295946991799710369729092312649673538954012342386072370323257492632368782110104678747827312385362628148391084112590049983050091278873455973549503276114532019612851760379371892784924346135540340141851757169339780149651009242958316882345998902598351904228206573996661551661236269788357578745997707159707932616027305326620945889507812819807176514454629992421925946014103690844599166083660971233228140891191987616451355449773218127125048881251262018017287227672534264638490543873145230192825556572817679504104793638036260936880361898854700064385187734850562320695795030156584489172471088593337086375446816323652474331049240585274438160970923499894319564173596778171850707080261566371694989587688025923848455287840898169993786902832046535366741406770604700757927486765940582288861690353054378517248937252723029005509159133815283574129294320258358363684127734511794601358650367644875617836452818319086084167640143667545771507291889650638597085494438057557048646276578051679206704807010099926218385260943838994113880853031225415581225495357940386616039290904150958098242196386605646956948853130669627501950746390670041016720476403692842148176012027356692563397964535640626952935813583893627897438708354507154713499688648857032777436780776045768122401221337944018061577396440052948214924302261163436540703439302484221777020397729177344505938560632934534565760133564777794100502841018901302904324283554676976647187344866328234196314620880411797134446277874724147524203627822352267704017943301209448099429974546561679404064972664982074866426963571348890277956621136753714363287556891949652755162225076153687459996415505577735786154194075596861455378006420954190041165539033635782405639370223733823013968357085765117058916450330935682229583523550068107267224780469811511990996901144875970880039096294275160630257328092624215458927824871250979500891249844725612158481173630843243099759222807718625825427731243044552608573855097651391222136095801762735325724992358931656291083211788582081667461795567265086860022751658724027503074160829817830685098552402427635635737686204329441339392658506292379091083056582253989058978424181217999012344954385012710185684828772796171451056203881216312472593719360258681384153216746840177196938383339929916999686035164962694849533948390410955181804798330707801389663465898132999623380398100451975903609993388920442800881742709927077369046819436967698906967189962612468647033066698055690383703987564435618603960561886149133408822793370999947769303900389672136585938598933165834266093967951350398430925534167848498207978978952708452515419443990983205046822689436453333480243612941211333477109400094326542898993330463741454342133475392823788025557589018892179548962753306202777759725865080020705424889714502218899915000100647449758336972887480080079117646359974579179534713448169136243616056357551892738306672825693045517232658498020428926114314161698426173497999767255190190300420088286839167198111654804006703615342522153157966766039466175868281804930377188362128227388805919517650460007799511018660581118319615961307544948541642997349388822872471420807989594816706763433806868200471131077143304744792473565261494853549986223057352533216754372632055823793961146296493181281109766783251856174654748523610765741190147514156155345075918410548244121487718365749420460164536273677418262078019776727463938666293908530036955716083012278116600346010585882206176300330609796458260104091482355110136727974863492783896990853165586250119380095699413378151754085521448536351660488697368034253627870212774584518813573555926176831912999514936391925217373649118548109581624388717536334889258844158348911802764665686393716429807950562595250350658000047313794765706400954657851395290488813837309905224867320979674138219349990680563310039639526521005187827311326149728885332614600197810778903121524284823385838392956865226145595133796988725655187322993972600559391763345116311805381238167869645533904710844429386373071299259685980528805350149374305546740065156590318081164948771260045145651874454969233230580775274639474984664327077930231915343167117217277369087189728387400910911081210482456703674323457325926445113964983723357164631244307525105360975019954668992708487762872604119764518252268857086350984045784071088851152432035681757156530031450095387293710101818043063752209316492443481928501071594174436556300954675198509805407112189690293457286644762963844845070126892813485298391127268053945484435413515724122334644739434271028740442826292992415514464602178963195555425565441298948359179960613149351212782422085718197534481545887631661896134652263915640660037999493943000170216278297723638894436551158992269244887556436334075510271197190672414250616130665711041356788587270029598193892016155007545596077969023633894981239676011118828425229944631172098488536313147587138341767952422091004477540739213778548457585057916067808974500854765007417253256623112448908561810994280233250390438866114378862448336984787249222501847510938126761180922034988448415681877975777360514043452285046463410518552784128049289247076264419347334464592262892605299318556282896385981200909509715066965943986120741664769994791243429239347022028171124895454460711167702527227361571773124391411372634942313607337971499144915856791275303605013563068246339439567730226740539069779821361574507652863700896438881309894130924695944233393130660237542489261702794765761804900211438910361816636467795950215841975308655756504996369467429279073948817014596197776170616909646790424117623364560027765280059048157250793406746075712795258958269395568264667865179412959978090518613432750267305411921148360296043548007982790441777554934004315129822574935576811769053041381322189481233126976945251197550126784890344922974265519554096278475392268892588595209231777670474114213318690911913329554585455862420744274838952125857072144706268674754066699562548505322916972869105853670334148641997398697745742275476199088847805142472821376448990175010109343997721462026684969637646485220606910719728522280801656169426945964670670825215906867470757496707219206765785038806784922000129783285309184511182954364520962054551445585635533701264782883138074133080585927326421347258067570751345503882186588751505270959453813498820150643450304925122083872914853994557408122118881866245034043603502274453585179501544677999525215584971389593757965446784816184414399937932354774419803986829346901002583101902515918532813292778068760451308864193954782845667109047173829024661074441979796837179908348022393595698801150785382582422040967845619098993239427881698803371363873565869342270380032580710526690953336529896601077628001793522401027044138189958564038685603140001350777376534890065606179550830158856980035496807697467779202027265183593823548550132335659504649070137542227891779454393023111787742900807060472347777128254357877922845967812703765379766128548392937420448419075324193612612374551877275914973956721612046385060111124022206195773032550278518177765700678465868894623220742472787177701700000927457751192003020858506651192592478807554797737274668015716656624255239543493947157902859789743737654997684276438437031042441021022565634093596063248561357257826287203793340770721725635856253658104534065866673290798015552810792943911136104931917494201487854084337134659031008034135552540518743093187916499303348497935986110766913600845865795317369761013814091029332758561232907807732197359628095412382039993588534003456025735116314088208370989420274542615385417133067778343014608899573510672540314662837188530761684759792134856024004456482098017632697050132144236278129353687393567243679048196099161075799931437384721082757436790360058202218897002949989364864231926611364255624315346584819146416294761150245193887010592932293776388991310678417464568545782382704858376024052107045606065653003951037023804981342984915464942055587725212659847729281187662815349256487237608241898162578607844945028021395610387704096976821544302001564130204331060048572145120096067846835031680984739259431535051210124959461087382058371269498249339485287942842704295428891798590391343975771504311470156008273333669995857659457940351017565023258541202745198715498638152994829504343390503095231439851428173178071390765104770645384184893915373466065304118961705390047994923976041936952376791261989215994986803315280061940408173776678000654402507381112430082078224313021694152990803187248213828210530169934875846720170331957000536814918655038255770530030995873526325976448412829028242835077861406997718696726171191521318378885115176830154908627736080185244016821701674643928674679287289282498021663497348535589095583896710041031239583188453062423776084644235159096357768058705163860327198652052576668484959857622040412643162638295709279858766787690677964016970610771334079994898167285917111163406557398734408739095321820358275603785376635098866280797065898703361569983325369902218428393070319174642223350646250034552183262062385792984248474036772968855988124020320737722475200615612063622249468286537695927820322698898979876103167465304038881454253086511846188945459490125176754381387550625314295866516358647201005974349839704001363515410021511827602339148324672542149771265621266482813459853067513266898409413677910002308586273298695255879994919345407665451031754569856033119427228046665631604424425507005088425136436696425269483301974407127290021714352479933332167353525032357926110756241060666832025460821329076915296370584380848764353378415203042866597727423158238426388684594721642031442877454033994039901457895569125300394471550118039617646936829799178683233782411526270566245515141182163680088296171334097098740329061679525863331405412502056959522248376217043746681684677586149937450324814299972572714860042263047751478877959526679828829396689306527859033506465017750068574807117611354083515144241746245221487260673267424645768298642532141867256239498687829168463122796645897778335729248792122623587981887899289834879068227126053300662917152901999435445947674818516749863929638204566284500378755830940976666315983423732678080784682622838379433945447904073526445053158217555836931142422614965972893620040454424430432581508053185019150986512360338260584041889246411497106524959812076208481816258071913758678329328717600621993794429736484643425097096410644759574955270856249672911049697646406226036424201005829875282259774390465050586777403231491567950332137887576772662232200590268791159447644676025962623596361806273524984494046372638761686471470855542868963914253203413596887740044770987847885320575549774242384117715446542411763955668888609058182483287958632743283259218080580296482352050295105316079316724959259399394533599782217260622150529339979753409423964505743764466646570977344528346438248997140131071915647175532501642346370670852466657810256751678484019433889684590331163003718566218952560417633693204724369970656867661055651079522678208048158411406979635418346223935984817287013917800423193648224947643489278432292587861098861028957438649704869870433205002687250145103392714727758568335851265090983262423843023311092713880425917456195705352680873412945399946561477417854252954029265843642736945613562512803972248456253954861399264185959057574673699505002101119555701993768580964045278210714376706422303679247752517961822011425395850387657155348857158071441991344025839676701115690869497468138709188345463881071762723522686963844850082690342640968272535875023057535451702076759114334463414211145509107028992466128098692259221043215524806877079123531507079122209763244600384196035294125667333164023220809737458583862680598676522485342985955906677024374071653080001832064446395221401920743671242842793369731246148973021691416344614420350413468989952475828436679400325974165631189855101365130949473712387207291511913447445237847007728725062273227968248346193899071220202785117019537221391545601904412733213803210387389752116400255762348801636266747124135031014049423260409152435100887472474992238074405449361964869771702764280117497835568832880851662790276866326034566004522862047951847839583680699623884458435485976743973679659837080876146818209211395345044202196555375129619293158269736520496628695404750595032788951811533992724935172115286372805998255502985898468741699211427587103247471934853421714165280100691352713345065817514222668571812913107628479103500007543595461715655155065130114971600763421228204878654313040413502992960238747487866936794822089035139620795847414044110427209401862238016502403515450258083259364579866844202052313642962844323982297928915379060115656440693092478110887374062835780792230863626411712481002320576187406966500758139185561116928983182658121711353517522880141328956177169743489436696731924190191242247509283815016219566475924369615210540343205977493786855765728473208310054634859827579188935465602404679081206257278670662391824673069572482777597815063842368198657259194772231640958684397910440670824223090382293129150811413226735133206875066195527012057719356523269793463680813136447395905288898787739516680378124225117441391690553447595389528059245283980294623246753008171809927883641957051991186979626993974425572091975462400843611607202074838321975900787440867473662531715439036223881316530399441710969671220874565007054028504519087227351587126433260007097764597836401398273430438757422663104245550047281961598818865476835601428734819587592452419640994488487780758164551536208906711138416262369896725535637521889448358652484189680106242255875891243319814460355654607499855735504802182237850954240285582243290250728491566729714729631659223192352771819387384239714172460873932964469946788206320050984529077759193375233533497363833316182051425981290075859314779521469338654433583336608615850616780020905984953623134517318365012300710454857067617080018191344485149872142511730549433226871481030363148949220245430852976665394351820679839883107575893802290572811980355139411657109689553981138712113910532618563935732661119418295813261765585507137477999285288133334786319378500178229062931464094548142938329643546030941438838779325767651573266213927081656341906460981109103134335699780935440161745676369439793038852932672750201048691622565685494722693464966890585141763938781187203427699455218398597404613922490287632865833775794282497987441225347161929959376611069609311735887026352226160616714020735316059240511641136531418091571391698359270122083125891552407890846751700783988443612595749379311907424204425078721517326718147140452115110548177975768400307037696647943916786942985417368107155696010172186660443404943460590096814859918589766992049249011812988259620734902045227696608228569988904573084561258269088137317328513260527834822237591893473874259793680869307299773428002601520099549216540767326873390237982777886795213274022513930409299070510266690590297018172523805327427124343358980057901029586969746834007544660639662810623339771401875365186169178114439836582632504487904523285552009230636743213229424409953641335165038821714270914249860868533862286389731859116078680416124932500340144124339136171282634419183110629681740648463934640061013891208840819173433633556075530872967105743584279847255294486370746506571056682896482346136042293683497188307852249593676540044568753133426942380645345630276915736039875706444836782625586973653534040678683247516616079969099661062108382550697214778545726733785334249713409534607293828846964819480866181724012581698939929176553318166753861603159988991488015302139898844978226552274370235341041982842383876730107931738788918270467364922396986323943842140781541399029957373612180246846564743117209463357511696616109288900788697134871750144553841867043567073086116068816685623872077514515269794280640076970573013317372400885535132634928337957000115739956483740597835698191308803896584920355819299452180350634013325487791985216076017775161322584350267469435474335407815403891857392920669695778568693342129241583226079660187148480498570764783593302216352653832875366432544011547449412899688532770909119515148303409599277777433028534827437397809425034168741142672172353373855571784793161053942856050113594234238528666566127391373869517243506225421437139451293273849063218189847232733592458036311353496420240399784970050052351257719069867666397965460750439931662702285650299197587879978373143838957014591201408032066066936651634590654610742181138211140203127228339069991504785913323336745564245604616972034922615463469375715081728157176023281450894601110815534441504562886079135699807082305824734419617746897490741288009230303720722288084105535070335106429440666826042747679064764460240414188557473266140126928415788116629515686921034641318679338759275204856702944859734903899754313234919082191573597799782864300222053827897279126850509599485047690016051665422601677554403929132873744495042537749915512672097164500686813863557243782217094527560847065687194430382655898097945075565934557228676869594817571182602414385178861347493612029220006603018244625761903593967066282713055632535451400339561455367116929953686835092001756401775448193234382945791899806837489296313579482084328842941070428335192870229671236185618209101766500592267098113120189234152363114834699607208873306075052743347729536681413541797444364214346116743108669311590516727147452451599582566313579443677759407784871220892133261359847012380108883407872234404123104917175542288360778911559860556657962407969572174911313167669623099262932414139619358146375954133973126195080724223281073303551426193733939392694120476641379881911478591600796941548886603399298012240505289000670049942982835132076347125392247438615093134362727480649315554637261202092713256432377200536451435977400923420605990187360108078720661294425452363791883002019662888862933303187146940826824283741103493876837966205015040619190712605620180916349620871820033811116753101451884758635774562258581298407678087535303275669361812588115229460693997952761414656626280329621784623251648817167338722422779856140456914144251645576308470983429332475853129304370816096203887040459396879824642558168046991350658378479953573662757201799742732317861015937563624912542047412089355972393424406729535792991510684719758862513372540563329986281306051200121403431661879945929550766470566826339224458280030378474005602116602358743026245707939354261068657483319893922734684476464517303270626109882805663282570005198712016052617860925176139253127705396285189895348267047813104014687626461411813447749875890169810930732314348650455790605923575828932479905884313140575413779417555261018897514684479038326255983580677220484536399478999252921238275384828247302331901861913425894515025670756901764360961763500978787277661909933469994153093520707128144423038170635387894794319053616260397794166295673732840154582825295058445371102981468729536880552114996776342312955368479259813800612232300578349714621614970548790395577015223791975953879156579836781280775118764907140895283198229526619114475447471270395153048380676844969039347648830755256934113371770992175577795607653867456045007808569032566237728928495057346070831590086274150254383003956407587220379423433389196381295593493053059024743241792132044498019182066152470047274306437490479010480753215353286973349867420745232042930937431777882892282663485623257261267408050757979983474015684435141519421778112411743205593388404026345831194952830718721686478991075539935212943018869814175484076576647714836883065758293252953032252440809993768952649269757424426397721289703325911392537654029215388951519010934094452431948540696052615331448872827216406303411228480347253234859301423921643584404145832078924644870955682938543194886412135129567082607420375567509079561893649412716400172573925340230260985924976370683664472658219046454678704778906640317434168200812937883644028942114690292218049408302116965524752642591623233912178548594391704336960257029865750700010316969490515955760870848498487700105054090008644910308620873430118441821347153132797937993764901098642352032396759977121194024489987770007444482319145405368433689032215370253221653693695724338953507444337756087483423609939187347562755075985861960571329768664082028962745727956278944465723467801734947061366985794528807576486012725068500071909497727543295308742186663361977352489853690668110854996100579979871792836898071957071685909030996563270501580410391851515071606450907022314504991458137043379641545913866168877358989102218799710388572803217022336432323316479723990330213826479817053046594088833562661954588574732072415767725234798798205398599354838645508352042347911615226893135395381333344980462949741297531336572543364382386526146151404711113562437098997009009587507078481594488201700446289687737557420179472923007267156043301479749859668634781824517057994967025060302822171814562831919051231233663376918116325878191033362140810658298716250132524282407272992661558068228030305607295233243812135482452813515580698324243778249842323847536701089793814062230684436182873656144670110711868722004303784166449162711570554506968493836551670463107124414210749488964247848925831950338152762074952352297232627764666538860053824090355501060395917465068722589021749918403689353208183713934908613186887924267052665544713480748981822337487462680650067592375548663063617254975235691904717318477884510334187889082012218187073464026246373410053513964119225303398351217480439938697712232274316882080349076598096455887100787917481464370797202172909725400024590835729958156797968901827712643171001021352045146322248693902510819001768558922846702090204205208388440032219561056075367145101345615377340963327749699325240240061938311509338420935770794249986729485742853632239143154741103516831884778394207837545941304008188460869803068839337016235854269210307830890029654622119148809581023517578745169499456614206525199147579199174862472439411643917012527220683102181074758305136762755270530460002242385013905106092024254679767518527392405678682387267453626197352958692993227621982727914800283063936264356231987158649889260520004777642766355931240448621019902745576741346586346547882861781356941388314751522712758567622863486739076075837867739092848420144425583519193343356694083818430289041465447030685498876212968448070139793746955434323834721531197646692391324060744005593625026512554455736155550674259457704715370375157492735742194459406909794401278785681629537408218452800099793590057164097842292411713627142566332199356606781181232574774933051301692535230713029862122894631724590859086673353856330184261126446232388720114403903093913511522845515454834297212637938385363597915017450717582089878083278250387025259473587088886861566173706063757274677621811295268244916272236108154164885428554120213423434280001112107208866451582008836582850333553895892559693661364372177220186326844470557380133292557978366968001430616369061627496153283900717493599578164489903392948277052149864139992750670292963395462325640970929520887280019570841401933970425026697942758337857333515080497021974109795880986216960460019008227087690632225180389967825729796909604200144025739696892175799082563546843287193016098599038505888883347931510290762256302749529020379157257131915632020567284610609203376501022510121006572237198405113276837673099403269167055366949986607621864668636184544439477319178380797344162871212190331005725997537065682962016044290018271611612234790491283718017524980982240685704485414511525888690300318219288334635805793797959553871225026942882803388391335189226967789673438574674146778828973545377210608747754420885123634713951833936160006907221699333376461811701606954679825418872788329932897614560293968697855519586505221952210209826860341833665964936704405576759316875338478559266680973406828313001919280815453912179604492423878930877354511905804429984387323972699289401545635104077590272417764625553520801171351357137493167095158302015434028087479604179262354524687239560172094874088305841051283418008620326743621808111944305528769793923295547195722538300358216436787497085166629168665141500666610822281981993201423389696195873969989520843933728805636054067958110978394671344187765089715570990554808646635174242416963367167058585282294132343504263242154121319650375331347007263032796185643289383044223624808222398938451633212298975979247991625909145900614741370643125020884575084085995270391447338434545560243860651735545647839957539815702792683440797862595587483262727786831869998859378464868552847370110395425458794427958898952639995749132040208482083892344028865916868762711786786293624508918190413955354430627522294552052409205053460876696040755942619263331179430266723528608753051495752889581919069771041882020020902937625365485719816257612772787035500111382944820717167970863081491235182609128487876088481005426467691921962567520062469660720993387170465946368170006797804718434711192791759747414450444146384966749676882563924161150318353660911394682745033085980939236184605842461527320994060087142295908739329978782133556131195632889307952413160209370815234804547309226616351497503527007103159815771812731645476680543079043526662335324770055086065137230152293995708316254413364196010463903526553927400199515367824703395888739538016273064479156180675151641108257440091351111021766798333944899669073040050237608918814076389292671454502693944303471849607604622666010232573660477147556676053345649855036060944383431490745103876648563354085211694011100462358722021407199683973992755329502170269928140779925193412443793941650172240674925021183338882321078436231291221619561037190407632893633278682175896809313047138805490985223341871352212929203632035170350656617894926490114934774054833953814387481491280359825906235309437657241995141582952737151444368089684520466297008246992183176985245764676596260166622770938818222884388232483722214962527350042137273099808393090913167313276471530437572737853294959438239479552992124233645649920802673845504643457801609052742380573786475657480106112828864718125566240962477652505386323555467505003649624257837558977108542626516231454630027585301356236627965200089532624013583735232738010610913565914332622222704996663496034739337029028603943753706491866394996599557485698402953401583920410251819674357784480250609644853263323303585005993253582013220079204948286507526531075401741916598788175954435207240703929109271897928000564047547991280115243836713204422866143882660917896165078394338808792382270319945943944773625910629547919758662949742237529073493518711575960621430519772686866363534341048867415858146818490901513117035822284687515812618941774801073099798941421642887586998844766608236022025028949193890374314194865901745958355209743026300453228802621144209849398535370047157821381250651314405443320840728337422846221282498618315198757909470938441872023936582067012434033658600647606669873196371094919361116852042607005171465888513506065741355410083534972163789245270070055908013155932526065171911125115196411004776950523119142123673959218387538202933361277405342720316310246482552418143923642562350269731200946515990729874108815256103803093419665643480930396048324786718049818012021999334273705902554135005213311709193832205704300437172913152657768133740850712478140887950523331424959402562849152130615893954681058338536538952574229832791921886217712799084112198671864722334860823221590546888518691549360786737191260184108497294474382337358538299588162679753717433477342428386074710603668355792078398474815629234709312388063984429552729509365236023201258763183396225782711603161496796993012410190037646136976158294401945453291555469132315346709525480802893980653052074809280518033140027620524151734830741294071416425527507138968216175324620867476603938378349652955153500752593771615106823615588805962813446192356292085857135861741861709403472037565579878923137305270577398718895076454934065662800149463453316356812513948211457842857475309501672193410101620463205231066228244153065640835858623752147003675758904292354513853225674765878372137139185592847368879001701239215877530084863962316245663082514733292226508788229160251816031728521800342391565116010566560752666765978697362745947080728344758003735368646512810972571694285896710381871954901107977594314665486651223074978242103549086841984236866758450417631611088061184427799112770782795792222755325776342805155626503185128275898520883415104580856913029183828842016553168327139458208600907543715817509814554510650400365579014559018331978851949506830291428338662701848192281105148037979447975037332172356092129635045571568308193248753059096463879886546072137889355443677124932728429615837030480575760617398098835672522815961422588260084224096203255200828196710095102177294249234777112729988838319630188175115300577558938443030165667084144831113998128417160024031423996508620852447364148186935857137304653244600822617923001828591470604256721899746939014480374322976769300060343757161574554241401284385587032735377436904536175254757928309757052769790228958253282828876002667280363705986135323640760927557713611120634780461591247186855790014330964301436805218401326601348312584232283553740759898430521799592702041214139842255193444627234787768166623570358090330366241518436301171036240403195409174176690543950308827411690169425549276839025443356107258331512099037943997388739680099070842038168499714554592617413831598233324029452178037716670405726040199995727124398915780620047788374912320888987015378865234745435653704481248053211640330972506468536308250875073581023120545870249624513082254040367944138932504500722792531399988889381247857156866706560566853946343184852765142323803417417669457076428017373013259006576058058727841150894034122212022750418262631990272821208157197681816045020836776934168662657110713071998379978992908231227128324551572845735374229582694182490641125097780885774305706358993626313128849864168409195847202471620397996223297891342570119268003342163115103617341129850954000955788165727768171811477859847054732001862564341612005502991010475988244355342718787247696047646577130039651071689208712354477741845198403688259531540256864618321848181582559274640080504466556001827534126740039294789296190659174925822045197604398670149020156521340048368813851137261604638435688345153452300673118337910689336319926009636564268673474000551023036817837192756859452508176355758663418500706020161085746344632957229254704642681150649225652783844802239296992475315677041230316968988170327924352224505271075554098738722011629833970903437246867674250322116171587844200096935172815416698326002245639767000683173401145943559433482922430240465837442511225521660254745761630357296801307444700546981733633136921170437985161489517413272231622284258936477550830631252927495201039885476743113643530769249934162705374186724556229286603744337070897831528553523214916431098693911035756226246554719705601318911470629547930111670534505822729049632647008817433242100376981292040007501965359604771329733807075528303803229810018458792560901169470851314020593082962560608307755135940785369227088334762011596570974115333566970859234466360221125408903524125228743328212338920346330369540322985302804299973590552498389083790260637225799284777633490425128051070389286228439058336061728733518637543935143535852092332780547124121051212544168674596578119410305876485635963802167308385318062026111336396354695814012103479456541447611184641356531230012174736732241451015711081483945734038459922917547196367925190001441180423219044339784968574576503393562897748302603966194925933195111219930072379769850202993923812049145156557530380883209995490081183669573096724207956516287008691122101157379580480037067424703419042727542017489178060432155038727319197427001769626069077053413840297043425122265913209979613331471243757419427287174863634913806788467289466169625663370408309666835675775738648449236113734208150134755817689830819995801449163986937466612251835420023065027150252395671496180445026800039252970072174492758175297650220022704947103221647666024341561651151853641431928078634520372574321543447707546796526629589525255488848004815817373597448284256517819653049994566042176900752864695764552213849193482639933762517108821028559994595727060489631185137528436861945439377490831905852314272233007563044023308096640783834611788778344329769339600343131403595932098884854098387161425279639653785423543158367342035870030113234027031771477330543427415643652477582435021919424514527131092337641644784129736619187370324596321715847064773992696023744055585886189914740524287199419468279744542724186064938847123441237007694095685358783467453774985457521223282816555109299992394800700475007529046960679681914642030309845182652204040372204519539478818080227333109362226897117624878433958340498344255239854514936482743330964840633254828769572896445251985437528661478234523410758600595595239793522130248089591483610861841792683215339677406616185147999020728220150909970708536168441235083537143919738360796050992325300785312941517153231115789672132620646680708854337758973905191292056492170374365837467295729259782249120928968703439889310261757965339236807981272530960917822025211841052861055951757512267561091517271881766188526019184019691205257470449445044017046987896127164125401194910414631440149452462939564092365550887141808184262653709118511086979752467198285403504529842652081010847634959741335156098919017103818849460064169048655503672960598249585458749064415984910930164245353692397700028011871201554034416408457779916715768937003831811608626428271297410582765904755254875801697114332080131985067011543788861505149033069082235606812320423502115125797221278896484093520407886549113191658263126125987427122186669944784958707184676954262910415900696885167961269450914202984982516904148536205091362638485506106028070590324080601002454963068600631530609163556397039153002799561855054017289342779982041428965962844404337618462634265711777264629614078572055243099645581263789268197211679114683659154138790114365999639449653585192559082596638633460415765618434297193655211726541966445079515101506990581624853489072093182766049967057606426978869544197325992450387012898656865799963394106270756761792544154640682413675368031618942504586007734074555756297571390479353897705967918314821073572234220826896897102990790115032517831891759643704738548899793265146195273993576658003609677403991948589942721668398429499851150089597966413547729608722037306199881931359728964909574791295121315675172992767463270020929369209774199734634358812199218058656539180636025527291242975282579146933997961662026580869731668636954987692575477337490014731219438166448830038711262377075429432690488444124324824270781670647349258311390438365942983952556547643767907419062542812845673587591651316085994933008099220840125872425037873274624572367127756236207427967973223539025064881751613210387213338506349857981744763226907062007986062059158106834427218452420462303429088354612449816998344451472671454105400566289754192829765583920030421255022486352295268178177931086908080628608625383466764871877151131651873412940947047245085230694900513331349827709556168708148319788442276880657430650212932197080768439794789777540618974029927418711513812656008408936850851699117133008765451528832362385310746068706063020863315284417238809400115680983247427445612427983001376599531336058844691657299158415071559082291769702571558495674077517978579077109753867652313755053995749659230933775098392015329913255669624461483835214351717671485118843916077997198203136777743724996504345404819802250072227867400090870827213998499760216794937201762111882609373294907886990248596761874889813955055969773495594596372041050805238591383552346566670721529464737558758618361590240437454455987414377076102376290003966971682685975166861348893754825667431242603362852855141799871059409113894677540947093677534644147592860120002726608725709439899918896631878045849986221815757572245930869081789603842735329655934959683852790030118264613562797316661781231801534479883478630731862775001004564935982586862519889572648725894176986513144310797710675658749393083915803459444058717159491686855818431189995014516295206955824909992053152635143884876069910640783485143264188677218025758697706777320397957678327774027760410335385246095271737965361699347920464389125062363027127254106826590746374325780980795494405124100854332967948940767766603693709595565260394922152189592643677738519882482714009051754906823031091779499208741863128997551154977777420112010518202265056766084577539345954924707256512287241058821098611528393018753467292910414366210303897882325133627584742944485415119626941787891348063362623276135701014059690935149796213156500691215695206837199938851690338571746626745565498279981829728685318807214659939650133342266795550990565470749168264002868006709600663350272925008855558943085172254100275281698937442477816813591008275571704298223104032944027797976231675739084777732607257410487584444035837876102753965997953361850736746342654296864327440963371897481449254928633018199056893583478849774818376087202851165794022478766242116695633973269668684286253914679599470698164514941361406257680221609226590266690579480355021272284750452937053158056604851520813687915194690110157182169148560517709997951824530044873374498462561393788601838518802203326958425705301922415574253793776549153877695046574414798728360420631718951900877346391541712114305637201305235059494318952892873704128767492599070600033512363003152552846988648605390166885169983929288123651455270750944415956461921822067160451870089274439857208137881960814106658699740422150908932517162334838972562867499562148136918574486330244469937338000017997960356525735346083713229832578189250317176415136416532089228003529244430413185718395930244425145740920950513600829375035479118895146289898813617229390398934761713046786575400915791605427980054393148965401857963453510948793006115409564419311017754428484411346015808602246643675473813882413765283214995479864659044761833230490973029935997154629515161778905764088558063740467762923651081077570717501440439971811950039244612064983969859090752029524066616015912084773891906480376229386306667076052433701711629601061336255488305272028749680051793984371681973333730328349426595068599586413211453947322511120763309615860741859465635639287519749922329294863220097602904237819465777558076791346632004911946201415173884979417133423001617579687572164348291668635320499133859705800385046266579436192883320352549247523807626931676376192571785594910049826579579670685125837751685146260331549865979390288400168590629731017992874946581080706928814171660019200671287397735055880820797768537797306694024178047287942071871753197705849533004089005965770605811162550187105118392319007920213246137927144204474374992752670844643192437749887679464863278811755024432990987093940889622188177215247068556808190198474951079073191875162537977608416167855688088401620176503953182049432348294758564825600644378240078437976985667466282451932335322738664025891712044284251093875038494470584112452994472041510695009459526739791111980199786305677974603211721462010942008391212109769541266587146680592110831698420288349709765973064312476227544865829053746899083839591863035030990400055021608496294058420536102651628394059365417543447295774780742480270695571976224106937978744960979735809547180509079872091219852448155519455439104839274507163114616932889887149408913054831457204197049316065176585411317592381896190071285027862112076623950306391246583433208744845133205758168188723278063499164901492582307092402637293903807929766300209498713150578289198763986112814674183347762631615360044755765642920988085344569999187449033483274429761452967947417797421633218471054713987831530064784283865362428887419520124195661721911682329323120409628476483141414566852553197500758235207743868790634198471002981294239511384536708834122946724595390966560417114920569211293766313618244022692100557187249844370485485396049084470523573516585028310433988524997500168885409916821137765490507586470991512240650269688189662002981915841452801287321569374011196937888135015118981067775076725071958584232768340436400948359747501569954370210251385626977364315651446304051210146701185347783246739713452243525431115559088246558075976389985561054975172204816186410070122619843335117297698036494043758220134671176674452323936630502538638699873830176385713563807995146233915853345096020014657162511411657178896590697889364316974847717727324776609752429757090882478555320427751867581778917282233870916936285820342203333747130662974918471159266965285496706730486629420330042942796112094363130978830959680304628696157097714572963334615126118461619621540683178284885062402867846930701305363641711948633952864121890545687363181711805856721209122404223747264832151362467653565149434497814400010370411828175650818772621502541381389565838696991947384053856796848691147637333830809984085552585579073007861552454282463681195742737445838621621518261265874521943658738529447432680241876326346952717220436409616774169552741456256600813867921815943846536389449003286319698201177142341744101317186729443189848023304866741337147548765297420046424561843580214147511073182773172177590031271226681839292532681988789175933929482446017539933749410253897025059395124102315905523711777065839532013751927856241200858005161597898496474444406441416156279929960599342740243087978653189750244340812984519946727626189531105326106681547138245805202591312656161171807705161789124715409533216272830077623132429182411598655475764764298845772413047663045657683615683724284534383953403299457531034307700297408248234697642743701995348005196666137579483676259436523333348579669457551033993709653714804502136199252989111113639509369010097320597321586744475461965836482305449603263634097371341796112040657313383482450372680762537626964649798758291818123958992120042096770712543350761947637143791398256057861633355151730942285506524863347057755752006298713903542043022993892379011218237326981977492890509682676588526914068725754997646187938452642341447098087958648614238149100955140710953289718265364872097389137498206151200376970654691536851989586064576859329266585148263778881689187085121983189452746230878575134535395533930435729077731427541988267180836388612976404020386331034159162443000565673835510661095365658479060048412341326389243887686605298231558540843006849859839913634866387615213292503702628343400368680113435894144113504574823064601371473062863805282212835917089125245296303363097237473064505470277286700906099744206030211649847168713056360221391626487539203385771003283361619003566271125172254371915524446943191421816563897198761325280110365745849211064979561603347508663189693918869666453099306088342796778716146935340006550097907268931676148494061404279656905977307804898750972660505607681859448062141771308747162735334170827188226832722420511068771720021520945648300004733340043373797673160256850282195486431838763695627921649225627533070634849182852525676345243295598866841147719647359402674956546990880329650102060320111630977764203035742144119491729591436380823870912651906106658917393956129849759822448796039739622626204920571894733340806957751293345236573947074273801919669030390080297209897167827615304512397029423301833070031444421081047076220321611024354132344928679895528744280348895718003260774291349231777740412764821261125511922091265100330555551385718226912385418473255051511059364255623897100193879526110624969470646891016238203953800106973554254931269631960050626748339859091028644419883062500502293713734862417761151365067137058602583543463304245921030759517408688822205368051479511624705921836923834181183074269949736562256854212020746963020054048506209376726936233753571998752395106291053625589852315272195034533777694428151086937653674451762048725195523827165503845069546166473190113903879606438529933903622440088585672986156335551620881966703125026121095281039467761570796842218666752517559809730465816213921555473005926719848475755500173138976982762161425912482095939617511007283408724368863435705545397440915384630263389692623287738022210624878470542410435532248642489462050289380319510853543774054438708977596634892030028510497339001147061033951985343850430195129655159644990482076940947959046612195424314754606527935693324064153772827393475351276930672151999819847368840119302820394457384891996123505715783338569684888074845624717275905596945679864621556128900906444957899035744249150246897892727861363841952452446296638417642770912596159295764720885144237605560662688890261063348086041626235210432184838776088581061451197324578759895090488362177828543743951746985477747832525898936268256488952972646267071604812249756891856265784856118070861500048418340746633590681426363936442596033514581457120161542495690347000597546332594957137014354232453680271712376765562841153951775137621090781040083292032960442457712926953307510748541453766037626090610544841958024119144068549760592591771892977626675347488170318112901445888188380864886669701100884244619201905169421230989613093775467042477053576400580272807504291545647525915253268515304396106849532656184130894958226843068673478322713309762643388382658595104350125632072100756187159051099786766452776935202729470797562237498329831517490132867852372075738592903042862998745033072678275248997497523993480870068183077663253808834255616209609050541702949328629269013869354802280541103120954409258108113863358805453416013945164523232865730741016926901709514389594395743645406239877126187041463509592523980179100002014370398097707202561913757622444758535856404702113384384345573936995866861727837854110321542019689011803262897033316252222215783709342782609633019768685411526582400340242756059117314371294153974896053451888042317302277872916900184781108928336213657322746288769492216302479342043734332907107306964448368702133042993793356954547151612988112405410059093806823721676353182327066006536296536723595408625976845758881201667466086326553659003561794540327016888959007587663816530874886788430700239082086289697031672734516987043203916914406533435694991976532611509183218911043319104518282979632598157393630938197586256417225710698785439232284708896537491294942493048103647298786322193889510266335178601693899832186709159450269176179352124398988054067491469918740063354355138887969957575041169342177732473659006408179609778950237584571037715747578373525580042282373736603549687858212148665847128862807578109973677292239918469856589344889620000757692204857217261646248462950848461902048693348387643928307385347427991358981295163513700640189099433223712930406058561059777030944105167068107792846757947710313634592429001894608815955605357322080428577841808357566429542361047112670409682554003753292244153368762698725585367460266925956602987716527299441642549322123526302013273415349996767309878871412169190726671820286620567520078199447998771453825205320400555710641520748344007241809659061377623622823389825049626913282556620163479840654056583731787093016513620032592108713531387444818337058668957390909784780486303101820919747691841574431475353611016732819104082221067538896150644153634922757407595329807397665048044088905255271148727188438275234053635671538127912684419483924585456831885055836456669140620811375173361481373209131495975865961060170995514195118504933524452790297647929491853556849130770755555556535990399498466374338686238822324366024856934561855585738548425458166385917603954743253132221517682898243826747464000800216064541443661444343970156793584912045940074706228498406415697887415891034213340364148856494836412816886659987658127774979654362708438863229938252518334294793369669504384697821701161666996700339437373798350551121891541862401951832565804746476775146194720358554693817443955526962526355693447720134907007633538405853501269708194927875773453744608773338874731962713341512523460983758311991490557934130329297077890858140203848478566319560621877240055169239976053770729070181836470061179805633067183781880772462862106935657086095094798802627758463898050439783783554159984565387462564096515170642002742108712336820111099275001354793435063722213824484069147966748448534919143531790436684126480720254558013590654756403768154938758642675246878963600562590542301269348372367050240652043640647858183041370153720615232676055214982950346233761060772807251172899868276810792070305830562908564421311728502341174122554210215706220434646908914405654054822768629834598266256978557502646153729561689123208882029378133546780663550296153665900737967508411559645977923237251980347625048092947042924678378118560845080545101781394497289744401725646251847839177204719176672659024641528180173978002165210584075292571800745379099653222470517068579233949838035233866232806903437313203547474811588629753075524186579457732203192081774827627123240654194741052670856954913998627241804845322664358062231333089556332692576914014883368848662882509765346485306251076119519310499774784100703080715939394013649579562953526641655169780514534483250032800533667305421001443537671654120300671358482157958847574541857873780150133498362212968676242467446978071632022319970702390675581598768517544740305339993762903833726219362943597974830234199009822399537973087757549073714537506022645891991719634108384854174549120794867730751526999045076744497542509058930159011936168821077211775293232908963841066800170365016846574073074879072511955529952217532537412729405337739205598228194302443821132356390905930041511611630912584076487299926006347778020154433127794637365930368557349850386221768332267982047787924550838418786747816332638825076904751793087344902119371062883812360879979074618605509603988969376168888277863531626028319743939612757731947027546102582093310220132991145646740120918794616229812415805963124022146170370564035857844914172417259726137362786774503167082361925319345950567655710898184554242556323655187823920138695106833611923430368093822007178560153198300948121346103435729232831118344115568606038337378433540176276707110881961737143179950373003464696506650720969897474432543915072837950344377618439144792463352108472181581091969912821393940897767088393366937753259901594715427373859467537318449083070071366137665623117298890364634951806874240705065553862577333431383859845770051252182092431261886774550064478690175733470812960216027315588050310299321028076758671471726833100209514879248037287234252682391342073737075084078826809524423331922787119825455733565273194932961820941709769641276312367549958466506690386828271276978910972334129708488291859611932976195994893645249811608424106445523617613021681313746174779512485019726233361212277864975134610179352697674301859180057712122679989911509558990698321104439019189394266271708471804762152658273128829911869305645720633987851852440592154941507654148940816196685249522341657068390883378597691065600174450492337527393817367073745091077078491044597271823558162821097495247710472766451305609580207254950567857921278280922328442716126189453532976009763710817434063921429402652015170323060698878627183219695700175589314463085693551969165517545394401533042921716336577054449362617079856977885500840758246982229341588147514468786781597957396814300545912170105283262610461016747965421506082147640119981441528371147937064505956775946237319334497965199831523141005105320442035914129808668850135358875001691739549553230092779949509571411527742647574084487837656363802182590136513625597242233886293829611438060236051474706934662489432962506843853526082145443843141261722757356700508389782997650213486453218539388460901476644519777131637581626012585056187999414018070583452100870895062123127017056772758061984500435896871493000133997728158787454960619479476367642953986511036116925060084206973936319255978608875274781519044645644901846493804578218975930164870876418734695451585151941769795590674995579339744854434488641958125631818627841678918153303226206555685915681915783108964285895931899907191540635501136894840289972216699634200160423776987219071775348060534828067994345355802369340722178582369458709476551833472886853286661894901531295307454791738609783346979660784654264981072420408259401097251061952829106836899584237534513219069196294669408511507239651934540570905932391677956394223283666473877089127693475832707829402706382401244375584624578072351723958314350273328185210456751059296099946504034788007279547152382060589116146843020864533928787872479531769895131155411067932210047127589965565125683759401203584157634313348707920180388054097457088453624977605885196763049112316909712953823207828085259392101712151319658315412829082245981555922490004117646302591164946621184816891460630370342038921241276727739418394862550733887150433677647758852505389344972534562570247424189451333058761045218206168135089136201532758682582380557557842867304457804230853586425435198398603038824084752859321740805254339453917362454411048273684211962593177950710841034387593686380341858795124516731310192240244949499817446382094673365824936844032196157118471791569096660133267892078893946091262362782938653842941645466227612161363917057881017467628017407354049889455830840892326173162065582343790788218496570809395979084337760391267312486774689426179528584456851716153825125691439244005565742232869094048199502792377354166407887139797577727446853521662412003316800273797841054351450840643220491156653490275669898273908038708307227945660303516198822928970849391404686547715550298086416390816365550868206299940990859434267391728750966183512528551650424979089623174555273348584513984634730331256322630964592664990221741427361910576124195966165176828974819409892581151653491424825291558664494969622250531752981431241376737288659803717928663331106283831536435114247446822435452586438968158560630833415723427901721675102642905947108997984937573669996828170116317910563965623864349067234477213320477740865664749060320650398748092929460847314875058914330414543671118094025442047392384210400176490128404517766521011929520226085686529547316215597555476998074633529159599263217235490290478599942364522097449507505721660490153828329761576349983365192482343128726405683495912172882812284027325108442898756335093781604792261880091184252469294221563131583581779760023353006297193684926713427616107109064779342569212731839292726851945389583293813242308310613158933187043910030605516470807008102337002357679591225620528043271751308520946420294894237313181817649621707142167583326653221586758794616642096693416154622501228868416080239729418327363769217957329500661087284086096658832147483262170946820576208473347708867351072473218648218627333571407993513600751707819571880860703126549871989969629512385875252722507263008028782427885567127277634192337185895019987901325811105578926496226933045794920523380176011927683151668932211168907124495640415361576144126673271781178014067195172666190066032827090747955005156791867434562816881953724450733524028507086576806797103893161516332488972112024006919223956027747028080055899508124958372825522560736948051619768341374660087355824938557392649151128055729801769530424393781215322717905350215020081348574978683622853492411089457447135019236365654307402038115174647393231039872128084873138449052278760054323370322840521637671843263928531342186747204044425001666106202395189593097200169218550174450307620831646434074490220372979926861349693595664636515348255178935155576655953759662676459235528053261265511119630005213610139265145053365327554738516006698095118358758802347123365191684183284415217340600921562821328645142091974019155630049092903772098282969891340609073758479384854095045609896690993434772964565705679069438959413151812974404758585823570721585894750006439179566876355892991792394858613149372565402031231701891623978746201573328632380464516688728885412287165741348244726177343707852436816997652379009108210867103867968650329209077987347852561935726942903462299419200982674040478209068489144891098612526894456597574211539253741911884539117840088418768619315141809322250048212170088947222688055812418871195737459339319387922428048889672529712079162866851587761305247671915863345992928039585569222378652973949692902791954123668506442398216887803683339446315388067386321006258748526740947382640125347305283048770852720406507035076255775341891361601723470331381908494391005340716778030241614854532517586525198836039872261076997471894496106018500943164764282305140104040125657990553136144877638242105936864755559564759674210898063209352248822678412951789504919802544906503379786780425686558743510699811027780950388043914941170614087160998589781291414317371301674042670615085239706320129184012992667102143707950996555446713420355465577161862488575862068112387195279362834777428798334941435876413985735738657114019717318894405576697092834144188112599927581968753827656489290628285032672051353077225427479809648681484375424292112135933788150586204604174321270585624869977306105837290545009230515690014468385613063763079084879014112491865723958460209199174038453556394567372319774156592427287671906813477649913004936404939261551923228801494274407045190696472732159939126709138496132792739185108629537062575787020615068770223484956081788288227866594353603776809931220255402461154299525493816826443894917688852792648682100692175901817960678848551501846762273561550698077795661613800993398759845123016676594761698968284049516454244265023186888615395868690894016262041493507739827208798573349078720567933249490066467718962096858110889231721520296891967115713157684027335919271378644306109057286084254956762947716065343833750943352510515981069642306315433582968562995056237235191748977374871209362710364873530846383275424906947488692249877395183449691597387986133777595992861718669702966904896378818440367133431769939012765556658277146107965561235846287814448047947760942656767012821893312861019544600639100634935391983521151183895753155542779039970778460335729801296023807898673884519447547238749495165374932042091661822437321236052625075420762122320401862066034959721647920609455246098294697549666189124174615342150942900732718263267637555793728488092251066262591484028930736247994604477750157965653662071962109829912347196173834761320316547672761429597700407220603287623137651091996023289817475698453549880314538274545702478782480070578627816045116989294973180629436186484612829564068930397666251721970936172539420390868555022220525396549738669411252026818740818948351630639622751235753594494630122384136757884271128805032275551425008808436259225490742498421233659787772341685692131851742806999427310237334672338620344364036257070871332301608096987448784080221064703355930929121411358446993045722771350153225988407272829962551945956986133173538373856866895066512187289936910117018028381904671851220684167865096977982334105384993038836939121625834981097648960457036236605520156592004291788477868328711637020704330435129034011175836212579066394966123455005121956918896304714572025501498489753641480971645140335797317571009494743841407871612168789567150500489528793439507135664173313781914281443679373058622127015001794899560261119455221698080893880556044668032052250580627327054626698640600812382468776970939451773398117035099043056649929520031586905432832812126824816210689094945014309400260359752024136040036617254313160832002863689638550377833519678173083263717597035050902984670169921495959467314181637789860169664744475066667663765218022438643823552146384747198608705905080540882231854494813808078055966364233070176169748595751450547296319498709588802162310082082352458839846734399216699126042533441475841471116704655038728658441978691397934906346248859606383538387656901681019390460000098808706423880042174078661216608386591667083064162369386171948384437837548666506336817990327738743741518315046594514500894633574134740167655465526830512492341986071453830191029628723282394769838878112909558341494842662372084138286924418228515015920124492612300044143297313056240532658210962860204477069796437105967770385939151719338850174069790549093620137371066354098036806818646743931861681510277199411394937796710156056753214434650412433391430512733160418760361941894472352130161206687216679060365074537546494997371415173162275564615047884906035964167003609851743053936958863702828203880924033238705210006353987347624464545487364160040866302058630898622867132797198066856155289183427031621902219174655576428788102474328673919040554755866260007163780056515799033807787131847689901218674119181759312212723870503751413889414910194716839006587445750429110472021725286631006634544250555300566339093329598410395474856475338994869448191629646562750102731501673731716100025574396616101734629174080675489730029671159600659537573721613204391469044253877035700007789064293659979366413829959584138211042991465748709287665133458371305918361470417138947638326009052634752989950382327421373687500904870740661617175533603664508969584183192026168094817852833571994344964862471338698044813827018815581078123496350793956726071975326614059580837911858425204128348030004281065116258457280136701432440289986492168072491412023489495088373622553465309027169772993846285458412252316217365762665309380014060308202527232240733820204231632782687747054845471418883149632638652710108752804423271360171026081874470579684647110516119775699199492709511179847376714965722230906762140016212932341040933767569800493084829954705135896679229129049339338646560394765595784075039297001105873323069523965756597979175994278276436853792928420099794526605691139654128416358866160922292253501571083158990663188292839926467291978971280106656627241392948723812540792664652168793093162908410727445649522592126384011083906589211173096370018844428575907158878031951565697480732556612153183767217151426500157468871006119777890937170331954803764994295516523644536232954348602629517089070274758439831854638125348506358593539898413280784202498812055856268174223633704589823202808227762906154743086190087413678939115430482210120296127874912768321453602557173482231747911807859016748818817369445485208046350832692805180933129038930307187955781113714369915158196659554610620331514141684572679144151833115743661835046085709958981079761839884848231516468972250712584017838226523401690413656134237010390654900110178589155050443764614051802687461231819842198911607226961020000028149256514321877153559664807497574833075140932251828762823051838671276541965906510585639481382282059659171411086076788704154382754358290291234899179728872217740345149409321052440555963433118303477545872965889851094131552754763368481775561247019532006660179475660114951768151509211501448259940863925811523595730134423522652682315440263667461506080167600844652912953659738143881323770101657302628830085622005845677479215224756868193910384369505301257601749892303615373882411556249558425335662440911458148899944983796028411198348042538130049949924540036455636712719592323788155087332347952202336982051009583936298094403759701880059016201178256583117269271867050235651989245518286393786591983343602314482219946149295942632980904411314078832055208784464405897319524166921895505363877086628616468200836853427440644727492946457797248091492825515084627179508320520085031493054159193923093271674630586436224003622330718058950193843026106335576217736649841497197563083806548642404623366106171087066877928784416298875730463029687408089626532780291998046300725831287190812048332909220972111109869741767322235904666317089507407454938704621646818176083411234208056330161330438441777024416348505005206471202797217637710992164784844039723603583070579429246689481963476532949418669875760443174017574550779386958454639867505374858528546104413587874748078142928444470009107272303144131262282702063851350370794208677698195238347707858463892130901409172616166872494458558817458884656192082123848475782186176083107570841196356328565178534751336266289301213321911965099371056769672102228277864409486002401114949656251177883714327225144514587866581542702322253301273452163052205238791440239731489182971865054629376110631616970061936595743075772227211056442036845258580061705837056427237678359729535719740886306178328176373092173100858974870244261416932969380096354284995145448780223945194708642898756720726533855060882948259743516165006132923589214480620259040036903278507681501178852975496046669455181869552747366661698244203320212855032789407060242485232655399976345188446509631832033701303036230878487423253586704265141082771582661795942485656445695312439888052031248957495869036038594896225834648997079927135568950731526760675879144154210792075600488152007927188040616575757387188474011301596014382181153551077667866108063317439767851964705424625928794479991855070846709901088556762588832287479997757611124175254979334000945673264832549753894023591971373192160300050017116342434957044267103313937406450062447876572305516150739452486208326445611151876680429240387455876251349862069843472179004036577210586059156700168351719247726968573596517137585392088079057765256341157736805885067075111984752120700084890521072117743104287195031512919250421267793683471902376882999287748553610818468449167592480795389234104766105300112574775281042026259561074170459575129018610562789412934824662553992673978437358896740568475388525663333143076929520310513436366134073732414302831090201813860014111370526252601616791799029802145677765131934187487902100696020144890044434962869890200169138967886801080369852067942049932546957032566593709848045500549246027736039036199686094405354134685914544184946520622104571224737148868063787305767955337627938767975135006045067322005445913191985563629412550158116651030964890267458094711612135491389183855689308192833247655450464126584580983702125021651139619948335601452413202624011149219667238078566420539819319301318044398713469197100659329406304545147441835123783096927231110915113682575728203864859440016607143307887608596548492042531908464645995502369369760952260493721312588386327601209620922899676304346189812100273117225278222549605930564519666359771003469940953476283328410473500841873806549603022488271421244016233757875342801327152025044552181955512371887010302931904417892259412640724295759888860256092442419847226947298091578021066271007882137729267536623615909479794302682317131630317364758096298985921632120387705500036956509206172407351584584799547125794578843610672978583049129912691923659590488358932016723015862696687482849112595587178649253625640743114022861776627611061261754975192477208164665173250331891948958988461872016341528133083364645336030648259669820591332940903820365953710577967336154358621004856560803404010216126454703803892084010107207619076668520483251975723289684936865154799929412157945652848426572898844682990327291487799039038928948850262831850555786905638289444069694291903046244823203626259032185717839189762776612890996597763769090295668839135023824181655170301205991260238104144945188048149020059451806573827618284420724254256285452720233584742143707589657936700277513975016611888791430245772682120362328193805029749065134089323681464249086523621819705628304793576037171704081230780382944095994080018535354633753290977043990376135301563265127761779204292358549822346573480427021176301279404813458586340509979150624240756016183748657400482576000531946141744880568799447717015078292888028179219385827472210950589472092510173801565279654193511265365295574566265879188241594047439186052806965996695466805476393923476328279730549118574917933442740529394334280506496285462155975303527957466515353015021145077972396409208201693828897823804727024225214028251113724174014094397078978095030228126161107497417927380334166716044930310148853822486157667794403706105735241141940756284518175462588400716847969696406053070686689138446951532451490797008446015888625123792462757524930044703323914676679501900474795935501106630657087853090346012978190219155802451563494684047623773129619045773818767864668860937343236074697743282984921598359186817953415898954989609420869275090554041189562621266218809931667645510917125489711678542117129791029339101113659203597210707045778047333254742437863624926934214164782919063037544479421471574299084381608726225096026814015455737402577167090818513099431671673934816069702690793558805027132471997512006891238351434855409151803551385675248906135741031755947080626945664291543720316663297756192495649879473119429292830717599731359073568280597599429068156426228421143675197132075849515057296570842531494298169237876989602346184613175347090671050310518275048323338470530395021127456162523222358252463603105142807296896775278006373518474874437049637467793179494710299136577823721525034766072387543023917132434322776720255530661409233207078870680252000462069374998122719725274848330055937634671147427921167506462527307880901232818556301938812293015895346955036692055998228520329288862413973149620405718333354269490154320128500356841918302812619792283446972094445222075380135694788059434135423688186404792455088664198694661939474306312727732328947827297525401866047301580014107112316254276575360738563096386386746118509383336913288437445477207565396313876928229836290658152159904975834347184105747265797701812476487163887281932545277816032616613744099102153865101239394237997433597756550830960615460403985388949421209441723760957330351063772192865915365461860177669356033746986523195490483781128446346502050608396939698116611530125181206201578723232784156856893685057486090928180887372840548206838661346873931475689429806571216064363994713019193905224580179213136319470671929619221875915597458305840258781341225363919182229195440979071922587013032470220224737093685302177419309864401526528178263904715610747216050597908738775073016284318753659846489913720900357175574277772672028498249088751838618555364036423695207915358100715510598785385177188451394127435010264732182641878274698516169713348076921529632717243816726634143650795763881930952656525927380809701495181426270343222056486608477118409029497007860743084987485144494640969647472063997079706167237580532284352172966841777804971623127897536800365094242055518041260189165226107021568223631715216735238121049459732607462053347759220234673980325963290324178982402217823257140371579564450936177762860030276982868922019103507337898910008348097596752842769205739753599547124381068131250434295172475366731523140672388630776382919710343710868982539366267117257497023622740437524952503799292555928383323176867290823908537270133261512696000304926806071595478155341158495190796727177101192866211142973161696997259742646221545822636352186884830934049629172111122045641315210790367259024720405460510363728127970351017738830414276236332324903611945391519810827928853910318485680585910166492575699543588026303605680622458838991732013807455612698455800301886142368594806845752188035204844109735993143748488353110723658969183813636084614681885339067021537417020894647016035956237322554705613852232812070917618124474319932883986369710311112593611267520597400490592030991387305957589773647456874514535389318003430521466355170512282991979273056968373159506188742936911992750331803667284342326709303426220565411396346568108769904079194325944963825378141191391249082786976605053755753672557469509241233681151302867419450232681355091947838169057641844081649212978848320938565685846859589526257140419514831098990292968662506233248723772493106388634552357209698455083909181859852861493054497900894446528090726297265865227004515953176873556741394614458202230898875238007041293484939896675970271597678950720775001593700336641551648007882526454772151462696471699471033436236600723934008737804444131759131719439826550467680453321817169296355537664685991137730005463509521247062669825266504697881956929238659350714888544564254539336226521265887775860575968445079427426231041739838598160475629350999864786482690347961026698290465973391194464534352054063440257875056204361145894365155677314421100870335604006638400833399329613829134529265297325004251461478238177418891160182182212338679939816480897189998231763590699089785782958180588048957876048735509157024381567057731937980316855725950616155788536357437723576503964793820216200912851889809005007533689213760212739762284274799475580303943042923037818941089703881390399972262943033335253503516274664573822933007500917970999949376759539019380644881695297021358525156803994116732293279203173480929895297276807691189409754009265287272790152680561711845134616097999968196308279854262024516175004273648799869744732395187517148324673205848497162978026909576672526417186653343880887513259841420307575071717783913233095199145564015349408808752234709237188225377793806664111256302944920962068461904348060471797592360400531038708315166653804500914325425842389353143606387812479185699829327585707906191111042894365580244432919903220447032705421009992989231161872081571474483050589673118014772947384961546805536856945273889875443928802387229045651089566754855522319921248479868647029633863386040576882368992857778016345404487305128667251724543081497723135982614546819118959420952437069658107558345826801796492437750657296466830635686679963189094035955740262574750066852205207482133876447221193221607795382660117757441258284314158531010176431024146096638596145848757739218364157515952184308792462831753487615251801763105419720367353612906580200556137497452240258963969246935860405013215881807658104928510828874003474156729206807821551374881001101211573293734723548527696282965664116393790138800443352605509489712387939564931147382811053845384546310855928472887281468790470905288489583949263187557903851058979027279506928704655122538881846169249998820097402727069159112316559137751322981079997426578421283072504414762526173176034081256738943995478094852985117781880175215488811174729125949571770172081221121134494073979318007036972355502686309085887270272072536973187682925302309432345751064999926051733277955068094455922782941900242719752081150402487308988261680570017278890943815006613429601065973686510755817588540170478781544196998157347014436323156943880822682061105836262006361410822821959812788312458198388567463152128660538113472932071266229502119150486079171810800059053864211220634678835476905002390982948468708710688716091537523185110169144818828840973776667138404965470574062417145914303269565470542986099048377985753344145496331566100820997146326822586397078820199888184173586627691059767397281981161126758614418334936497786077841008171969327072618456317844287504671515067282901069841663681038715026496086148210838253528745898857685582366496507902171156837846254605433873354790695337345291934410598796778356358746122783225271480599252603174751361813457425610523332205235802199513621729564711896458177534232399874434762500164474224551418862450547914647126605152324697311175791935205949737772675747729988222257841615706263959307815965969576403672595690880566280601351722827132302243204585835380113248300596757524888303107443740284053472341405679529794512378878486039449860395263703793821164594880860346422958560467626336827401707833212012894703629084296521554161666318193287545102190092970514764836589804821165556446254211406492642642174674925997717274685194263452234575487984395536253824539402217290793095997603695044493754287552403167754505435636882394771647363468221563551480814171764025902271317363610485935650932409601491748872015947898973343707632064953466904740231821125217372227780184720698166151299443799734632897568080207620022593337676456751739055784973565869873343749472194302451912452892597843617997686319822983915633920754692212656816416850738134368076850723161832165867602200367132863035956389892681571828940771906859894772855547984608197162490044819436627152922978399397681348110624747211863304551053600203088907610209545566501357724748077813899567293242405412070680983666472789099286422446370481998162643985492213522828455652999258836401412530311075654063411016694411680049231130402714507684593578220405329339949714970952046976327403582251413410066865050215382269897148719505367948535216383461480608647706628651660196513482528105955144681678528865859895921962564227762385450776759537260389899479854491951920405068967656377099836290843002898074780499978442471844954777469228245448168917364597431653447760427641592843028683261331732314489526924979238984083723547919624741280926366782506446849727962222149596443853500017079682948031284378856419899819756890295994861540801624902152623705020394402738243646280255224095668568945751166302164782447236197431316989582902831458239239978847106302471105684272704780874340482269516222382057481938249889907040748777727127658899456414329845079126639710602235922906041683591905980165063717957653953816618653142937176604931992362579293613167599875078520273981550973928623924209191677641944683842194334678707586807336990273412526449265129580519223387389862471895179052495842232515252929518411164740742970294109754918687277037715206517976005163055820678210797649721426456884636701220141300762614298020225049335364981355708881722597427149314238570841576212913826686764337000273031506282649222409724100905910871266586396453495088387368408834998743119110801854236876872825213180800549299085158014182015309026219864765225473376466808684712751646032668549349088709836375379418392772671754894709670822323896128492462731581609641605172543046393475152280353326124182475732016806943853500444238829800935892329251543483858531881205262668036836184412563181600859355518731743634745374385811728005686924587405969134810655853711758009773902397785934112395452083547820570273115345229867456293701300212556722423414917745173544668655296865738995478605738414348325335919106630949680788511928710570005367007317498085154455652156308529736870766590434706870242780527022743603131627932493159244391339589908093402788668273401918371301777108539977514484770129752396231852104345880759240135344858701680912093332644261695560851072618123030747591293556632988047345961253647591502506469442171389958708474728783401587083283889388771229678199411409746043537923885031803902295694815506812383988872658233910639321022136978791247742708280665115501928281909002911981785037464850738227183866261580409963419936142054817987865463349170489976807446107927978151346506107759406268186411678051794811241946683641292649181153628386703964046501135199384271763792588263079217043991549118673109435725359387971844493575581815748253901673437896749158453293923681722283919946773973809969435168052163481099826737984490466883926000618000920064869294652603742078179982571118876161277772992145471296856763283150441160476615570917822106375359895385901344584305140314935546124298115725274369270521101063939677159910797960682963080798272851074362037568697626733165025589666065527966391861237278623457839132294983412349960034681427644937327647961775022652775269044063844073370851555170650520604211523519516873050313664497859494936553596445326812395020679590791664737533813603751356816891340639568313472298143600566813842393403874005938220153769156414046055126121555760099255659931179620858699201934426755087999295402238585608592829844970511703313247390844662371847537092019127395592723473247043064393873226640441537790901112336503399294923997112103533616065608179906658838613557248301643472287529248931825941587560074190805445338812472076344055060214390618070690204435355595785776199687508218391265709061844038443028717407330890720699252531316259383199222107060102622428112870080320182456802808165300997861845963877606582830163414951164148871371016495388058556264850673963727601445290607346169067278826704454778243125821984765086085593035225082923486468354343418578618124149194781933473865939300080140642462243165604046670512606943704392665481529144622554682870677427443449338171383452084033891326907492586043764661992030914638897751158517251211758385778394785493318322706496400441438145251921439178469708466991579255355502274736522435969120862906356940772255400332166527304305672641084402937190333436346897397007498516962313833096419696742402841247516268989919961623676908280604861142692313505485943278151050094677926867088142829994877015065561067028611035095416644962613744474066889851018536372578663619290939500320195731089141944982720510256868066775305754280270168324403216104649663110776365677343981312757121296438808880851613192633125757188675521510993142190938614194755983687342388018324741203021055773746504978572131944368080027672513804169573880848545676943250298578717788282193268502813906199958520918689067282940017250310740811114105258416560752822354337802977445073461798744076728969702021947014272692975366877564147641081944421788719923491079220975063751151755374849939464465306355244995415438295400444064278598064781081585962030998591204362611414593926153464527243458489865101274435682765647176482805533454447848176818149214622326205076959644158594316456826187222049127247233345653588194569950644414703493061132950159273783244352948163128981388636710944329181391727786226888446578843759650760583795317246529614696039947919067467002665295728316154066835296038056749674137899922867711129556630665511257157625428852588897330374962564641542004789836163731433398854105493675548636524369330369746535779678007774332810923481233908968661374779529332870174237242568473977372969488437583257118244159942392156895376345373753682914134023046540719557334167548090760055545621494835096995774773996141774957446386029980747577357198032015996442921064792132566909782189979385109188473339937638186935040018470372623903791735210923411439540532642239188370253591403506625534419818011859975398427129365138751522939908882780344121144281730897375602835377166107196929188987993986480634880718592507775504547894464767410783016768051355055467805591565885742651780450478644609635817095010403665633144392990777086167031083148276508359639502763302672942894913710290057199000420367747383073033284384012170266457101997454247983134434336945548638148299561912023696866604968699165798455675692092743140995825445754100854332878079946300329146617985388830377489593266910611160559584698099568941773199745072805293119543349622694010951120569167344692632986944142285930750171445822054392895475318165013406080041606471744016427118820421840723580890988470150587554533357625142097257308233574219092419827938528230531881311435220883274906957548005568024801372085403835490905628949057838678504828081557675524078915437186765401028033909763974564533081735147434291144926914400257806698949118506731300739754697680399390660707121985157325149233672230129624674331236044938595813734907189389625975173353169096223025758005564344637337381929231614962871442568529367097225701520348565838134757374524404620221816834036949923158886201990347493159937260137637744334883759837677555706575529714273114227408618398833781617091355930836369718948602362750525056364318200477326815415532420191583741738818832383239537740632712880469435203161443135190048286758814724369144405025063632827272350098936925380828889577710683732788765920744869417135547815866457964346011119145011742517036048156269317184855085058045139514775865878952209623453646158538723626828349776745440129502820585093376742804825316512438857452210504864033455489797881773830776941455941363701823877239719990609133948522296227252373659069407738053753090286815746289263240331982708300769894099686566981628743293218784230174609740638225180848369454243731226241835072430315261310037879077379227174422765386052748670656006193475718719915254643594853536642318903468300652198148956153223731259140786917535854109965783491880932407495014810161674282595330304259889595244806240547973315191954609771158768029655330608132189383385734891009492239838357031481979135986613889476312727977936459553760366431681947146232910353499024395597498367220375687393085588269614631450496394612700650990818391381757317647118331618349275875959436041363726359294122485974231873074041549512611869533480187329783614831729996060214844679610451111019612721075232401867452525086914275417000587708522265137837334511154143981700810623021265671136982636928127748882624586096964488655840966258043833066604328602317724724438165416629850510141211572568898067829921114544140912891844764057288517850433112946352821225000284498224176245543345990450567858974704023309706594290822504593804959282122898610440326413096666677468168704454012575393282918235924498163632125404813624081445559471661904156012853101244319250291224926922684124356019355718807271491948852209392179088747419634083741154308469493043402004715673115530036382517768339350945087839091084215744789674832213167015533013609330781307393913479412245805503441233794285308984953627791428361000846687853147657883382404216227024800084438071743592916056078734592074615070447035477405344745756903615628408812957166573657148473870266812109721441788127761628001051360886710242118106752664303538527735398537249390653641275562417884587518579577079476979111309737332435573588871181015582755458268293159488581544997508699548304754551374829258055033518782013485070764704742574363783546947657062831522597276769839835747401864146793734301642776450189806204093958478746931466671466409815040733705323624558442907586351975312583609098164250400627969373490444369386922958050759393960264403800953689222542414295165531404490435258206842174896638718964380719529632663018990734295841320002419667473887190956851206266447167684051936252076824160430413792333322452011764667981645819864101428509411637162717794408091557035144871945074307890781465834994765056769371804453880323125825571927230716635154305411958238929167135334167914370674300627866092767881830080879991695873827872805936382497838839790541979749285685992546722701479590377251743509929786762011299264689110811948492044761885563725982625633963490216959455027603399616499505773171669404795479039010303676469572713083289814319949387483623317860449320122937296500965751438071012995608433330039214172909668172204290414863192255963491108273425189902544785362457885685278641378577859432054869047602570534000759584286236257191164048673188205684401156545146999603809706866496867999882224255121992889907274442153527456266072575796750910411078050348334237185973286679084536843932887652065050593683960987352041873148852218303689913610581709083700447326950634089967436262088299198089986144589696490867799281933127914434463208273638080465157953551901215894207063902714894370995160180210678162616802472597307508148727382713296648796670058489992684059116438879304477852826764143777994626757631857620909064192113453142240618334376923057251399603433273920046947131881415726922966810832879788187352555859195444743236700545342165158517952756452220954256837005332508918401077792329439560689007055484163076202282059802953438278539362333379083092304006406457338526341695142200110685068357201440895569418235174769992751435167441471016079982390219077403260211747166681894478586432168065924614037232384063868614886755863105556433551480656853911548796297167842607974937175275880517090392230989652297941324889672945561177631018543800984756848230233780629349882223819382925360693997120088780593013908274326940656283890625932673372392123334298283025917028593849488917467165014910438711793503904277878914399770603211211322090435728202935682562096166589028541551582525398215726931328452582376577942098678658041994378355651359730471584233651327764807881912873730917980790870891259610214660460906152729562872252770561640339043883052118858269443058746008436354880395281792656943259541284202995180437322695869942324062641492770542636983910904059162370704763256081165132674822419288707868113932132466555448956715959485478395930140023348071279310432833101442172963714763404106267595190619875518802124774857392075814344722086942100216169116551832648753036348794893842152017583048188388220468924380937110111865187654339222549204897631794104242214243501157423082772083338930307108058327006240617220987866525689581898015308529528145834915125528089345276221702282363301996034024217992152459305200566137483580507346366795420276849351177519985580821647184349896370893792154713942405500218336524116316987060378387499686524457282247249612191494900344024117454236995711896759651128236614071047600674327174178948664315094371874489818711950044459800325155708558881622307119487863918373298459288943866814869910525443557846614747211624215018738353679771652753817688338998951643198961941616567800790766521699771245842848626971761155410701613256609685799643847622967251480176903254395764602259239370888151008876575606787619181730917918581646990269823801930317161619339193278419789129919003655199137199043797839842147303917847032180611511551757742231183516735796104871478641881723274603895108320644135006773125670268732358812448613975766518539276057879177082936302793449187848580960620515189584510986580780986619256200968629307493037229625372180338572912042256904553010391666067567921435537301504618033071011846000421033776956962276185010599005478023079823488146366944559117768116718889653364455979124184334718556608309087153827892108555742717203264606649503693879603630000564364986136520372195231778244243852767519217157759561029703398482503181297001152634400112029390674714745663277281268123486512353891677594116626691588867522149805843276451607308577860927519919308256965486767739235935265882479926869566758497156924428183083484626479195348738477736932029376531426537990061895295443746913285656858121906130248884642340890564255872901649941936211602945033817117608404631541371350489122007016664889053483161244441349296352764502508360767199516808392939460932617538160708343865104655533334903209290545635038714694458198606252232522866777145871481272901473691742609053234604213249024951904839778570404935775380488418459080387407022307398589554223538438257379694626146242649427778954904911542880651792156129016128227093691703798138593619537328851661535431465213354779976297893313421059150904110039030559861501643406583239321978641832015275362130669894419451171073562196356161903669519490333529167748191044174858132386626337153917544962541520228745798659073797182390316783591274340081202480912384457063522472738262144029597086345013944909410997488305871942454065598808836955725297313017842366215893656234309735535881227192754211940213111706476968795421928175165250755851733852418547234362008433657487862449839099378181387626917596550247585373857593545804513166823146471580655699247440681168370364720909493383131362017493724774978907455379298088647873142903520160720884422221250229608312540106124936030698392610565132837833485569033473567705881258665283786317081519005502408255096789171747668120482824018512694226667395184306530040608257290101658545602597468698424937167450688349089193223358175112343581127799215648553130180224828659109185269478769383026373535792032360057563431833038570838712038862909076013825228958800384324992012005729762180337316013968725461790229374175759756607421346533039775526874416842851939008340668045007282653553942183679393860649138400055985350156470315500534131731808430818418796044484110837457127097864682854497985324196080189533002790561321249138544876903405456124204592172412070407611718721207288771587799784642278069807361959536842559764572493413099840036848074274577299891926735818837443271814515371625569587037581858271487041246283316050480887448358062796248845424851718894335087825931523841943303017925992727107239672154789169878588894668961040747821211335898972550307625805219684302687295816053918492540336760688630274680422266254735690595914273188585327494232256187187026876393671158439734688874035121278303429526475251881986044993758533976948588872159974713614308326240802828415222356333603778632750439401997843417159966476710102195079545294250059219836280682100362897102449496593099513860752279562168708972790259770541188102698662162706873342166880354894290676370855958549005102310046409809871442689622767889017534222377593285786424680809628691299800801296573301936641263564985619798265533508746184852995890351006299571742391068112520528263485054142848635956113970353898387546258869990341865074949378432158486008257875592232442614681485809991367429512583674768747057264480672821687134175043748237680250971684323635710138010017137370202555831681470419057617780086013642757107341397165620428598303179121554368489337843323269494291174371056823187569433187192224816248786513615200030755866368331792022144839032190312958847638961819963275803863089410735194264538311934030722798718273058211158948317473238405621599576704695897883870830195928306490918977630402766267322184359410802915212132217148850738220079140838689633625985003569367169183997618615624833906522520386322616044433694444211711299916179540468291610841337507295629954871127904754904412794977533741783525883040481940767404253409070158273319368183653620507447679778343402136916434694823209049229445262171010623194904944962193066753745379772641472838755317894373908500193420771361903349889000294318634583128283785957404964249905345949857487896447300096011828404077924965172193283821598079235820060722743338909884180154975387582120562980175519167634462898996117294664213213975763809114860254545912659057387470047387180945374996713883167403921217071994201254912951665438096709411095985082495457833504915155837745866960597533129893914733162545682665870419439587545233192144600342955336640058977662507351913473887887256535748856189657876949939731979869221232392732362622014971592410660619906173634121012337988413854429504946052704986977374077720662264041773504962956254804613980330945855030154259027805092416999987971309231160878443934693710112344495194499144070238505927750586312930641940409341356707695234849715491436411890590089403537843663635210762032600042627101684593617921058617537788353804946160582813959513009812196084565513716662767795277571989882087517887962456196399340210324555369820426573322554579064446446086583240117527485374550568592364639204448573109865441757279441366959777458842981684866078139327148237203723109311230809591025971346365128543795436533901022247057610388153972743515934836296535879481112862762086413236278308525852542227266444662832890357116721865788243002442956067932464103770564421877968929953423426314555974991787619252278302153754093564868030299245969830697132382009288752272714058386241390749451708674894115831559759962007112598402401551539664756855021651958592630468916286855474590131467557824329614924034622702862913436336192816640406578366617881497178673657371334440583904241067717130173607595232578730059299457951624957440434198166599455926859510942571915461601780212620460231366826755033330335323897249976793604013057572374622046413502118764481287191483355086879210811479258247017864721068667597722027738188575803833288862814331126219631696100319777668531073298606082779952244307009349319975690009409977858977356168040714989624777914951245100228617818392444170863611105393434799285624131096240879511070741242855906519811569707640703582404546759362404668692757021647527578341355441893754643413291431875221788590526876186429347434670806333251440405395503686050018932124192921863561227410697248801535955809497414226351644031908095582097538205715532805470077154364729686374729489816020840683132899314836966076503694379385383149527527175069260292417080157126198434578629969239692756943169126479778663474650481902188266276405262856323996765493666662918109600131130508686997515978484700140126504105750724521957401571312823721064607789014753537213430122919087904640821989445752321838117814485276388752111664825087504136879548532816816706455782054634059315143215191678838030490358546157323728117236060413168450033390272772380187134189660646104715643360578717403859792124908621422169619855005606378278350187544893217705667710066716819699557912886190373336935203213810808406646542955203043102477956214185286641524639866791357136967468872547465305415451934428337572192610657429796271246165298716312508869448496573967366742735118495126708855760650300111028867412318962413938348889111274113977749232573677402946125240997840442838721239131866553182270556798436224817356037916443684670179317710660731529157647371614412348373617814017872722657822714175236475197548547291461461737569559617272463701014292279204490889472934426066593633423632015959325540365191010062528971658883650536329155768194931209013478980566859717025752304479225902203798373896566120614000981821134564272514106957993696060273364304761273752892196368348680822567754069313643095029346704899572589913028817970561587265435172655449256785886859244626356458237679862365045259575068817678994683916208886383494566431753038819042517167943975078303606409156564501992567846948115570813133494483612178698980158404134887001399839366763393534531782732414459849735228371071067581812298825002239614861890587661306091710051447482218174385457093797536757382752678428704023851281855046197824304181562541716241387352764250894900364681066573201179895557964517839323809660008158726804659744433086946293947525478419773088058360192534168001340911152646041744611298242528790886471379658333865236005807600386876125649422980826308633560159216432491121937125600490298831008885394822040854033743089908063523232549064988915490614801601686504194089731045428084287010298477368793222894775116815364046404295207311277049594398725954789473053341052423677509775909495322317299154046007747080331732658272186187665196629171278111338331012441307226650634585094810723260642915522600108642421874685917999372729361217510531225410262004669197242043099918614956062161980985775958015405825615635663289700278068116670732686945058103438777911932563793207525641331403189799769457515769365249722137834059144012554985577784892055589980317006523170783354554867923768640425938111173253000500254530958150543808035126745308531340298649211970228769802507455714586916136139270591774910852975203501981673094019414237476513427355289583883848233893907832562826930001582753176466256694643159474643372654991820979732381964506021399643799098987112236646228419493663106672919430403297787275290970311397901936324425753129597013637215846731303138622331090107119278965156263903932473632757337174640399901551823974441808494055621548539429405273025202580587381963507340328959095405244219488457824093383386618139159858371415526895651222008911828167210498177657287596850966146409797097192183530422441620000652990665648433546163781469865732920648895244214710975796703854053174987440138011301139619259801649015492697339709601067675497287363014234435063169402181426887462336291533398384737335945356941705347877415534335903960513228994210859805290156435969342165681325554884082548419949845525624178034093240781676738154367586955864722296482524163999010755381798662237774809567224696824992739846532376880473679381370617415708300431008467843606399462981241630943023304236654618276485909107642285749170142386406205446895791429007963193508356867650843907226398915473510432722098642783563795643587046819226609052915327048117488981531360042753631850127107170647856280870754477785692888710248285932634386494641466558497262933747671781832127390978237579950098680398097816582511127531211571179994159439018577550858647407006468345052177871298943960519004568003806327257981283566488380646213541563184502879550036645217841099410416865298609094188136800964290098425303292300613625476253708077443705957472157884954009000051597175810878234687162377397947596590112178825914099881419399274676676703933946519689649867433686842018074720347360765697729781234068683755056534326061315286289888694325488509650129133899966076018361825419759598764448508572521162795840657371383277690611751445505425763352386476885287754187609511822439533191748164321045897368805940801863419507597137229606079502492586267551946847906009970598545605771748061321345833689454450971626183167317798288129770144740620885586733662969017458049496570121498540778125880833643379103285700310630996963126294724880576155852176054415331538718795840669496350938688017275984296373347669875717610170008128402312928646084229347043380254713606040702709708871671241413704777328189697004478246538310134050464204623126700404211590889339217793780461948739469127081427877774951120270684387562300381317960654233894205462245633227505539692814670529056167230539597997119263957722932830661106126196657731377731253890049575895138313139420261768792885956455064035454456106681459597589418359789098598728344135895125449905815419276306737902962708308395249593434097233447922864617359726094088140315623212952683498637153355200351483702633536371930631556382501964407105934053251215756644732379348509519829143538293175571744767550646248279543280579523277607616861613350664958974458352705554840625828870040087109127161106897217950938151151591835165816482374189970797537686623746718374227794590622728676969963008342439250147257653900042914664468611166473555733234088856097974997986420122607364241494768901383523943652752152348275167580612119309320783117458268147522208650749535689250544215351183123495098693860674636617540710310715617186406729158698147772870708025789076130073255431798983213294659300335910826440501161770716982159294683014958232400088267636000532162055424298266612271082360087093656840897241313918752444855587825751319652531243463251729223998138186848168614834156266394788509050657136373020657529092567047050715989635687095938700469729252491921608516758783689243857145368424573166109977617234157695796623629970043671187661753184897338945158511678707786924178117738103407350368803929723167193808563856940200471707701467394153829871836605800645700348609105472928425819736638500881809687477492331621617780919378672933520238499545917068519123699968153449670430616121022763881534830149461222013186378200088375496967277486043991571886123472244506992085809608940232321277219653253939996679585957671103408583976972284849709373409882609902626066114819667689432581134095846389249376381063867734124993001734499324498783170406165677209898003233760281879905145668253190094901280295178962983905579914999844301735445114799318228622883675303287176119958829418038392805307939140089443320856759223683419942351726631118775718399550364282765482556022816455510511268348704906959468281900472717246068304613021347428637283061595110736832406153018703911928029514712694490588253384116367222703080346996248461641422541944707328162039219772031474785957509070564874412445115858870143354852201509270134514806046736335185070150817784438320141779151657264259833248986558032124392268917877479292729289974046086062415225672223483058318045510048448755957837694642312837355380907890482220545626311828282708573262138916387203518750799658599612969384800799457346790024602428375977947216991519837215380715873988596700160154857006485718249909222814882582983443303259025335526954788171941492618436100218379163942528076789740327368257378758459993718761934519249963471769078706977129542145174658148549994902400679600824564122018911843373741335841296542468133384817979317864547042295149316779642671009101626928806101041838534207607282618964487796826687532739580608360063642659858410145724348546375562030915219664615420659813850898422122955819670375189328320875884313022273942345071524579541834981209952991781109074754131904392668540667064601574446389541683661017778201992653197903436685169437339619649272486363520471559670170584621753095678095857617243954071416366659251828127428766494750902539476886697676665583489573138971659822065367505280726343155894115556302810973060901178807213515921294031765826532727410775162802651232371116094116081339630904978481551612332985320605902275998952502232459027134673752158206636720227223822942097412628789325387306594594772539964607380583332432802459445684620494783145843243893220851062404886833055595871102110241765452070656003125958834819176905422688786829094709369821374923892652674407774045804568702549617420057251286198685753076151152803900141293765437910918689274939337110371399262706339622282216717463689368913987636650504987747804838026642228808738789160190126859577945511012375848971418460932104189851077540603863728509625352198516436312181477749525469686930640368958194432479767344851469744594804499642786919485944274749790318394589146111632808570341426833552138960170853265363789859816356483661831531029356434935495510258123024376712552746849424120135064307159859283247669390661539284207284835631962041386371369989802966624534376053134934214468463993278068150932492171589758562916988532862309811452952701681728413981093328108213553810148573991413743292146619567074160864268660047062207696399941987292501158136247975111976223865179261655458564043249179957988970657615711182343577129222863444274531818678275144285869231831300812482318724963221457895992260722702612143196844240995589517717773563094216335981285030151346649681134817782796489724298640058696895684469302270692369874977025801414024474822733771691718661628782251549488165410607782957503766698486928937013473073852144536916500175260705271751964910033317786921442096819013132207324194317492819726934613176822228989111862670974731735086399230682845674912814882571265374663667265606107524503438122203805134412935781746475942677784837383500836996937342326017470765418824764291862049390231380501412551635476797446804365577753643146879760681484429494512267601888523666785778110846745811322797739947548077737785029972774037110693728649355101277342822153636469367317767128524233258331897669021950632549576722841681842930535240092047702351887307975271506532540570924563036072035945711426065579439736133240471912285074465924550733406289600467398282846911033965250183601686306618590815681620594772563817806990280111220177760513132861717961276291917585192429365562811445481960713490997516121505684073849725217294694110030440839097177570660033437186289879392736107054786504018986560337523040744047373152042668568367105298939864370979587307284636152757307337725377238409124979372702275622526368412429383129201743918352411978536932192697826122554963864459541415601878626060226704284674588333345437117063151748744909604418400697146365994154996115591765253083690171353302031134971630110622391309849835050738057352812943388993426350679280003616356378652207562952338744800438498970832351112319141277029046191306706182855871791646907850709027136778358293469940836279627269972139277039469440262825687173390339696446287577716027528318907068411053062881480696656810879177684248553192884760717727226495716217269025574858174533057627175868141634898209911828272577534800931784812368686309038464907616820254842625852656285919360268895126363189087063143151893287060185963139465915337429780925553877019065486261266686049986443271198014333532346341744672696596609866728533402311787392136315170757388122141635037149532137699696148661663556791411547338269140203215775085131546108086298054388471022298395062425630842588686831324919905104688631566248698853133333572559765913269936188851543195492769588223422229426349548935554932785630550168607304149564044440490555230952737614084559549179976687677745362694065337352665939753428919829420194469581031359450227980216375614869746444572253153150131580889544071108434121357708324582232413467041402664767695000240273398887926360557376180158638620658691644957189026472792721787312675438134420523692453196915300325903724868540959483085788255104068598845521849400440317546695036312730003274156282098107300156337715333317952492052788519303788756887713891302361636571922010681904220976110469875848116146882421559335248311540616402547963951257502558701847730454468180121604671728623657116406537939942108626824125604356485891985391107357159674267692229246113405074616599955168278447826848295684669189449325279288617027266501924917360926684352666979200684737618512493669794624336278052390844778466046632508188485928919598442639537092932449826280769862184051037508489388930611447868992278304407256388648584050259782253429433993322882927954578148186348691804711322827568219902028312081432418417289805538284774996827968187114131110562886080550330811205127932618916656375411995359869604783126491263336548036051727961593327760758286040696575569900747899912129456852390503949157259807082433906454709870956213973641941566877244639365622098697967431509771231928131885946841994594360643487618287657665110407443706521760312308488139162189586205384908317982161036712928243089449502760155393518795113805917102443035278167513964644151866949347591656621495535638768894911318202756948769456901294551874760894880454207981467316241664769630288746106850809801018351419347920466855157390017718859728540423181515931960911263694181978498896175357448605934603563875287690014370246543696558167079313178099798373697866511417486664327223274578914162191309084412246463792542320288565149736673634305259314125669115618705762466324221904088965401922124202593517525700001481428631672612350279772840903376226976078894457695621338356770661954498991417719559880035364158068494617739694971295984531920316958894796204692076030618065820792414988958977494256039860423781108088495684006847828422355240245146092623202263322844864099142471169541339736214677880182097311704317475029229780287018982049637252393525424530301468642264130360258581402264502567892342474725563785791131186015528174253580137742121952445986048512505343506053634598466692799745013581306137726970582660532845740676017559796839386968681571709866210846556241890524191971250380117899329438595122853060245668035500473401042413942234373278416093037112262661297343320537956058285188846366692213972378833296269858295408395896234020905342571835844757286316456057299931473341205847570384795616126882774668191022190196295965045904951894347553146457851466836155367045274368494938430305667582945977406851886942661223969709980960294488423687945474271804399212122925242609155903611300482900650834130100176714526121910186666023970055774180938233487825971006748855333503924659283986223831836026734446929484666576327412770879788896333572539034936121636202686083436791684592917624713969249287208755161757320029107871905003995311544823237865900677477289859595863339065711405036753447600525826784369694884446074009408128526297937820698359830189346909530893833927897915573932552961661034165009184044057435631399002167252126654807213008915942316734337506878011059883418664421092568346604500874129758959782050425150401705369479327794008024375863598079462834552143665012048406326120878154940825695017330455053737717389280435218569651353149884249597470531890853840205761175484617548395796797895043816094905452514404776620777691282179792109783781317303743233200182461923023747035488113557652625833565729020631179702288809598530952393470291287182684232164515588336888356142534887891548777886192929486246687922993868367481814195234491589967975388714731910511497260266307137435346504806936981896000497083840224954786184071973589637990221514382897713362394797576017141791307648486645945220505995324176130288327979018186424645594044493516835788368343278446868378043476767040436553554879455150726999405520451656865782418088606048894021791076746210994278510297217373502084492806570970792427594217804481081081897773249321215625151557066776604645950619369147972038363315989415422292624153722148866367813671504538114107507178503803006374141943861511097847821775654454788306536762057086555306278397639127182092542234149400709023862684828074450506107217688084970437912738107665362503226383293509263156059962173905657856855045977891728831710320221062881670941609869736719259005430270474546830744056334558946081720629652452391585471086557655106316618130889793453355043640750109808735340997202554909020130693972650213495226646597795584210073284363471243634842355755514054255872731896487443066205352026295152903269078446764613510742204183692360366934531877411952600056315989099783962244179334649135656651230955811623151132364375302448730001920490598095271026536516637034218048672638390058554584393711110683211332539834720622607735467287358426098094136565901483947308802757122587339436493351507132982100967596722377218775171662417067195940597885922308615405592110312473667142468594563631870663546845007308151291185231482845092609201931062809302335059687822642710257711840214075424392061356004001651921163979139144600932087331244686685652862815770724736313712712862928428849460525679092425802771024592506706673198890490354330761852947618740318061653837090465021705774325400576401144045094881096972707790018586729621423936599166761310539821322844626247145479319531075099579014000827360273507589051467199544579421432579169733732983038490815213448053225187792028708243047620498726163069208120434853300383309661991514864856818937010050387594953731407739090477063224708231265165712027669599396636997969693565069224377390913108166563375757574287780465198789836913475029987566923634275317454962388613901299095402693265093171567869313251220184041885846848706986784619973826680032284489522921391562393125239473443561443995602245420582119096530827202544711148281769273854618717904097350152312355054329864560112092674115835367662266726022832718049663833762029422840325756821706904798620804899568444347913657439445474854704000370707009873896059459749102285084888476907322925266913093188532239310480812801791188692427549220150917121793981668829515052139517657174267017187050891122295821770843250183797600722369767330088377088758295647726824200409099092462099644676456124098613822144117620173679895207106324996434953350252196329280895269295381191955244854981419593983104212423565611653142074755155535511713243649211823826888513534293488841289280294649717738110392448076357784331305691523047635252484713291342087887755449295648090038586116045227831010853271096451140256981225390085549013202145049561441190969277353042952321401834828631742407336748770430456333871506372922837360067401698304421065764287443678441092432592879808708835735093267415997095194924816852151316072778919915930748886826843769690561117072084557910118769030307596503304452704329773489232007460908191080465573550033669859828175547305613241946882377857477773660040464944729363880639024145590554361050368770401212265209777871687017296366178751602436233644001194643977980424919004580386706423369871585108166835965241359096363666936833894262867844389258403920354780777841265838641044076552899450558356081221466830661446960150182611952197691615573745971518834531417941782605949464232065343764427919548308333276423761081890165895889488322852830177247168856300501787200798032978059236778044070894335803755839929362432592730528353831962771180529101312924342715290572365258055725653096286088859165893579381002708609625701703922970412833332076348584620404372586482838153818715065955909974897597906828791246317873365009787579486828621824241653167428357545389577173075747165289998347548654624720814984999655763662575683539853609195489171984792402736285508975139455662817675674450674959631333981387629595568565621446295052738011412827529870132575227048640848512098885429988517071815765969881600190562570509537678169486487303966081783364170695144969565595791604872223691870818938335217155417912553658562123905300445890055857289387735784769275517905400590420063553508788088000553146113397060171408120958091661166947896742065925791023421932536466966470372657902365822414222912487614848866544915673279125217918090724271731551545481276646210608531251322926529006239674871495887821873720039464555559705581250467332475688213440445223076724848457381269004835048718638955560486482452220963438397618228437751761182567130187164049690399852611967219659815579619176830503638173866817496132515846138698193135148691226517520407952365340806273156757892972283484698459709667338703397377033081822257067633560699627911192572807200903076263973021551903071859648430591307019502672220026061049328914466506595531489283632174820258731875707319997788278369465411168416844764454760672209056773588018979643861848578599091566471849306676220722131266507948284677411149481042256857455946632120410917737894030695781428153150761037849740191758275323121814530881618414584876301148587538570548505910757142286097687960500334024206958203497794547015437114070961366248045628458841439317487134862486874724451522023360774210277082532245039384338192500535748549551722846941335605122848052027664595551678521750103535559680953387159537202695880052896210900801010841250951379544735619341238131939572435727856730126603971868876525624979586985558959846937731264947021144033029229870853528459735251459826066303119386756620596219593964767921174689277810004753864222059597184920436754709457210839955763204751360897193486896652754928873241744253559254464233173443878601460187259705132610533687791970135150907158635697403811739885658230777614424124868950810668027474182903603097092099558338237996157916153201216827844109778004631659992783110792633174758762688446694839852508577976496859609359751648202829105108317626788281733360060383250646780506387037181587832098449531566513161864549221477797791649602159987570155550221556906134817599008523478658270972043797532278567284255901039403310895623741327223875393104419773288926566402631904755275956450859009342488877572084141540248707589993424464759098543282056888635332578054531852105278171380708691049128460899997634097385665633653053962822682858087845009658156252909635656564835856536035783363513772209733129607291379701824162984055488085874455894733185481371383264515732822425953765356278623031770087027205806411795993355254313578570789409386654726002019065397929316412432081616022588655612600768005915055436238154979206810580822427289632836340932919378827452936819964774116078232301067855192886916654181124658157121444183428649310601431035274760142145913735413904489191185637740899244046736172032850694986594338060406146673923783645909491747875885754335278289567296450617305935096355808013108714126522971888964955604841687603607228523227669606820001301727043176380742836470407693257638019531999076524384312070069771863166782191000668731006312512380807912666057380723897509714644682841390232523713831441307671695393214591351474169254081368802517576422701868416413203554427959673207420996595556308801199271962908584752344463759163342074825346959561220341213121726906771526037818175176207871546268057466562961623738450271352030795463051693090155204418354385523502891114265277427849549645829691914017512407625490144955457361952888216243277004211817652133423761497184801053819776161803967241151672242587472505057773608627785543343452209120566274769494566132845706629471840525049765172720263070385454397312287020119472526046802148383550615874486112474341189781173319817588794676579456146420588128323260779356349538034515738404001737688599388058957295572902448798564156008068907044343121146190390481682949587482141974547190987586073555271950317813529957357361129244073910600869527030386381854430151285568029075869950200137356722053591428101796756170203406228865709915932208520703612361559943340453987874905313420155107502478090121692097832861291754786814541474428700574363989138293530734064009613224923918706616902343403381704996401108781108577798034858724354204923547339048330841090656902453825155055352927177338722277750301071313155154747866130897742757760206272434559122414666253564002673312489237403363900643872483301187932083611955175325259415813571225336187035780976888441750171239780314358631784569771837626407838235951933446512865314599431505242790874450923110270321392285909952016528915174049461754008217280306655138806069508603938916491067321297766601862298705749416286864120212513364572195213847104560662828824735602563069425140721645495628351626392170793044454298406429946916896240833218909818367323281478035337905227327181630634170716130416579016985120716752669248930615757103350141506857527243346844743974191399421752357700733600620255220999971354789366812816373063642935931867264253222021776467789416287426567817945691948375033016692038157935987796909722435600704687793003252920888149223929001283136756230385801617642823235786205466984275401319655840908082886775899144167900495634097132655875686185787687988388750831600986126765541532580007778555227709609669668369217057708805738192995368611178878736847638367341446426260999309387211997091219021332779037845023451235536574276931829054183731027989399739027960817951172662547771243034109135149614919072239279209554092039446413554616768741891110949269836171258456839509711096752508557969978479604539588939702869795707453402700889713896134644413303138879247329714619823935432155269877308139124410529138005304944412319162819921589371916556648191864247350094512770836857761848810671179904484834032681877869523578450841254422142590505824863647607574334270395762931244619228867390370571497526505407958956348828680566497151540542695741853142588610071904647309230238913276652775196628061381716056600869302936466681303561582210221125514913220120387489944758624839030398548131603225027160095469397979026025324746599630351063126372414736694879726113221638040286350451137104431507165236617744157205909866085352357094896457460709079785326841983925138202458983117086982128750103116321574093195850949173792526049384332884956830580603952931008777156166792664056985766602938142307326600363645275156421845010824229206325479242105530298425411890215630225951487812768640149317112565577836168856277900483350324298574653449293239617313745465707972229282100118524555632073276574978010952905460531922738072632943357159928728699149723233621609076916546342427677836684687599019922270957358411890106287552330252524456830609312102539160669229510570770542181732848206207245694758993602622779154637328254020855497776725709410178502899613249071576061304928163181636537705838012296723778580072148908275925066615285504039223687933939396218827726867513744093287083631303713523789342629200252320134193411909318534432731431853394412127329465787568465920582470644638872688002445836336378980884769874350444508841485241865860886747156906234683908019723389377884637804175626900270059923292952076509241151703921935609689617432344595922385400237207481161214280355375990160374178737632753742398875193615036986406495549284313906684261045833469025003911093858926007962024570711285007549727984137241661572159629228252963290001817824180529389724796762963525476581139823250685128385675498936838691271249369325856392632011685203503481372193199693596096600398792313083639815276696120020203155907227650641536693010154174643060339792982547902517710666208592522500691800887703303588533562497172908075056268249194775438729026741818645470042056104597191803908689088367269158501322145137177846381895718097459381170192075747102409382608320162237301847695289576408721326549806394376490574732698951500041887873138453075487286730394615377404542830043517973799589298232697212813913592067562561432641438389985513334384927495651573408203140957989947982755277628459789525912495676552715848051279775721253295806695537411437550079360951965388105780853819908085062831845103555948649179396385564032086769973439972978742955881907491131793181670979388747800359111533823513924987369199813083793396752017248333380671735059135364852259069440887927294148742905001586006129157768212980987964031016456939527003243134235035397508731364440730688265685653005896754063859852793126504715240984746737928673595728415525366719193004485045913707194193818825892341800965820761194261239156264628354282882323156221076933380401843523168075644557428174478459413503359115769075658995984711684445327973984652721622467262120992160743059331327209092777092042498086399569743834429086394012313849737208308102760704359990433935024325184609577813272325365412664453716278387436757991248251311525768696816928199234698627719276583974373111973173428407941991130659151913830254098687170470730005966691763792759074918564902385679312170659156798605043548392145313599129539298403004102879482751949439994436716355373704925815669339683771584127570342711582168935925679989646414288455102985359593106832110744530101806188463085115882618077816764724906332475165048545878490063494263982111416517500438920738626728775054017379584233603580237690891686996078660664491708700612813150673733640247320613252391413226911400413495660696703537046458829056059283904313162200671720673217294050763411760271300026295914650805573235954892981576353884327767105926770350558271140124838751210028284451489204405011014230289765005256439568066778911362791643158698832972282309921691589168236441150896570240798371999199267295961366057723451849669093507727529369724468315234219961793157501927528787736421030063065407439275398051041325701684590622041585219256255629814750484246372806620634319382650991981562551050828294813927116347118431710237143793774589185772423694924552180866383955352900328385447258714407581283053323136615667288482730374110232139961361068613610290257288813892214907647533404259950904930759551786035768069439111527881836195803845458545805985509170027504335058601945571112783381756089340846521170239216445975852818571420932508787477606415511466973477562866385189837284340853484227704320490155398907350518827073576984715936827375010791140961252101336207127514190957039063386219991580661937165361899260556632601117870678599831872971444336833849208868128819982673091741816953106617223300623400129544270497229076959909772014706918962168363454281481303855237398663606671638549851920890763985767286228636893731653093996606281928869061074626548976508969020078931327545981982114214537836938272173120885250311161926283825886471757645859606389382470369651370985630878747435607273468668552953084747350131665127586396278775699964320642124306272453072335966225230328387064553610957202173905743104591842083898378600522111714792212003816543663006388889613239980583332850451325983435171600391824593324348123183654122213881799803953934182848617223726341028980815516848266265667712537004929156524354706550770796871124764671475482472140424027318794764097370882314833973564310640442534743983266653240928741118671178422668914146998229187532899831750153176536692652347419631985977817329539392170769573677705359571449415597021481078705112414943770812960674500297868515864877313982163726309104562563194370533781194383316303841247016878977835127734076100905626494555973676760622743461381647025173672997929596374395425253155164446899702669463721853851360735316633217114353572999013990259835839510239289220733153096783379753987148659222067232257123224424418785842477428453292657057581296314567780576912006045136778716772897086661909233465936994486759078814501506992359261539902434743253255347694526225071327068647187173660455532642182191049864898549983309452186138260560284476360019145939452348342741344716169529540433717064918448105437339357930810020440409051195808790768170054285215842033583736695850739227161706759034030862655366085050307856923348181589575893575556880192508105208274069804127931140868539756933613469447375241418475784026503711621142766895940174620855286101235613728112120783074509946331742773987688208501520754558948110026411996635815293013736869285109967719047440489723102698471335395773458808980625583619244431602657227458358341132695162233485928019524288319642409845293243548469534221390038405997970035364426923211952298535432512920941797990601309399434722850876621579529127294865520854033778896086606906895028237802894827134370304200954765431789693720467648073631949259021112741935861028188634351077879120856416039342641537398449072541410113865573134304051556938407988301553509977928983233843426019013404858408339149615457676842234319634719504654514681924684020203674133563683560234042914185799400817086273257599234214184660039444560213186875485235103902543838928603978147125475956470314658228032777659922177185555768762702375159754827081490501575005883225445469691051327457108729644200414031368271900193571223469938079363071780836536268826614142790521543856487017870445259622341670173607171284223108322185038160860758229963451025493328241863651051309606705267336477713255286664767985980838800159987760714057032455188123372304552507151610725425497735722463995045476521599312483698341864427030889888082465979811340849075384945133919990584238269390006420865512840057533198691301163205778549760859036426999682690496919039890738823551570470336349461960275895458322376940316187810105817034260391651776459917024212020706898594374263650013177517228803937298025486923872246520318935829850200831726909117300313766691612265390173001891098843364436922722813460814480887133820111114526154388687969114750554609095647346396948023087408297104209398830078120691202344958868635953166552586559344486003876908960871827480172412310180732423645670216391310580952217157132550521972308821394946818752488490033002310882092005782025451200877988994180443355621123934249373338319056052796634026919116438910777889159872145532027550005811203765797586393582093939909893868093294382558944007151142538685706313953359904040094218670935586052231978153558407581324039672608257193067658584909183565117689335914548389968411609278518588276506992819950725142839889615991845506182625479643371207498341380349140460826029468159803001232726462628551548988081622179383827161784193228468924857673764211424543928331644701542876941580237446728472784928665883531830792619159967574342341686325031106866259500492685855710985947559686185186746743354375138039651429429507759893349120544340779607667983386026467929488791625769338904336092993270520525149328998311316842600625665924433138369317966871908407534264566109748571444298686234456928543331871770858427793442012960364081563987570216626896802001199854337945559090475901112927985564601187729953456414944767109941171228343573708788073724886861222687220180329155500644782683009876163492282692850512640618429119269905153619450564801293719733023524257126259997566414033286765389556332558375874319397678531418610646038304470267279642449013504775997121110850135731587631184156185169755259355589216117382561903936444326358466182427862299683081400495930066327620235226256966806904521787653724647060166428207478744085112716358800802706678893006682890885824662861437124382084193444658752891247287473094335508456149026952023461736809011150128957934609352537201366590504007776731994759636985329889832822423064167656980110158933417313338948787016443691605278164088625529527639218984615035785069482101079305493780148611615739437821734817123304811155596812217489794719824134240781315453012781251959772232578768623331626913121364827954745038595336509759273861196067991705830219976528361327639817502627770870651798108057178944984443929269719518264620574305953030106689187066873991506152267272707544947582835327408152346032487810253790719296555094343032550066561786676274836613036327838914367479688790221779761909572161513761811265108440197686051634170722227942239644473285466642075944873256966579958413606299740592082823763678084008978897544386800894532649150929654572753862269724797509119184578993233919692938746611677649999662201509891289688564215986570012699182881977821810546488368206045988987376421897019728414233165988551536887860189711664913217033472822193260474586590965585676869426492133980059428540136901196967285347279476281466949959010244513778656384228593995191539152732719756513271326088438594453596491965788468973429836320204426453601778248508896156690143076646125791614190774438387422039697956971250837866946295130276173064848603289241031355701705041622429871706320680311953989516167532889857060456134635435410898942158142633287897763309097265980622767806077033547073657569759799376964946482460494888287474009482073998769979611416802048756959708425204855734048822313182646071538358785161344344557102380386270588995720817499559048516557262635890928013062525425699203402491692038615365201672184293109567514951285519910971403400591929383870264076065913588120428905801411587055646971189867200406974052040416668604425647759260681361900032813716796867623019652241825560915963896010394669268517460534039627619816607001465077516843224853992575793586362649921513419666324985197578995563807263455005802693693422549451559235004046887277377609541378518575686578182323203874532336390239037617577668987209458748162919335878558890514963145911124495602591660782640409045511538771548530270993415120558839698431055573530834053011668632865140375004552997756215159259665787514206822182642479033404599614179074948950745920042909374632132377735621136736549963736320569296533209631320460647859328311925572965329124124400239057030181439805202191257978790639707054243170427955976944383931976244083491692980719438553212515422615457736851391639859741380368909687943241264386821268176365959448418241871806690974154297603071482880570126115783088353102876524281887854777822883436135665464015631414845830426953794698012727033422670881003690991782962507524110655762875835970546188666281615153152260114544550804711406616309865061125189128578221673117725837214762640931033251147105844208013164839219555339558178076538456650755910291778643765829160301450923724257256931578409916114385180400593274603679927449472093015813572390378548612849289148497253143153352902876334407957811451998393602982119973370740391275558341855187881515037691006471566401976435128771498348349155573367379165870599685503156054118710722635793918620808744350215568671246206821482149697417458738531032380954007408767463378241084728933180981285887407463862670007997666073331851440504395376544095527038996476677357418158810839105475094523449082641673893047890790072210242542175270456475339271157009941103890178791250796334566060181913725344242238211466842417993292405721298975347250761354487275346114472433151406817355704518137552376553231172926631547814506156079793785274584217674988153541928364765169586847492625625061192893423148224308131504598172695518154889590749637727024442640831729158342003529914459160006761191005550446088075115134793095342682276540553584375881247333321562091142756163005034514228849116648625840453281825192168533204515061298896593564778771823973521376749205643028156029396214373086158466701423462283800614206074906846665696286040073451079515583213383777402770867328625447325376400607504555058170728644258108388069227572483099246955037170846598774995023926727184502289745076029801175051441767622825349835458521870002910188083041274791450978227603964268021233639116237656574216922408328369945499367340885560064045136600492703658242726178504525762275400488390552272949047170369509126537714230864124231126500368818632123895294157373664971067789012368960135668277973409213936554856817206094216341563412516076955464199546772603854514126052746456951021923294672382933263666555775116500292011542637976039854172293890131866191121601578994305705617153644959214666524701638010657731142536698805528021413576716233514134628524943680546000225509144381807400153946082512162215248664913031886097447363020539036456674425878869566636424059246155857592814826947789905330839326239936326462727715452042149046917311473545123712591597101243420056273241877615130871134972800284168944291234715840323349022759849478321737536726042621915544181319386537831505937473115386053594350885350815071781348601656582626746628328450592251200759990110411371869193125044056365616677669961002549559326975610907396554254947418370868339008746766150037013431479988461496525457236668451601113798376436470356100645178761296134181735564562190211696717707731445670070830483061163591036025397256046383529131596508114478933795534366779942992207567335031909207647374759503293178124888653468518714465574849574373855001960418702803404398648991400057483321297201872544672680051830658270124169796476646971006362730924848093148082355878657498955564720304380915967929776776688292342578333535804960505955367548934937829093256713961607335334095695990992416760665131250406069477787974275402836165583091407969289289052595703487012736109174555995235823603732467384682181848980343406084065068111912007850231506159245157225327409441434005747135651794275229271684430567159086155200065463061406333865640537449835467187487057690407759381115199487503681248814450917450027203485119091770083421795964132226620410927362840824482324725727176791004525988585606079059344084421437450643842791169074014850095692600170591071321343478668470826361028755859305860717863588241276195225039369996451927505487781097287020473973148064489980557603526381073198887641700609312490238628981372208864725156814879277919018804721760726562119839647480502727622259955080305093833732752273179124671399848429985495952724830883401865940830323112710997214049550829703179982487553228279869029646856171792219699137988223190682259108271218836908422700843208112876181421552640523237071328415750891391447023053381107955009530172818761456180703931641379169204216309294468971372395405791311022590350339450072004047326393118836166577273223286579949788871118264775333260046260715565632319084803022766330815681108563201862536852554785783236480880038597089815991329795680291403459658620004879400366863247166794319798240404582944622815379351922487824614749386964968262653065636585037161137608446233248762287974864725067691651829393423623918649977597475316099636960080581798737888009426296792435156957987836269200615062817023172128209110402235895240834136702591861046526822087012636150679204997986047809715644418346396233453976326216348620913980786396325840210921182475645440654013241527589639658702312881806992431013037190839967814396210121516691260268325683988073474365959804092555671997243363092181109985236483034813920738445784143588406429516590111774960862545685985425975742332284946492348185083056365358958694205476074883825763888052363305932191924436723947025002019380962774284037643048750342166887973391446896674664139076413274002563737102794864076393224870426602940973167212869919525388659903261822161978392294044352396313242341823745064390389782410795396044935420523436126962572456342247405284065944874075851291049603272395117213924030056937161856517418678023089689861352093387677913616645100603027323398826888395767730708734439379568861915818334708079111489824260743596185369595200126004718411638801996539778861235899570180421881268524084896297166966713045039983011334992523224737424589527236328362492003863899274219129157948337447064259671825333200110099770584945658092671417548891245518369717280060372614684099461309984089140491653002388822270871792526629566796089816568519261881297071713664601656784612255096122481256281946891342713472341711963523520427721934257882939978567875088484681879619443000691361077511615832884512223920055025605360058987352766094301472669488403516390589264614727320794132455291684466440726327453601920763532694090015495275175283343385326780468361383131560095013635812074890656511237170642201442333052271144466752657213210787040221710646163171114479316894871704334795265606323314211976000624899907518680078333516144447279976042474188581787281998712016203276986620816157225326366148050636926509306346914000842324861000540985116677892832653570174635474474414223259146252475991654688516762939836298417347422244237947178753981335502157104987906114808934481514058399730134031256812590188000761082055651350716004790867762314463532737859673315227089398364818917460101174491561217353126167001801662152108272928796380447150959341606596966334256252823056149566947158558259218912593768953899566701248358949292889404004854125563387349571821999366328474021353439780301036223276132858817132476126887952660384048441217576471561423382734664316848356914504332524540856042677940316775319464785894237138885585423422555703410646368730154939972986663885927391927831931832667180689937795676430310556653461594840269211794228843505799354411704947887841829750125685832774736058087988442978985480265843684600011743377354692830957685509998241144246594692514558794230673271170291810441912805997380968275969619736994541562995629326118976134474893982279204956623482193689220933181443071657565668512923998298837787811744118826396169273658478836412951183054677448842340915420262333724808547272369349853435712961209094810433735858110249126960037671774877100864781860519020056732771225826737625500349894077407908487277246971883627619481251759977315224340453016796715508973804883474338273819128513250423916376436825571494875909574992366561554767343079210340005614855705417748583511891031875739415179633513715461214940405273349375644816044052599321638106451780145982517860349620041699897810188379688421714394006372390164743361502824186075463882080174431655901240853226957143277213223757826512169941467512038931505915511438411423644630300921818947109941023362075680321347765321161939247010673739801650395502947673401757727836950180434241430223794381252136904042065853635373318790695629833423135155244173784014379264347634614842333266875861827840771841963609325068578005820742314066433936560320040698320957209193577569399935503233527375587457882357463134920649061186380631324561922366292576837989536090580094825972407316372040080319626878675666404102569741519952984570737864069993994329594150985501382904564409763904405140389749330036555436114422365646912608608031167605051179312689131025553223905219335352194848732266011255469094308215119670189027180527806515346593875167068268976723655713113791430348002288400478351850487166872574887444764635178347833622348176776223982220908865265384132036928932834686085056517118065321854477418453544565877569881008860763333534415024746054717547334199800234912908938288387376722860945658397714631283990365657625269904286401831386102962053985512448572007548454190193492490702860975223079330461397832440546140687856240477021331454545330794854708779739989948416690434472207335093300198411648987646036533474065024986795191835085105700164814838303975445607804235075399342582392518195751202215739779634019555498795076201629708293174693389151978613110512892572933200135302454973256548917119975239992730197216395150932025096056703899100965147819047598267839925953571714456440931081336791372905594400898250184832306632745960553561590955697761625857138738753294453036895874585651946819266065880958301016972483715248808028958395055180115196278646359965968250588911851381274757645922162159351846332364024725956091682815160867168387638902554675987542917899329758621355773184884036228218386003881418396331185377018824464234648946280096534831859987554357459789970919887087793154507888879287066157965722703638227402496927799733319696563735861644244031104655098063099785666326263076572555211026519951680429995999176327213803601046818807900143825435041442665254761559744907071717247400709452937151039919382605753525041227318481282471130922303981270113411308848989591447221079797861030553627529610343767807236452322115355242686110590391502380427149167962750188668708867394081883069588357740681533741380527540205782634801968419844382040632565506615204371229955463150963299445823701420527654607435435787660560685308686168967815842001962096913388295389798095227486422647727128411133790622681152675468888079843927184646032278204353604822989202380977253652950147423192832189025130302754199353887105780868931489598236421065380533518890502921294932986501278968542200339043609322875412216085893435769749958710666034965536703666198997407190247538118856036578325045097408308635712596335140205941091967823966394969614063155098153343845483531590052843707060056899997582216320894303252601979406358980049841051174761636872844968822815970221288075481559928303162371034023377571934175578205701763540309956196882049499420992958800157071623236020447352355195204452966494891813068493655171017011305810911742325507285693239489095386644723889425276673705729080793240217517946940684515486440802567559204387019936923148621153104792309428249123189340637417394797286821137309581430751872615389801267213740837147189020213680126345718959153216384521220429283646108125289771092181239894272557687546315852975852873451313421994364295435664018255000241966801112964980503945979544545566641591662104906028683869573958941098544132787340235181180107466660060214976651518369294295195076865207108123399159736570617226549650836411521888633800878048305032800333141156820500320993899907736735258525064701927324312937542270548047374631560577101598702021969300236400693988597307190855391697581680680974659227429005650370904645964215906485041305124474077052117480960857106153125047304450022966009549781664563850598960076046861765614803632662110497842763926822837014957226255171049846078883939484013985724637683370445733269402929632473973686046194519577988165614382823172498063746022928462137745270273510699589885482001850260192665899505515110040043045544328070317713919981375476420209923857475516970199747665643496689476755447747634002502397669454243025416531404716102150608634072385337053445084059439870950146771539451568511631596228576470834843736699297017653503655185088586435960581030093109664314951774074242522933210669119629222757022660089596841240588537225339910409520525763069125283949420342330244566494333112296337262001686656494786272323727604246384493958650694199456281953022977510179060072960064092762309021824422364873544099025170818994960079322696549487583229942876542859191593636328195993599096712633765121286719770994037843431458679291403365175964782921610156801078995300455236229318174475385232005467097541606998485160889778202741376453474936614794517147772388147655002252536667720476485826736520777832979357024928969743366325737089025407586449356967503263199987765692111666342112479377366600804429713969612354403965459738552904957061923842109406549426804040564245665516861145981381798785956011952985171058763442715478498298372331194633774996565925877239890350835663884380430830705981658995147223368319930826960087516316617067322940166288184449997767667896628829940362797095418224355906333519102004132887193858390669092416089522783333803853309153933751230507979493833771520165204403979562135197470756103801759662962824674813710979396320106237805283551011927041783017719106022459746338604445381655033114790403736339425143523061623130913438221078358439206805829088833657298349907622095958449575053399290058231029368002224971670503347572840966705312997760824050052788628584370107503492178228684372890006610275824133663692043017995528724984603378647067329204585168966432847868811013554136786211770042334260547207402551941996725606833174523390641214382616788725044274650419195455677535852695079443027268358157058611713350673022029970631874822264215996541268154102957909827707487093872816811730952165172206364862786253018277008025244212833217874047258905567581594766454619938200262943937720470979018884663204135963487517495925822382203481326521109380027754348829576707081706831967621659617612603907524668332773791377974327395637812857893487630729938021245692420984199295774765766213756584494344205294442642573522690022451415364828643301623416594624743212566924101409035635689385610572005483957153958539224266771873546107877471602750809076846441472443924961989477743678439179798476693691275118354685493456413398785195377522938331209161505584617727463553132081477243580125071558206708568850409659053321737484241614303021658299958494349004947480251559366483905059321486251607280041318806436834822470734497960515830860957123039807557429353555411252978457746886665482179948552315969412400205540955876517410105370427100601762235460985589722748619120719570620742175806287300497829550060943658174103141154404237524832895969801603593334589157493309733147932705540225295308327457923731939504234700963935494748082381284789864678024703886894008864301289619827946829881817831467170699838075010036299394479240420154274269472902407089258950425756931386144944788794135175053063111142746305891547075189498409260482658974399418465902818649591298255029981411511085353094759965484832430285994943644153619475019755338433841133462150005964000089120245506765810598944792853433534253204221492197592333313599101070902894462023732137557740422341823897156547895072429594829317599010887695763314820651766455090544130760692571476442535069697094759427817899931702292734104252289988022836340676876855143722506685351140032987134859885363049853649235197250209341893720898782734051190740150684385252326978247703783360454565504006281176019725645226666379295226249962210699568733167246789638861935101048234623418450146935536514210841299907650098704776763571723818578414670613232516973395434970965077820372969143475588472890968115287115724582331512021133126080476743237297807590028301521451104527311922451721190804261382823679298194776835222918209891792983529209276215937343128753258261706827250236248766701583451418244054227018399194204068714626059531363959973703792779972766378720098916650930741188930959617731872032410758263197239685251159547993989961087468690276257974749383156079118203058625224527276899907402554753446584168098150048984862481681251990748147133083413078054811619062974869001247526025750202829941994641899392294224174822864856941446264226669241140294256293963318578206113685268804864112519584409936215358442108025002003117816311860929336737649475552531748859529848580248332460504437942807409821651565060603684139515132702685300938180762469046208386879852779739952484556199781981852190784158852874425111371131197540707676883680383041838127965510996377350157883242512809913219316388311318055546814160337497927926444238201630965391909804905613943003550182120363985860417562674082858045857562086289926861381191570965329340620504943393342175398035099030401427400682257641323362848104773367289506680040208646911228708834453650487715956770501182310915072614838594236655930983686660777413781518660635947911319490160160074879148148370796536576335274291407045898676352580177595399291294555364156356207337220367850912989254743491028402846938897373875620291788297814532788978059531674327601579409314078649357184521158565246874125486008015633179436578183070872098847615067157051114895997223719342791099230015595693004985422163186595121855640641218138713042894274702927043417342024584028526933464216027868282910779202402029514460041342938284426097979106146255716604329955012198734882769574263033797034099855982254976668138335644987327146650286238091769797844987137710150555845193184409104094019523517292890880835665949798850881595514739327213854941768807569983364040080529682047433565686616467899124698014737118396004078314080698056755299879616051315341912528214372611433466318930630254653201495763925292150613951725054312034581219441326071683919646581670823947786584156719844533054911792451480685082940597321766323452769537004726226474390599660130210211735708279016078765985596037441275900081840721481501297950350618982415604372016083654560130238288757277581723165348388786334170007693269267636123165542507780948512462616660750544052765359408769954786715305571318489689622063877213013340760333582418143160178462616769108201297258441076235642106632653226463799688321658079391091889966714337583377661309704138019139772232505714450112477540669816122720333974027022064000867777059999243827716928125926005831133788791983408762255718545021743027281446694357194814147781823343420127435436805153871487337871256403723905459163645281825540929378854170963253506478465015979452210140471575232547317207067986110130809625229955937615228504470650251740552782275486611335057197370500292919491727040904585344733334387679975336489262569189780950334848548562201111554294314824295928747757299857414601826374550131343534377904510725453317609163200202517420556637039121256096470913139572632696264400595258851655408597632916327788717488872179611921158387724536372316624563324403699081146084476504453535577296249023668345748820086300369397947560502264011716955830482849392415371088697016751571474622028438368396405052268508834116281589207974502204284654897537347033725337720242006983461133275704823928829848690120790376009868012588165195251639084778881665183507584488697619328873401172748281289942482794653061313367925257302550610698062130228310755898521902636401955128702696788223962313128222742444922632634321162972925551124453831985436128631189901598989447338522348353828164197344525714113558895106492761948222492010007372673887182736336331178740946257549408386747355850378909487103264022018108962183644084391689817533966397751622406785117613605192396092915380111220522538420750386574535067398489343025156342152651349200973268837640094996055734559877447801562284006046647426451984862869931246927016001427761728789080124294260868624001516530001676759408009151924161219078840833993939780360392947924045455474237350781854733591357324372666024906118789036818857616508915507806380890933862540329737343764930770096343570223091191868385623368683679524931729552240673413889865938038933969201949633764589156039072629324349151993514883697740576124186537655959952912995930561737491387087033554444517900990583457420370124179292722871470048305878499886808513591816795824974671291584765610213858854775942614306492347291396507170778843764301027682781624782959668275796943106942323772547311621062309346085479855546038022195027771696452274401503908887738578791531276861764443280968549061114429070573633694013077630646705158266685822954707525655028002630868343542301823300369733152099248986691786198987405402416414839084301379870023804591400472141285318096764574697238607962226813678944323567031709665480030989707447808449190380806792805442243150352521159316730412424823942968607142891265174047780576487352303444527734872044078376853540074397857817044316298374179969944964122443677175664065713635792228634552031137753442164326487221230430385068586396331221429983049231344867539012745706133962498702840039395320512098602467832014728564768041877040710011497007599681153944237074898535863593066474282048750203917841051301849893120423931525727375861888778475002222820901580119420407272450867598820797505383635752917121825252884922355556857706564362616928500443677120893007070470432157014748186561018454234529193844870422869189230604274551623885812180262314595041617614876215947667122302373089011184199227192142365257116889258464809297478142469651548447818190987272245241071116656909984080789096326507083462940886494047199856944000492302481661979357346823221023418331731279304977343151999109764860371211266125584332380937061815561364230107918217849832410912437186950200397006157838502707434080757756037969649031381305807986930968716298678591493593415807792341398872503606077624089243135978501199065751790114541812641176178308972435066774123564193720566107934287995276268903121590101385947970819371616751872583163726049868991995511993963742359192748367785892496098492860254354381333137711012997271257035868715087794668797335834357222800715021446162799100170543689474750801503505060587284454275476310406911093037714382370641925296705478717669548393490948617284270967388385761782747569764357810686447016537181279437593969803366907600880774746555974145885839073784462199940020410189885206878249335851313034869677812241993296741381788108113664365701112489572984201924639104387863123088875190820800683382634457984211725651823417000956829682597669056397079086662492083372679275653271336236868201249408286460246651657817637543251077499170478699650895600936184140293336640046822944688333741533159039119502693773778953266789506625649427256678745482953488570623797585944711124478442904060478064487081814281435722611998889246485747109699704481720161802711216349018749350129789452837993742132299403178842067679497762663361602219411231261242440689419391707559010237820554280422896969172326349159427465580077561773739227203399458049748573249629886055046894888931463329834712619076000837488841897182048751259802121333432092774976868425158935234677968840427107532337934259206766523115350646425959833852924625180998032463424201157924864561771934811147207595844706268234713147097010979133040138862717117741979108113036401351977893864863117650727452953428394755411566122858140157204750097810473978148422661700860909876101214397774677187186496855762167498180366292974292001099070062995091707765738993005169755794512105191980673875910299112701597116857407296056148843229017673980618840029903014190176263089755525637540591824513011339717212397689957446804451007828093309459509835112809732403897592684103617015114354295985597655768387288636982798319372854139257727485804099402179188747618534522874305843559026446498128137797631543019897935660245577743593562216899603716839121176297940511813487402097411182269099713086530124807220882668001324244695679413033541390309733731627531689621083609220039833952969629290003558327415075738626897509843628410599756376932232850295187522112898061909009728987263318765579543251178233270227386206675750826108400368092991396210842729035039844794409517757462508494082350042246559115125388903379179631478404487585491783715213324961026539573527192101291820728238180059326617759905083816726478857372438698069856500956872540586684064093256701880611577924368134335053413497911194720338733813393786451301767349584159647167814116672692666919940078515545321712926358644781160415235008302086713400669151818113188505004565598803717670797904778715731831378501359613357751006251872229135368315745288839264777791142452730977652604735134481397029763922962602996225276841180737051919735680932664683879150626912575844566438058302153567690446904748780190426626685443624444063953696072576481323942299949348014033495410763257263667076289112934146187644531412289461859360808016598990486053633169191587805312608779970617747897048172444170760235856025322499118479566528866280914155526601100560521147827007250203939193455223302377249556852667283075644720335359408999689934291772990699210906745425525262512085345568489591156485952831622305987922776290843342372855879984799842137758372936705604643188165626349011799718420321101810681314116702789239760789648865452424154172209275272271234015955475507033503175770485766129639930401352234258705935938857873797381120720154467850970821806808264699765191032261499682048532965899250222726160062065423603313665290206343689065159314605612122719849767788964768206184522647800528648166185585031586666982072456883918255202183455205079856889605883389548132413843571568112522491741247372281096882675844320307884674978978032660605429026230046157681994716843021754584551157961447377511444620900985404747699825940649303053360012604686789238862409366478641705181102801012924365007501145766327695841779409594861809976765435572897986503572512289550754804220352648103986321304402440278321303467136312942244891957767859397038914450801235755789486176495721520668175701287546428191073583726505491681520076107989356164466272515404631556855685233987953232030513970187211437252407081690773848014676007421903706860401666387478857829189161340277218874441247924501829160312461666556366471778604190056728063790912401799641618670335165163736767482100315125007452791374201280244974045183289198975343402466729481231497337593295276448310753671433479962587860890470211895549623746019259222722687767584982677378166642356324957904202323996779193176391848554863482813962054195841307176170868095736107339468245403653325255139128880764025631722485055462119963843817567405193247535931627119932534522932523939389309350278096922384779791406382044225646467237635997883368936118227711057077889303241983327930737492939047209076944180451850024098835863278158470206486528984134521225349369606341743884423479230791658523011772164686444671635595877536497915427983914762130976034847958573391864695076168683835495481608758464100130901792236332862518184488745338301537655107047465656901195222725915256120395081098142542502841383305481539621371839944933710217367554141411767285605087487964926496295709947573223532047978543566070610823720810517737669911623920243501636814006081882496122062272833515368937306270233466781573113337479911457326057378017953928017766649156064290405051556898401123601638212621570939074584794080173856847059070206236022027372060343107549531482505614122976122807791933082447726320232955745256255398381664454924402457732406786325294917792802861060203956269751634968413886075573563043830507159912764668948680116319021502542240630594649260853513516741628595285736114002254689014043730315381036447618240179741990709266347698495025701956759902815353845293569480741818011994813634222663280768983377004137408077185380999426833879790587748484210015752355760092592096812544518613624828405191450004678771284082189009995185300980903479103606802687254110942055053193498980987846151061884803645253046306768794600923234115931890350673390319831184026294638842824789708447527150968469150825051144715260562553742082963371939716651155076685039297405578877325248173694362147866304967297133697075693213914827825881227077155088280858556326154080481027094244389653898563171891881512183063133385446880797068824609113783692107271678028917568628103947149762552840272183455497603839363531756516340235806239791564018813501289892975886415563601517637560345153626687023011633036372884962471845244674840694564022320516771449686882280152087206855708406220769246902865474996731496780253071252107687497292692336406607125882595800046944283516873209577969970343467956911875794942385674557646350339598459841119978518531900038473157633185140579463834600146818945962716139323707330398985087774226478737332840338010156677775984094136290699840599332453042071145755498016255536623338109817004788094485071842866683110885085321648991564943550463459238229481295881392230421870855577733192777395830861306484343415490467825069161390734981359110442575517636257690050810604218900542767576815272173162895085780015183070730951287742415905327281503218060397776740147688346626240848461645571339071306687106482849100342570866643942731289787428100680315805943684587853667893990344078812359922872989975525551491167176434048945101166828861751394766219812228865907248462792650009933282547919421380533349857447627963436521837952358944557742857261594545990456952458093494730218892507803655903121945850236109441284084064890561832604564897919299800007580041145324525094012150443111774105918189603542841973234750479087951649824840063022010346685988185316250610753317783332308832075220513399842801810653411035207043119933721442554956544999061567731149149600191015639700196895053303748395422787865711103914826958586405025679859769960726539071238210182997859407498493947439503268590755815624934066207796173525982581762267391797950278565933037766178333475898506175808162069417037617033015538618791536309889922157117508715249946962499479998456171811684696159786267419757751485317504247367470713588383175021578384795631347423871309455500117266536776256392354721915689680203170764483145082312865173526855788034079702072226998197311700463827961872125032088426602263634382643157154904814128926709639201144754193871365486372084191909790965597725474043306098060391921261209889112357592288724065778140811703067162955581279541725920095416263492971188661998548504115468516438131604616946910131821841263304434568117307137074550202398993663128653462531791463339842596673570067042877467356428249904259532969099751282488136587955265355213758511208792567919978205704535578989965045487466751037337480795823599903466602410657130053586772663911936131531943954911032944432703806943230388369353933176795947647413521612150103220218300633868496327588674380196305489703713923850870123825662247419815444560876202994939812882324348788404368534316796558183899611598118322389711179613184275851119238425558915698966882780406874198377706005876450511564157484728442010048230181924466395076453732503180868325176180115186379356056026143622865138150018823223598127187405701730557941608309760698538733274975892363044771644138733479817826002073489912369248989727089746577478128325062013052192873080222367661516609288069877094588239855477513235217046285932710470112716004328895369040963757199130041956832680519704864147012703533773713795758147036163994228353553645270678977832824677877635614138018349892781709267253268437970170965647760623453677441910190881868684113287072252895879810379641900802103692591303544884284239139976185227207869785564741184739223408257056539731291374553783836723355296190511467114746351027100424926159398327670680213365159074614581839551206973237833154164743296195992126262345801430457667381957246201921110189886896862927882690484733986131823603804460196451236967087454390487453913048932036058031957195520829755787650451156174426450863417448407741243080527884373820052254530608592727363196328862696553375044465757503443190573729770902309833592755486883323664253998883765035523616687053307264288720972498039752618806808367024810197315080600272812319922176924791722190728742459282166874089043167951950621565999743065197747902806148901892561985183496919046768149073141047675048501301396940183633273643151456507482151460095729801810005312564775482626239443000385482133836440855951366516528594226981106979944392228476888764442923613858881201201779611218917743034456452288593791292996452321278448000181697231269910658802523548275679824742748446195464944047301904897047271337421007873856315443515138571994802786125404166443860506105233627214318679362518619471781359867121467556479207720567911611533274652668280404397667024777431281231934716893896393197415666739676261704599239574224588837139737283906897170861344751036315392749180759945990881336602068696733115493069530704231850357843705757371767674660717130684969958902435162382704500914397903207782689710430539068338342591831583922983268640607649675737504907379026203646913367124244046399372178123914806270055789983981482623516752309862009992095516014107946743691828935117507184922760382555158864845981691576334626801637726534807894094793015471928515324767548763618976630213950835444046288401931452920978004425155819937629491093746860024464011398094676557597517967976240326823434075179997118979206253350837626549148045696268264612580063044121649799903623522857261947715161112569182634877429895855457828587087296896329044407715094669322758502519414721574850753571153029099013922523898011064941933145953522092989389349528771529789801836189197198812990469570061526970296837315052280058060095451146071382245390889054510441903773987375384135892201747217038490078407994869451167861819888027912747909577191918639180924891264797820317416342136968577868874592107842747733081181247042256683902121973048484710616185681674881819855428665515083683379151267446987663572745870764002410986767433946557516803380835466155077295170364601773806570913583242147441895675930394853128391364219842018732780257171410048989992409574242674760342197452703422701007517333152420771846440845350781241861228454587391681946696949435366381966193112759239106987289383616326271581259162224070742834190302554148270709729484533075004063473884189869816830869414279182648938550703896245339327386481036480024718991337023835915373458252008649956606565291102417865728019000325589682932560525066675350490822021455524596124271348897758387425312449392539059130034675548074910688294878778190994769012047367523213547515640010296119229286133997844959327272536122299821211595969779330331627945154061266587375463485563260357464031279186663722766508629268978326488930496356081605502559982294208827266066020976806092812386760974665334239881440551192322316884514323373066698082337215261094842329860876682139094675491171070690815775759039756317456204782986120658913492177645950070460363971350225590192377949518382631422651130246831690693891946467756310605491520761270499890202331881956876649233883168560336323643878071332811847880573665869147401426238476142047755257836632412928339276510543744291950297919410180560554711323392321808512022176866317157685331521210300456773020378376986654316347702571269796624455050984206987377524985502436021481166976667806493528515001931802388035106135563357612254259268349720770321203834435139189979800246689979090152288403078705120735251734432266158022897334004823568227340239291752955314058545896611327133805883469013224202183015556819784294878206307339025386485620111780063575692227310198133719492774330876849487000539050764499716650839857429551622570249693798062236563266506069456031959152059158816194365674430132492662262245905392761883478753777399441727794861911076561917586076834053643477206780677937407106702226722163335326795178853744878324485784184638400700575135442462965365067922872481215637420653713543458005570902809134798978608427119213596723202698855077678193112756656991278674264957000910288326885895790049656855308531010701745958558024159752887580551474483529833406980123043320296790732887161464508703774153563018201255564760363743324294423418112013009583592178486360460105604003596657411641124301564917187908983807251750500577343449461860768268116395091816245973682250422186852603366689055598135011904407117898514572495077830994928314930701135799311870353660766106896282515246184575501809107748229633009399085196049655271693432031051137591146402313141388398139760909211250942991645858906931923746975707367218280026180781290567757515784074266929226519098378145612543233051099151341947217433938894559988369402519241526524282887116711447340120800469301981968849969018538326237462488726588937831652185285843679458877550110737519930889938295275724552966022035481145931139706776187439462479738982496369605974971149922933639026130722941759328430467780543603284883461681929463661709169148590826182665908936147449585303828148242954108513319282589979769185633042256538840733793360452880702342815711244919956115190940279464798257490002759088503286980247318060088668885072972278242158259877579338768821755715622709324002343808750176202509987921743968228895795920412109688352768745365142276640867520973231040316444358372807778905642029438454027827866320146482470293655646751801247616919401184706442439176026817399723522575064200254711855378390835495284646171099912137705763966032429930912824433191292394417989361171053764999572753722738169059861202092156969379187539299467704141555002281102082026571190421831646412310741428198390907502187355843510546444218331939252950605748317802500855340202696307702938413487635737333656606483869816589665842988403610245178672294092269524503792932095778977375336636556117417530634930255470131418445719143013947032723877834403713198595333482425503771465884758621598339781220334855473693844016428341445305016090186211348757814672724487932270750738689434158330484885718039366067732108905146707781387865462710357346676902876049361417149970517516961087229541772021569084391940690193945182157070947669120369423413008110792367375500890073459859816757233977416189217829049391321484898817534006306610178060260028034192726842017772504945116912202591717138323264523081128850775553876425228182344529718472974573049950914912790142332135002872725289474056169834768665624105306002422013098296577820395148540045108415861453484915954614414676277602283231320384323133149674455772856136643746289425200347040988541973374548534233968653932885158962205396244101548015500601127688245873924632136505939311012719641788068811460217477110622564614620314866186315553103058219439253909430026703158310777116970437397101676813037261632108717045029732082164192506050758918454216201417832797212118869700900444592606528030248602491909362491113066010654040408750419225435698473794343110108675149439617177390030669975542530024240748266381920907465695444509613741677202964127990387429157550189308578262711619768403776329984960731673020132199726576654930121763217540723350716670056856615456507998305296879428494204363086331447946023246879574675449166360898290787686045794990926785666018557424574078711139537518154341031817053376014761248676054820358237728058135255763638163858830221902770831862220827454281791759474793196191083270898233875210315586498063586002917908816371655323286347902093639914489539690300340572888262452818635127697676243408034889196386853902365419816861777474451505331968751811097332404214995494922529835475165398203682437756223115891523063060172511001681693213979728044304262834982918383631107227642641220408323321999018355200773243749642924229562819717064935230931300213124840812680262848921251231326803179461656941788185360245800688224047745511660303218865537640497983236641649759273961485516456764764253764668019013026970745888643714319391446361752307031983639856358262464498429590497218695675334567372168526353771207374417420856847937826551501651306712161497426297728895432866493983659038199838924316244866230508662775514227995011792626897261568369941604514710902073715718308791177449361727829188009188218290631019658492177749018962606268841078150408693954686693034135662630690851849310152146865583956093182398757751295433210131978604892171229402987121065052192370720907876030926816254184742547452569092791052632286200198396757920987081949856991168273841415150633090153084672354202298032604950613491782224932284518140220446857802098850488158129302388509145322821752898357710315267765789654422614368206950723580848239057005978144806164366089973496826263654783282969959630539566166919185081684028883820250893552870364201259373399122641127685619840850073141283393101733364260365709024355379354537852362122873303797969621404510802133010355243212965537049874684683317152746538603828714219952721219020248558743739929846884498121844122244540492138181707400826751524086090413671203937259112379164547140571638452877859179908747990704395128523051656481312535005044603592672836036653007785947442764964901000413640059702181638713344778703986994395841855425480063177416079499045769230892113917933828167891454474982501542209568942987520554193162313292394704590516417155266569468689544518650770363006164875879946848975906726740527041836917079263850709757773343578632539762435078538986514655679591380592034361726508097117343821746523162549260465533035076162874054795397492048764907250398384378327553189777624451569667317437721605914838613426390197619372202595420507626801552049758517926238613700080377664205004760099331179534175904961196518962770038470255997920516626555376809140506351570869275931905345323327433487804183507967427551591787027090048671579009267612204989902138719811728858819898924954879124859633615471410342796203867156433004649678141259980082429304821470708419809464868004789947108725283259516115695333212411076574422758375177389892494255140204437079039318317768406687171655847767546606473426694109082906213535051844079175822169179932406587003180089532491950376309141221620211972526105501392633328371038309630531281884887014009484281749592653344214982012471637062764259780727697000391642677679003784711620905079117137024335085162482388332452771932154039351382506111476742818284213673864899799380614513866599028774901076935571981110001122000675737428757805506670293693248865963132629872637300760203560859785947481691688849843140581383437237037207385898498862079754879735001427481206296708644413642806062336634918783284997974833469426910181327696063761279362145271851937616674367778425311776950872981019232629259967104879043611342468424705155854191779336144106409583781773802783684993143407367241766022563260558352711146860855466518359340127413341222343406468254114757261379174828342330839720340769872196210997330865900058573383860675267632329538972326725619515692025096079384448512180421380853177283474016525213623314476018027769512726129307544771066427693042119688736681396634672496543305345771224694211715788252841060599190033367656980743368274492738857179569067506522355322472341851869733790360148313774748918451684833106443713528930709594155732456120052214049742299959605998606679548917398762645677872093346965875630969918602571132292270062198854233048442280439832533077766803841430568908255276249155434411593040338541891657276394409508660759703586882690437511952616695603782608785722765909059205881116577839616956937541679750857846699125962575791974528199856753653740284417064053609891769726519407881595449879263322142441828569827558046885433641468713329536827716981895594574928696621638684836141392746196767294177332316668750819690387743314795119678541354547850410274973155103894773429063720694315269430340074297153897556213189663402566794795608166698718698997833628544539430193740889223154398428533873454690949850492893478930123882079406084123103103941374552698624045678701214402535213126371567818147892690958169557553999059112166284923279343001174336619706640685274586663097018372470264350818119361321632094922860299139155552935666317418624301970898611177354999177736225343345783757448015720434561327691989188388088126600640072707053391045473100152609336060240804312999469862729229366209461893401709198436775650818208459169042993228471264423116740883492419617743100352403177040168138192228633194039667792465751776620773942515605727358573547535042939096807237933441481305766391062079484751387329333464506678709033702687656533089272352422048312443816906659307213489601445002719095143611205878193953342472642660904380111398467335526163590522439468759945665035662834849918209439409775495597849779695949202330362293968718234972326825954308387047904843147618931003697986179428220503594843412440794495598771776613531293564936635493571191335044445239017327309545706283444544665475575233713422544524285379328132824190349484796511511420717667906331346976449514445131797154824224684496375815296681925769312288566188091180301398790897808088137560708341666552132607425422638767160651679648206582584850577804763109055238734270184585656321478075422726250638215941786770617956268389230416463499115949790497427296208429034717141798804205580891064040238291604968701858412368025007465787561706693353251821354149796475168745681117305728141405099366326776106966841185269382358557127967533720782978528882604697550282369172017348384109621027490345954230115511756071649587232227378199479544886818971412158823893580884953500081993376257228255223743068460917053143760712309347309230361569632238568728907731130390963768966594668336281002349247909177448684028506926402220089868301651260797918728245947443453336043103607950971732993177833961425194385560953459241461004507568671095185480237094093734416339441629177071995437495943379201364145484485962494018750820772289393729708794821446221715225416706772579056502900970526459780874695175776831792292961149847158241485048741683904786841281943443316193856630269597708928374161813073329590860911923808545683648703028575777303383584609975085273302109476217049856313147252690518131865017858751500990503904953331604619044219359077387117076191535655585016953886822442109350191188644396732152528954103254008911048334938102973681080996127193715892887238875183763231950439611151790108252288169623878076163421716897882091305605218477411467966378373442904161367301135035349626833287260282205671258964593936570095072751165022414545053880636740692545055635500557889486006363328311453207723224127515147943127563247507633757098323998030082394184351862463063514124762494814031141186782891671889159731821168707822055342320926498941590689485803761327149286174188340671693846056350109541717022243251911086508101144235444357319546919776856134298781449830921522518799924015521879973239917762753848892122193401833943625786605161783300181495023863596647623469590914074672467848484400699984294275746151580754423764839233212352810771274396891711876607030794526291691032618750130301088201119644144436815160171569693904736465174378671155183901822596046186542285802639023701900378583749849864552784821990632482113573584150317692907525876910007912407041930058056273924538469917585175511919268962457652221006429494017677861778563325357595901642451339686522007009118897466270517799477926275894502030754770846420678628912062360140129272528216695421985879915866691253724283366603258858191155303415088661928456913310046052304343718307653402128199864286156345098114614040883679808530102489501949977261095187154111878964694836295518640308255684222006204908225784760581523448967179821675262038272089622445440625042874543094448590567273173813487707372539425596662768663829584327026773180970653979791493017701595649530572878123301004583733846412102042613848127283520852705220908821351498379940977234785207783581717378361166234646857160309748575790975401538463346216930822312846707275789399213930306870984508143466677607444719950486125600554911100166039270307310733970829080567794778536759061824287524189760387808615686636928692411279343398842444189977487492633837044365821322616654196919050798164899347102727131725631879629486930051232103140144056380492177889191407388341560436302587213208378563683972622507322275528951322994160514221471288446681279840516585817309026180403570404073779517378753605679258348261843218254148334411058587094820763290807239296430369643566505454053639155469899947023793278671889928502007010095459027729472812914021722853855337877172842656536231679179207528129959038025213366128890796759575903229226554280010583587552071606219430026566495411015791349585833948945343247312745284423387320989761185731019503279528718948593053945774000012806867103361223305496068729786554417106606698653464416534741203476920166013537735686516208053760085151097640306586812577170231183636393307991473142049577020958018632102155815361299143199781550753303136774109250273174372790293434401475974755698465171649501774675682336607165365965818980776712962945575728188477805350602453258230295502941777537668554875263111061775029790015493208652279811429458929550136990788349575430294999856919384483207534511006983834167736409935132049606572882909256282072069755809728991215377435547992371231327599788642776645719931724394852317299900272704535817102875237858363629921855560023419745248506193484122536597577013415156761827135266340803595731717342419597581512323878723752871006666204242097729473953288141579003887740331655757593474416433533413478004137144255078164904633196057929339459212740072667317942396819234209093289638089091288769097796889042474856674496760333167490511913084248131283584497929543515686532789452032374465838073821130232123480964458533695243448428639035572043418981719612733550095686709931798598152275812126424539480937017527557544408807738544030011429240268086681922482970954527266193486256733628606160898748335285491567216281957894929917592183096301850936558121414339867627930105966040760871289117788552577328959250654614456893371623128412299444348616842448800508501116959894828132866039922087934811324640767832847955127692828533824384813343299330244255777223160027579658098141701480503726388091519989108257865875335767314682861026808899380127248509508880774386223497792735525253788258525639757220815914380836628857682870850540626851691388084023266561699064948462700316258706088334052585224528660957457656821410786304884140117905627590317722626623398461469464574962171347272974104823677839724211641114815170162233692933807923023417698707698200832407262905568854627791107739921775718361430701478516034462383483764977985676469645347730541524990970335676504570804432784519038116021570753726227995326911052925185794518541913218946878204429347676237939396596145479134970722816470212749177101065029154208460707166571736270462613131759722578459559885354413321529352736501886617203615128364742280442800876693046646775698166074578431928548010781979584856374066125166611784920628984597673602192761400932874240525389822509393436359319871397693403630216078829895611980601818149176288113854414934321488571278717003840804733149127394117634771647896016013804315500277075744683199530666879986438763110979156081944923605925715802540318394437369385692231579101834176775179678489495823489186961055817486084690861513618563716321385178201784769985873158894041729944872024889387802196453066546573304208532151015818352842176369099146243601876016577255904874207359599615319555362109650602652793109746095544541116993989230565453329015529840516472789049248855290604016988395964004261757612322375087106391115997188573632163559567419431508173934946493644445649518752169688241506314892090843029514231618461498527637633513114091696160199567747847937176998684137054710597587277112943237743636199495189068028647260949879683299911572412715101392370126187984055695599615816921553579057798164798822054565914578352503128774591530894924929646285648332360393813277656638726963868071365824225375178619356115248980314827437945327781239060354246797815515884993148294892841615086452880477466080620558503048953452560429680806423896890475762616870674798061196101169747586029545348519807860145087580342278923542661986189646627896728146125421095296161947339439318877161699758767920758769338631295179630377355872588021918887146363332615658273501879903708096021838840064192051893373248627144911368534388530753536499447899759513468215353794785448767873849553896257824078654018636723861809338052264522926056425960067769883414006438802692330854310649036066059145171678086146877764582949221212030568338837103444615330235493685818897167185793278961527012978816217964180440069759258119944003701872105047635287953911785833725521460521123867251335162029740718840222327441086114789374997293547244702915206067176964556034675773291834969406648000459768736758912420265198083850674601505374187962547486137990397922402723915198014528900154089912918522271452696357237067696941378177153128377790254408139743597184244743119178954080984556530377811482760009203481194554476287538393712506355304080596433388523652156736001117458201790973756998120819945959361690760299785077376858973956601139909329647708021631173906721376572510889810381426124893979155988529946812943350955179574119773898669686522029802559556035477996537461176464395641544388453729672394271205823243634326959660344141169381360862465907576431317680039432880303854436337949758788513807916241613673512437135814791052917899138874074331561602156638685502246995625964591149939166527581819572963269315749307484844283717324799544017220236533525676772054258040005876966443878097699838366746509767623833485096063651471798086412884134355951815829711957597332432327356013872224946059281003048085414359051393621684356544645981284636128077757886243867854259099521503013840934905122589467224291277322136174814314029356350112474211066465183923490232760176387486958806568952673439458604277744723775918525862914158108468671033371231452344998675645354595704389869552575897633694975860939989431102618710468284250552173989590095269265988561223994532772073763411146879152521486946335234443323142031830857953210241190097089947439422021954553552197559742504589660492616338561375210681721861103695769731157786739406138390654812750672561974536451566518140604875877920889997205990655780837547657143017923197895665776853906781506681996428671312017945543550825353244977844335024440368853304620700340481056765844611133645400820054349649164937622694521626825822461435598861732740132232401245082211199437776009893057682764179220932647814318669751354148865212019936609685887321042116223376108782932111286975673503357237948573070761854997933659515776382271117867742455129915152626961358432553024163858227276293792249958379725463764868434327501001751612211210216793046081820425343358043824135800862115129802840034068730709222344662879959149020901235130912860266044592443586242555403030206668707406355285324418159278650101634584844995987231361186802812299144105390047974901298897241467001165863103034947859917433782973640410108393474960344923998081875523733778783596220136671816625406075240665418866189494004578448864970742006759426727565614177512411947317358611835094151245099973349915066184161404737813875909302421716189102728873955819177565405274847293455936154095326036285316509479808605473752689716668817146775288728351902116131189406512580051383757670432336503368730172900692712157567819961109175160512120921235663744605809480333065807215651952448538173274287666130910072184187609440271110128342996695360500364983232225693119816072012835918803298119362456608406232106976791422807206785178061476282572121303131885873457380721422810598433252532253206266567223910690422879731016836527679201077873395141984388079771411355932930651323083395298613144667423290534055548601903975209068184856287476237757036104685292212771712905878786996564871476427054625729580026388453583047513335541368909435745010399994333229780888942379495394885211116019977829111621810040778055981883504520632394158085462215249567427022674441340532910196784163426087485120121792547503541969479520256270992317590733217326160585529796882044821286269501382006228836232093243871194684843653328267760012067882768677271820008826419123803922128199095157947663089439967374439210192504496254505298836694624298106384546995017748541444568634492501291660721392616008049378349031615154944592772355220184743780682822191379253372639280519450488341305866763747378635870285703574832371419192599699900116352403087090466571951774675704045085886572407662431975391466588798636095729729625429936921817587948946033846950663700474286626007697735446629710186409627288144209101405232637261266092553916369640999076480700600520795478487478543574541898607188267822037265227209252379598143572616248864676024109600365973493324996243370341723364345924243285530378437168946737485074071977041320173749809151498377647149271133396636865890778731844215364392500499437158789446351411479711176188948486577427787926735320216033060983252577392391672096742378618255786763184465526060747430864353575690663909668465598143217548043738740249791794343346469684783618894203256360828109544566528939515706217829960414542608211338836166002521141564186530825161883949193313676837781034461200980538287364806686066776526490764747521079539450880695541465961435011748670027335062634655403225608636984231940444341892725599545577194700961937623326776042063538357794051134438758916722139711961412440425384034231209837238106593673085293988282926341355963809258762962118975862203717039430474739897202979220165515926141789458189867791606768433953116658474276651018754583286114960913357905339368865087371097769286062829111446187847980894742424549419173882080568107377072237148015175477051171668475943692294847723716438677697835509792120111044780173526066692470023475921198845565995355207460350351954510819287891271975332725176783730249873798017265844367532452051717835539207111073480651786040262646048176131260358123774859380060911843589368989320666562351566532159422499365440805596477165653580851433024829372787316083627873291297404630852456395538042307307581772729216098072496916782880262857089618814706450056154460139430823815284953026767475576554115819648046848056554100537193829893598177951793202584873554516126590094119553489592025317311605157999520875039694995155416786440079462594470787447189191437303338581371655523107330826223192933753666821906738744350539776996525676909094012536882014052650246818958427021971337001194053162905970393070919157127512338276797429581405536398548956877235576621481794560112064145999579778917168694166772719325501317031919487290750748995538265939682631991007197685324347370286687951793221512646237255534188511994361559129814474659665930890173051863584689985932045097515913807744128367325927370968833665534080889190448737168774835444871871713392822741427268965909366396031059106056508299468177920783844599615575124384633126808982627428125524683346273281082492213843338537178354667291440950642250237828364210228209947246342711058477572138582717051196605903352929125508500674331075484091707664416015249381803391779310749209124810006913972331341688373581793600017196361057670320918491908008080220117870306894739552787642763530934850525454289181167874267967941779495418937718574108886041433443649866872773849951210588745546966698140748178004198101264879815143468724508214174345567535700948134609579895397224176387622226782369972268529468095714821621696886743328820629836651651780455769762420079783348076360692899223539054424152623682437481662889475415192807979187409689037841457619061331254885362712940888752907075098365405042816135465289378583322876579807045954554863115417407630220790959155776435921218834037164529848983713945811437874992047440238161694782385685956456551346878178865388921905446567848024361985054976302693595273950741936291181573754897183426868631969621244329714930022887583853508616672691015597518389991640767318353974431850292667593617741244319166188391868041046265529516545580263037549598526845256310707666609164395103694204537514343904517806684416233755846317759774090195249587774962615223311548652735398901238251627190251318531903579345567111494546983255874906788994033767585140833188342770495054853571227196046999041507213654721460351637265228507943385470108325934751620062652407446559896198621017231017362271880156854224355207879823567183374509340225872399296171086009677665624140250709503276261529921451060070373332939699746107751605313630551163322120768234407191528874756015620040226848470991840629587349005068115057500268943120331459806833285030169820167775866981517804549146803667758703456719957655309200238000521936610083086102299132426797271097753142505564799169780322522872294558398998416719581615552479165047826763618149500888648293065568740927239398693358323471289246213857974532872759110600944723132305112147586803236748241941467381949672840621516580343643865633217085347103777255825000522652344040634112436966304794687016972918021060891603924198733116448639513879554306838490641903768233180997765770150619681642334923998239585329785031849922395215808712460115903810504050409411648193897945025082351300111111506499430339425151749890482755198863342346829805477680843675666142966294606070405504618852135171303435490696077588024478850815487475858434951558848114770035277326843207516453408284377159624562132425336023127503129130132982574673985151785048679625581393130408516569239790280500604755205792580185666107124093932718830006476668427120794736308952451456225077370039860700275716743531376220571380341160621232502512980595965669612008205331762217943583899957432177814472218395044680123497473683614127063183460932350337813888669399667113275742935526085698570047987827977647439859078991842723535716166525704403784076071021929656204918434319560042009358598777710602556605918367999050687398563024538664870515337705347899000350728816049590579925305724488843130396122515395568512380813920652051421629397292372035470704106543513280034161711087197524418976027523693534938880098838155101850681232390316131200923120396346071563770885128799095209516445170471959926879927620931585648669012076909569594152549308008516076847443913354358305621254255034946663696132585041966808750184434042657856622245530931735666799048086350045036055487019961623964301080084817288806894849367119926626984116207035937846144972905959696435851802131843442913302961043859781769297053393552039836861660745973316272303629569781462942112668784651903817727484828377760014546483253805946792273299416521145511950738063097075099997547099527015737858213288236617450413222070253103305558645757164852009519227482930974332378641472772900262364986262447016329310800997393319221023435032356444898579122730245779452492825616229878398814365045130647426291101468265605921037704253419053511156106006444803146398015050896792152079634728230717263852879972079655439814800202713699286956932929017376834063519303527282142061356374631000764605951928013029095399630499557392907219763083658253870496617782214849747982617424870386617425276990328354095744238305029134078131730624038303159660903490694958370507584018304724133294684289069774739992699799835364950429811612945511906150255441863854511105416497222993311610468499757770337458428998131443584596518973732278125238687395584531011862809294576785179270040039178613327028687765774782004748680600156894037790190881674158327618980014622535762087630389997776134986910738757218560528795511600225093980972094508583982560507702409479651972882024215370304818346084984270581530012964990571684333870479356653804908962300266073869572394543193211609102431108606496304536780919886846077376289450517149471647072038540642483832459163216344915342316735568986119117641353781594061733174534034936887507181142395664924082913174396110652126494945269542836004577926490974046527331493610042415468579668125504313204045839498307733641426134010657894671499228519958470742828394853943255373666553304101892010768251378855255384703474916221394788662498567555780646045958534019744614894106558669950838581119561572622288741872111270054343434452134239791273500665961964863655333746428789579103213581818279285530052631821765170487628904305733699365687150728885853283420330745092081402793720613925757733359950647689236272120615830401120733640474127598271986486614651065700520170596586329378586159913511180363151457794076652650163137927909621422346436179284069206848038670182228014423926905303936219609584489255755820347299307822874868667869767123684137540807791444115755010765441772885923402675442452815496187613408771823745751941495780090486937584236590779474672419078435154749666334052003399045190099549482330459771675629408725844918168617964828996935042763214860740528819103292513223884868949033658723921166266415644731161022475211576968623017846070493124524205632918960398775223810745714199734320000421747701484796006543529400421323282476812198951187139900152751819691118000318160464322126306537253858766796741440114710698958243136085138333514536942374909295434445077829647436438940569753814672850151327233836570001318986286190532756744659242674258991792855451827853226918379907769955330622678698215514577200292157754143441247210627759239595917637054602882558731924008118986997263455583564172513173171637149665423304083329576648172942499553851077865510454424527418449977217153030893811660727117828602934944448955887340353057612833527137458024052102606294583695160423276735931214567594440744824676513533140775529835252426751720865355788606542440517565655486266284871795039106635453673222107680224277853071488187231214784485332974315969218494005561937033253802100944225328344343123736620254359757521366694020280309370203014189243014150983472969395695526390838768709779336485263117739352582556682903397939968839583777070368134574190625300460335283853424479359577530062798861080874016532270943530912625533421368104806975594078992048635189112639078619018568685627828497638191167711601470893852452072115690102144957737448959723494068576369808323927041854942417214126595425416500363856428036502419191929511961757688442406205281121093305142851591551146333232272519321972892246244996410926184172663630339891937558692517902898062514151159446291486113995072388045211690100537884047841059397162154774237238852501027970600897364314942998643590683088345629826453110410515097345500164857247238823727345717836159989077939618198315137151791557184096040280743761948870504594858302933713347403584932520026487475145930033586112783329358136472810682355646152197952810555208196865770207208816093406510394300708992798157850604685798166776213997921568595835550542646647845249594272767210764727361395462793134403697618742742021694268480018548643613912228208091853499917070089343148605673038622073502529356168343732676982405342014579976762805644966138139995792806466336383292651383940770927934510128637535026966215650708395477805385047915458550296188576917307333859834829011955490924224836715944635285178698155783693164752709206812638929312485671626516341451919806226370216158389573165420511745358333919885375434254286586316177001545019504845352867258325107925567862023016506700851472636318198966852867920664474197273504303466587411262866753811551117733948346675230022079608736903130647004286881646446238499831139177463967820954977049077802476088593030162902960666617162622125060048396962910159875484284888689252153723391729145574451478887994041971009367772127717047140612492041422818890154433311435572757883615259320100326863356668736468660160833672937029603043254311967699373090788674259230417436089749213579668136115345821580088321274003133152969516665081296877320258053509562954286069893802291390397100593065527912862840915996496349122036231848334599564087906795918391287775945533759797486683121610284056346299662744400375384531491532026048974978663564673294836488105515691189730032992706929168279282203364167052699587142689256445470419224872686383276548949098406578945156590046896258486792258829548751555764804558138168815768845244089019240564373063603406296399285225398473459852217817294121253937161268765285711278952179043891455886778961439820464153259557716701608609806106241330996582108367794091198852796307643311246801956275804595547225418705908025207158059301888835804596907818758532338057840029926410609080183493491632190519261649119983130176397138366920498469215952855013195448998594348303363030386700737978243044910325690497983369741541107160052169561265949068999554505241878928107870523094009851013075765162201758575794334650333978455529559287279920320265380638183378816682639063602354244326424519834408364457627891163243924298789641802126267099547023123942972035220034381554217160687983266944003823913753880531283598567350965327003856447575524006071225077997063018084262775268362394722776732086132175937364907787577742888150290724604875310732313747231482194967190629098217030291050468611637916753206244072211346643139894824516476339544826657211087778848448888794259106731455904703306079614266515549825610584732985940563288331447457331056017835478097141418670149426705738211225210097091451767494187133529739594688168722015147332020736109055106103153087630754161218113987352677297700680741584842644815703479203483295777995107895847569325657860911800383505107239751325812384738111196032708621387077706886926411824309868489821107222340448785926095402972291861479028872252655610609659757771136410001827687747342226830504478334920637451478664173864153819020634329278304177721385949930840739720221837220333846109634680701751665038636098239396504455404271351332758621386176699678651976151861726750539341145898509212470687147555657116277470606410974470806454637824461020939921282159018214313621729273477835066212110453913431038359075567801283898249439386433346190581577387455208482510197392962173408252219705565011646371999565169345457295410075309371685409222282799742273554817280075084569406855473116576793163419759612269451778113753093352507886293539831301206214884439881275859106391871167649655430866222171465872191695319737666480106237435742523409485238116934467918117380596223521927425346748295588752803724052200090246725035487819450421672305122876446562854277149359809505728705821955205057408040420189019946926793733462201898270120378448180531820524339345333832255282687977454173150786217062890948718605234674078393051959197685602797714419543145544076818504087079405833349806687068648584949937087825239317487995473504184257143650407738150291216806072268603975455306367460854184315766067270612772767783144312955982517849877267557129588263745532297000286458759972650109558902478051617686152996379078602386298432093278384849936927524666078953510258387151707588300368839943068450276398918249763578883602588703653551423253681181459999364019051116113127625910075907926729086427201141339346188649916584751021048076123168374552029208752098006734063105055946008040553671105638833805318159940590483343544634611048505579263241044120210496369990984174078817579468343960441266442509332469474534708595837851509321907893357924654265789063102044112960969577420812992012175304283354034945755279678006219258281167238170132597733801628199903038191713199466590418917547646284612685881527222004327827310909478582563597657806345467456430044929773206820519566974132114990373852902887541461216866664341759763413961399570614906740259139999787941866821305066179241772788603842609257089909271418714887947350047889900722751388007927300824900260401048903099947060657470990726917854371962956095744224476123025645835068228822966045788626429982013830428367043793508244865954905525393762889969830465557375691661221676854437668595973460074344936024864916423074155261891844134677213150069042886972746664984119550464436031218956352784035857998052254983594866867852600097361282839180488888682621354374516939809874581023315702399805732071794107465091258889088726440975734786927861793483928638433436550924691171128893314185042922831500732316662104888289132006806917612671920021357262234723554973422275076240773954524691707643906196939558950095833484601805054990520285425945081079658070426018811940103704827788974934163445795273288792168350615343614808433000037246256018510633155007348159450112666535880358158595720979203901158023680362812539511739640993680450077824616754596651430184985722660977477973168600267573011532998209281260385868311012586707183747040918597984749561880729131830411614544026763583503362291850230386740475796257039721311117816672174447679837977708132613209817113660923646711451578677870511657525586270812130007112884429666740360156403412853296521328019679232435999135822925341023154425704144730832288378139318768119538893159696795734934897908139320743055603512891629684833481888175215496573516250071453896513034071630567344762104828367229969542268952843816092824975409969409301291497234385004720124617375989993475166904515121859848414919563441118197448139178470260352686330353618541891365810273251591548845482279453458363882360283221588504497760840938340826793922791477395624333675004917237598256093853515843220410168462304030834352687779787137130747478704101817683474133514089220692708083177633041312197804668578873727759557559448855726693246491706824670996798882429004603125864492142656352009383106922774829622492288163269171491577039453232971131597606987137498498395694686333421332620483443788450066082495242950494735958943962241186749793122987404278733373353204541202864449200657626364638775322415933555219131739901730407814854458798007135470063223037761746284478718062701721491332514818876448550175281218946139966508050299564349110051167569780207082229820247123697073133848878813816091086791318558301808631491188623977749840696715102891558109343796255052926929860067875093768566806801245930106617415401190307285795533002225316653183595741107851222203242274359215712708432999575294817574531610703239843494810677602133369927940842355907909933874335878523398423575399777447794812673153199381444003031893286772198448575970714388979575253866122253286761925906933161574996228150571974339194044046112894955041753780040545286440059457253074197209820462659458136608837096583828685543918461634741920806244124698741284287379595622702161783050348139402142531757020755011296144289105882667000684177504777953066049160588845122539840485102955467666031945428262315252334111755819430734886416873965171674187798447808040349972031706143564597770530869349349620052513182925414684604097849722254745618100353793873894062747135611468235159533595695881666634143880213240124661911941842450985444253243222183866053747610015762311847662775996379436435622184571038636899021262195155023240129027574926026856015756537274363643971906645600295272177875161026282093822038679630927581628396070352127231826877193576825419541358247485394173164409145170261339239820997727370626258901496877691932546123935739942710079297312063265539175486010684008487842949652245601202283277188412450168188101967784747228426758811365372798164842576020211401155626912906599513233666525229348447896860602357487116572153268761769545106005791152171891287068471080540535759850714515536432631929409219168244140522959033471319523723814642807984615183718038260435978607422422899300214479920071813937275546624426168796936693033613935375513909672437644044310699511918043830759189185708627141127369654217110434238030062851999788913655338312274999369185516306802306394779787930526336806683491287958612720281101467641130726881790623914869871571455141445279844077979202467028254856296742371191978377298603081703107735136784302793210650964858909855299223703982994440456946038137972488916571128822014559547268901558013781315614649546477421306022478136694433885682329593505874616359859219363166609145211185062125262209078292948419928702020134301813996445961641603947465722995488529649375091488846361852997345174514376511670417263777821448481566633809665876282587994753379572421157395861461387579424697645428500698067580466269220901815658309217312296365767691427882114494214996888973498329079347802737791117055380130150840845362810921817134751356944237167000746027937896016060586084189685784798212479261126485688436817129082916046994953984607652052680738275888566739739626004915728723817480377089697649008416623425309591480597154096286410813155266244045057348178564110084546428972885438133042100224002453394823269166095652219684347925322998039930023771810698308524833132566031362067426726165049936939226775714781327526102872006959058901972973503792173890072119457690231724766441845625519699466124532587574775964682154790881836034217539846465221279789796592089125718663600980703260753313997661393244086302107174117457605700515142937357986061222364099457836286638552253192369105641923729673309818218596479296371419794990212960137518491835328938362819587587783492648838254130906046045405628157925838428482422456960659709320072391988993829447492782257857961670022256731217531503462203380788928286807164388711401976726094144373666488727303656984398451179656489905593041247266534134739659600310441556559953835280668384718860193252482422781659968883892195024132336141784970178698222809847047532250371838025654974758896851016997028940942508792969578631721446368486134262538385944457417313504759820117323460832715773559415611157012553591234361947641546703337846756368736541412373495693191079538823358336017774881877525312208628899857553278665244597530412072130085610041381381891018005685673875613694704120971310416052288269628475927964396479990679093437669507373533453064722756047421555521687554738729899971063893713070402474467203640831197000627831188263815390401490970177758360567501812297668061267604562372734493084985760184816794008495875240340313829721387983797195219241866653264942894199629125167625268904505443456158189837263193379576704628553638127264903987394839226349250507103994486743696345727865451053454718008942384914022896689398642807292501860759486846802203953788689863520730849255148691633728764643350751696191584653008001228072372561158979633492006806662771802834198403203285901691448321905860228614222382474393899418495301144919327962440561266805299805443312625660044835694915383540301705594443506540208154340721936021219251046192978595844915558490638773542868208175171604070130676270788549037539303750823684177631670607485261494469876759651274828457477820539653446430420091900909620999784003859756571421776112439983403917293899084665909343692731880365938636637223262084331280037729077562140037983362467777423513063144079807893257864605074548712651095485087156006918496492021296180075293459691779350953876852073779916110366149510536275140268622522426889269471115222790700245162448922134196944084406625814990991046702994606943795789567622350173507057354648165276445405019176114486609906283365675891501077424893989667646603727063407656144990906390748933454261794040498329151065155633949094252682940614108213358017689728534568766663642775768515673543947765605009583481448684128659671460143159311875151451750417240036796658114242480640336859864444755585706837802250401074026951457041241793757919511463923582898845409688493076398548638964537372980237651446960699085366674986494936614697408619061113398489154547033529835563883249625242479449609861034016687366475135005387978683224695051626334417739711741890038360743916059602115769729967575413841810336588639491853833008144559488241894665884275682859920182703781636304009409382263110819869247751772521547344204268032608707190155415001114013124678999347843274826173336338008728876810926064452251475919891406973381086360687603784896366291682490958011897595798586282718001823633486253027854817652177839337467476725894787243078169230766968820530305684386803688006517324417892166294842641497387718430963326872682741308861182306905055617201873886504342645275440381260153535448775781119054663126687215730255005868858800569730559965101733268825791985474287576541720125331060840848543888934579727923224714830574739280627410626375401536123712259152380947929237343609253865622248825719224145384650105594612813469712489531860226591949300111629905822210189074366054931558427630574934768064552219836264816421899186543451470672650419839470392431496055557010480187004857241701989624519153860285880752463292196098042029701275713978014235433321492452321109654577702089110441783802843598623841242878515927623761462111196064059738845573498453045525532174865374608117802643478790519552867641372207736749420413071952582780365031632147400564788611778928210321797813635243800195345205670604131986636403272490032542062043587844305926007060310110921706917296104374568382160138290746280057331964018356413881294615793685759358972467059684286888986747942688819678560788563489039940675748437118295382157737562346208203889778439672033235601272865527973401433361823537655525995121220515640224306481296710949760678364941528816722972272650384568486193997553415940916147009679675196140876008714990994438845384765414966345397109246970488275862043071783421235780687021117405727916445699799824381231450686362404039219902693392351514988266562243141282012474294076854559109919208371258916244012255218751844876646189501660300585186991470059321907589743914085123374977475336700769892538106588129690061515689025241509693751203297539534439017665169164217427630740627180465830118792857055723654917493918638688046504023435736270549933723396243843222865328107370950271055971686015246078057983125194776628857238762028302987297830838293320624278523493111241345968083255733750857990420594051177831685525781039154341476290369773774547222549143069894418270686477871165943267036025472667468151553870033732981042222673736734965696493478822677411420768499579102135781486175962646293306207963119409115320751057949018057669838548611700476752730118397713019620637749830271475662759381674615506437780581192636173655272280294664382277357764795193821465725517584114313566559067409857376568570256639705725299827030485727631414595633000972337262306904603346567935075872326445745440121898823380008672482362066687201317205449757602256611861766725684022442505911360855969109459580778917422355532294849454544137506947990683593708019178639584270176552800009548511923802062950929995643684681780809506811975433146599140370671888294823394006980788662379161819090541124095555813279554164225786174323776386323168030640258811799247199022549374912805060637128356131494546347160764282901439351831308006130592117777019251582846819735443486719820363325283264159883958542657065409334654161503504551870804473291823334298702240978455521849333335305828152388578918818731733582257470277063148519624275895795664437746826393250376164357320825895648714249658501226502996051747734684653210418887398770136591035054628376317351896823067055530586174021572618133116687029116791368496111838364183615974195784280256329690595521808994710042592991792420406824387206818048301531358718165488822107213350865060515500742188223109925530677614392784304102133361550179238452083331626321744678961037167644294780991616611860341299491441329138291306641227555280631076863130714637172751115543976334644653589907313447125103322750725585640044860906631626274121931290203034254250292157802356649621520885315923777754767855678235729603208408266152257877926179091635079025854170178874967222986284800097338590027963577045599070058130896253246654175680290263923827496359529028482933584051447527703584124047796540247981263151264030381530456137533295026362349944739060280142805879155788198767076589418371903568722470642804023083218072175896074119197179279582736954242909279631861742883694204969608376317755870342517061965935675893676874215368272989212148404616279857196275190154364434990876694644757511301875638588222021300220445331354803706635522094606890646046453596256792596421778014537586484091173701178107771959809093745744923177693871127693242927670509833889346918875029973903939027896123716628062345935496133886049041899395805215438446135511353692867529863791782711490874916296600990694763211149084269620548459206837181096109489329239786583015495884302955686567639673799113182928370111750220574453947341759004763123462908201170223003407935269373319553439100894917494885294630281231663343941583472936378745411780331782209442285150907121350143198140344935327349509329663806949742465901512395760052513362002875314229473664416909320443460125530394843475981580255629630166501883299043786363831791888365524123789939982154326405887825990398446517018939276620567160654708222767458185792572671075791420424016258784995890949522492914023753652382663449952278821736311170749200400400643868090217083948307245441244152444994831311196878417323220575970498762139598838499431150146953424015063672449078684743487401167396005145101753714030995852168564755882866302917146855264491325975808378125200380808664243761039404335311146821242000857217963894555761059380243462366378480194650324538391910238536719502999341653164089630075705636550515884502982317527564855628939058248305294291904510307159883822143067816545205345001971836988941807770862125129376803082800262749955661765595134313326038861845066691474545144263918549625846840702238388676614357106697884730538627534676688235439478472065704418632193347928272680853738927270455063558618287960447752521879801524789942433464390759774263646587582978098719119182118894691276516563175957307525717303220161473425793945382226321739613699553240160164516047580426668994727848592554952747043839968033629309183708794354955695296735170008236586708423879484311324165267951538855254322908505935679741070269778986387808864858729217337664232996500850513280719419741643633508586434742226402724967104488589636934603792815493365073655775964411210979132323226298678220132854066427995924928261668661740874202339809611581464880513282505350586674285946783493429142816577825785741193219471675865985686951510374501593422064917597505343264688248786505636342033143323174579813761758702923624749435887121584852701498641893450292923650022821266650643295989873177003413256999246858774837820187343463924720724940386170591634866859867230007552431863931826392601059151358948998029147017060990143768664814986406341242062961875701341921054588920070521168506930675724853445708296187059068396214395950547352901974893297831225418662805767337465490095083742004348615927907977537768790652178294447013714854343981431815813867077208423865633167710207461249688462878262250099623903475009900346932193973690538441143429335231900068101990995932070558285092207323195771400574293805919186130401427614354151618809207222146963496616052498930994618672450408235860662081727119193162456154664785158792033241202181159822999012617792377297597370552338691070334172771885898658420043459712155789357002181501825385462061182774982124650826944841666437135689807888490996698609000515010453227799183162388757242597807935814369255664474961992912298192535525714490115350237786220852605075780976889765918678461659885784839977519098398278888964119137421749299223968572560039639303208152556343937972656865747708056958516421618770583308854481483224245273720275001949401523769280160785019926230489556735519412040485490921446073555675159094865714597314945828335592191409183830528600598458230904388466469849828850023061694376866835474182856411737124162619874491411337906692392043643691133927740483900656042165706706517845636419695321616994352442009564046913857927652620069162166326720759514139325512785222176728657717078403426162568143212210354591552224258137642528097372757285123331940970921538437968201265916358194880274160352111066524844700208400191480983663193452144361948825019617438129894926966306813991065018285634982321046708442054829260282774522691813101530852331594493779346593344373268159805109234615029090964414012012077615530787260457779341184850765466825709525883600562126036864319650737275973564431557152468267197748294239123817553312269285640696167318744563125347871373665065991334868383159140007219139459726830216509760962310658602672564782231470895138963273581028509754940121516195948389458491920065141237164320755962487221197111358714931332877767577779653153860838224443513193242680057598700907905666454446301431157468046274647956059987983132670931208990902422787187125745655675235033413577897558902817055351433814269847168397110631122752235666933308278705676312746086363458713839297280936532840155962257529743788442558500467325773511979612426838955494606344005041775186155350700501968073441463718428077095663827245341757146475008206690834401345664942166817361154102443066285473785499955902717802016615179453546573407261694854428366385528925734464046384905413833351620284240427979419827130515614907764530398015315786926923362482393339360153652013520122390092373878678002819995138732057867722544475423799057305982070824840200916898098420010920405693756401270408453034169183173571314087140121323685948462835963741761021876890481897414283787434237446875479343003607655790652530153830079787720975470400518837322100135624722971598750938946147695994427118746916348936148104126944776663393945093628856863750841209630754197050377611968491919152855519855296994654975198834831695685285825904593867236746923820467924125139979359460916490162505279230905648848906621923594811472399677624853162978062870886533007600683303436351120496092357837987695979611436973057361107091792256419723310299107623392666250946563907864304986645738751261690301180551864613676797192943493649434734462334548437799626798046930755353724580946446230536931145245662955950406264663704589963732005951718231479931733995252777692657624745972870423409851177779510276831698283810399927928671885447598702408035790365832331897646045733196369920514574420562785355508316797333940559105726519050943085771354935878343747233892591990411148359450328542511255514291582191459501118677119643397480148990017438462651153400919435422002605521264622791902240170452423309152577572003276189179997849978514063016309605883833314366775933293509728007000368351606344294306652584753798341633181220273497803053048572216495297469378449967314258817436404576311359501790843416978054186439863638433073518022829954613190390198904060635207675677076340105412057911043813195734961369252564030476355908414678629491978101542083570771682415561110414671277037018426095350080346282755256319917520075576040836624003042981812988958350542462631946192191388767394794855160348820750674205727189669284024044145304137092214332939720759700661767955554612387402804905737863879337132217915116750779304097038898150155355731601900751274805153644049606611382828244419554978434222843648685988509783411043364144101558689078116293373314630374481758625523030409037638005613960934394888788367079320907563668428447555828809167322899562693561699566747895754171165068713185339384949739393111953557996686888297339874703408985622679619807907965103756870728244759021359314864874942059363061064821585628686353543692453942636163319180936343298487647549334532201294702594800506868665355942969110594422133992008978890974338713620600485048462914263044030208416870453190312804907972088323699649346577148066715424953563669694907937812854499928912281295638033938068442216918531849616957012921454188928417293338777395850225953049335813696850365900751932385155647086404075147789263495489273923012316857221969983015868426375172498344502271971261483831053239825779031148425427782606576903613626649313729788565631154484997585369437543625371566802113479219905551816476548973606682953100359067730296265730036882600819590828252630296433933124166100762580876068421715453503643599745448316662016363663356060854573352748831616575004412620449596132094251713278433132630502987435014387087288979717226903963125025489799824603834830887958811738501030215782522693957210202337352755855184279226383728393229258247852588776412738702364866321674453766693262050905728974050336824943278036654716612424917351703109045244279607889050800022651767071020020452613193217419187927618812689584863895156961305960764697755986373216860383283836704727783087341263428321582029064159457610948170567767707444975927529055005273894763526878915000225403527711962383952379713270411862835097498284186341106170276610316921475184479659119508101310804169212273340692830191569191115126455803147586870917199257993081791393620477644783622352019794921638233266961135312955737861676857669115518006928666154818303674666271422267590630819936721347045148890462264492688477661570944041782519786125489573097023613342725008136750973527478440665752485434651008549570329833033964204888379648743040869493257869586980977105059371058369511566572911749468986991322084055085510979540346115633066898421685556112704038324568700819176420667171764094770456769304826647140618434104591808984726204677941354911410890535477214883141995514161051338904872195550529073102401799473584142649908862646826596114256960211888807272523513526486009925438767294575503307612172329565346453679634011910827616227881188668133792052304557649406295788195738202852643049861941741773148785600970659838859518858487761450709197952066134681493764636264511898248728965131362820695992606097463791298491007543654701469614762327968200131923534416501910981351219958718098196329961387086498018309435877515760865879441222780645202730033072300053572085166933516414347260793630766175293318863649114584054972374992892086898148060680685081697050678994520345608436206279140364403419817374428671738506259317830091348337941386549423385691092409798498469547557094106571635839284648082039069101073374499250036112085190130658360540407158505552522662632073221095813822481960124785886420451644242450919293653038416512957074354980363561292242189763538680658501832626751283275546455088857027002298583962284729101700048097932517254268281490563196688268769902020445794209440315442500559870066722803001871871074014760102829306465791105545880479313156083446095448958971213944654374177542846869074809197385504345030383806930610196089516367505457685177634959494268938573014200784316070836362245505004141589331003812086043421698602911135961698412935580621707422969340129020515422408258717600139670117022240363512722283904067357700308423908933102712829373712560251255681718533898851980134623377140387837808681973624324683520802585936438779061822920943603768060188067396913096798859543088095309400172702686548331308220128307238637458233367284944456410798632281729713343868144931122741308398862590207039772313836791045957033628488718688462962663998622590152222874872300643140867812723637867243324317089988804496359249034035925253222191823000493798925573013804589403939783568968456745005555832204249611122746366711712408966264651003594393928906219613153456266718623617907008934448195455407660645255284883928976559377619544515729649194355288089203597862736299272421712990333747973863000157956644368669692479753176447663651075143567599839107016429856359142559309971948383727078612321660986106993192809218615331239730153469352724319634653842669821606988883175863856923981251989023797252885980345824619810329107932687752954526100566875101764166892402448924198815049518814673932499665500187751674187487845670859951620143802853601971423126094676074925594627136925800810440694630346281874372094935088781430503810064997693266957021707823569734065390747252505498693795637709197550537908789438446515302928987789266921491383568963011846141215951623339641134927546729936805105076498288531685667711144282910661363468146024919868836100396655230909492837827383214139098493643677477765645268604116309105362429851242630103828249440072612169710922694097585804011309767744219251675403078480038034843601318866832410212310620006459685174622472933321764111918654818618564787925693696413375252828505138018143485408798564061259645639891275604876071790584174263523725420748254634905956950332852771039764240034522383134591713554290295737724909890264138256418669875304839053932250488065131721275908357029472884925682251869962737288099317883236147260067040546905982544171364107579549337420811274167904082666331700396850312634910912229629849985995744694807900395111470408165293511600747110853251160826221383300616240411871222494173036783102353173162547277236396952879348345924213307019372072265497027794700041596808924328063184417145359113478001052176200110575685207075759352572269673833522938691910104539512556627774626206091005013064383494473192744718596713336069437273405940639367296871000638079058558796949231981252802198010708615107122899635949653159570550343965215794592273389611726396088862625436448400785852962117097503955951058849703199834418622762994011102853432640839221896424602396482561065427001458095270952989287149238434514795268933606249804538806399945863771870203171330697837745005454177275041268765773120044930571027796994986870341074649033029546410606891840854148570775559163063284727939893857987160566777925158513197720504464807262614214464944491997374918795519154003076062606189863474121957950938827667010547254004599949960753749157302654345543692823260052117244667483606551473031110132782923352691016865541508910487077207624014556604291235900489410413717957178356267500524251854515067903985147246222998549109571742355100411988699800207477674726840739767199407617197305723906016022775701774852846130690771990457472171764659766667201058055975932274168304486195007722653641783727576968123712761782350977507199573805537080175644080749221596852926614189285325495041533508627169357911080604017173213027352491879315020179252821163822375920790362299604217505983131701509921666272750360561875200047833799981898492801520017003894566683367853409577789759740095664928853484439764881515493574199013678374768027541681120461428273072735605102744447484671840169829446078426677437230878882699469258480988286279589440839219986965442292127734149701558018585945710819387977044537202731291315719606187121015501782039439970190485490110871154587387576049220283803150809088862898652726026696219237749925611476581806322584830408565775936089840277805546642652592260992941476179323556806997228568495250779382717004508551587963182414251839090454558923823419471496052909554036224871116407715302208884900713720105445320990824639332645696647971838887222792985095165982068696122729129815814851101640229267423657089872467542373382972326181696085399325922018954515723749586333057662513662801854050785959576537671063532216991202176965731417303204294569173849521388928131383347858274967501282657910179734548260331334824265002520164193315354233076008179862648062123459523418684964242891605811085649121661220641508547115309819188668335392211777160260385937823755224548588349060940411550769927002536261835928283553779309110193569451737879355545329687112288237828393065751433142309389523006894721401433347903700866347904569958774515535960255555583313698956745831545300141639604245011416083988097364491359161290276007407600987768456385762176484698434706975003955601732813531393049381099462473738148777230531259888796208977998178547336299196759788899522592052368413023023669532997550147372725570618707819180079801390587610878020189161857875203039508876436308938288533206083677417521535417531520317790608611426509862293849856851636784523690106869617440920968592286392091504171425101839675415037501861458586814258108512097188595434560963825690643997318989318305699733860664506666361011211823994905362715982965261039047778619421969981026408317774415004628239842882203287421959293147092844728552417860752692004926444501500681678498135958104875977588598722594926749133534658215022039760433488865364557773325877992909030292698285166718273671771145290876869308067295991969545437099258904783851588074764904635303693458576978364544299192016682680400651284051004540766494182093397057231274502100368866763946285082833404447126908119333181872429471625629804605300899197530844408548991034672280924109710211008015091664373984983246434005975447758827668402044225370777665250798359068370533063290073738411005011027876526332924308585137421096976381933482072431358018767239367311740851768937975865929248095887573002770960832702066912950017540482276664959141869480416234569996710151080324750002365007149237056750181861090345471455383431977413882763220820706143017401533771861904154738309380309129357981353228038199935270458055423083209833375411671134703246739410186391155220203439559670670849294716126669809154191956623317245361814167461736212941007207643748407742340853728819186595154853515250518448463020995228231600156988643482653569203940920696435256170552341512066642513622218838373601332838456081984465276435072156729884546680416369085800179144401309009261828833899563878802984466834282796287243367936983289622355200066892402789642393070391699015509476212418427441119403309305755660524089707150846704883611577366075687913630354904810041517494131665853835716153095551953531700258373820826980173636236833830069740536949398749113215661005384967910626599218152607356501214095924814523684334719667804103147904467364490767449160029444526811568406056184965814299067669762597912357424584790808616846418921882775866217775236892235724594446650267839223899082579450772836638709471581611935034574191135032455603024213957589326597610594365314859054859296395698103879752862894455731375086438534926359764096166634792445698122623864617592728245025895575833575739630861139964835517201495821874414418380511236754280361991139345783820500379377700891115303473160251673261321190357585014936535510640591323572882885620614688411533378825016918076732722320825998978578941674673646703189721710325753362263314033658269273714361952460037421928074672485640745567449461376420900747684216282740029437172427240602514351229792206684044935392689854878686214843633704222190875990156175460899625686203463014756031898590590979098218431890941857215735287088873273433696192104842059965697508958740229922327385264840283589707424606676544154709815135681048750697543225450619092201886271994641107683180177015624128390485900612711698364291288059431102269068442062854719719713658813229762707442649784275406142465498274661911558102429479973626909973755683482028084487646099498963132915657094863657251298295930427606284121908665161553309705845192994960835552914088238027727294983296597671318851913082018262553018849071328824075118202656872894148395517594183169242143471893008189890970893638825904456555326402750574215613804716339912130575010936291564296699626941713274083377905858539847469042155242055717633057438802545972601832247420076730434878046322840284973229934968831629865659314950078246802514321386037105483708417473987574639864565397500283140609826312606177228000968549105982938449498155959862622410266954335755560413975970485990775034298240015020384764299181062933292291184520198830785357135267825450795428078727096649761416677837315800545776934224397451638889065063204706577589461326326949794408383133255226155306670611946763731711725831176180332975110158211801623202080020737283625078017814949154128891258549907635824698680804107042527746339693523701762301548778939776500227580470993337474747139306001568859302097509347210792282591005861977157671050560166804931345202377522671800961618391240212413843360148031067164713924477431661844269955962531099259613812202623632660747216217218824852851604886780161805735256088137671181389115252167240380330277984338667112667035104472221804185787401445042003989753762219487998842171349439015107920070321514017397881498195399623120154384553715060652387044775951992737323102267380507893023933413213254405431986033196046856588516576655881020248743217642707794732925870616940748886661448501288100391270601083809468287353611312652262660664934433701474975529714383433070428837644009668645050694198874408783861716818428752300180768947882715127140747657502018456051279104477150831159682820195221769566540832414827371530883347090512478368764130907797214638718299371673122552754396570065401383840018589081447537097359916833184963311362946416896699408940928395314207525204668887458320719365238981302420658204762165294151895300927814538840397152023122218580970746277655083028148128657213949782515926063604886047636445508677869002814685082522186602160377434977822792139144471850264986891648378407647033429352806075290320437004571917656189112858371417759151846364513641325897892670756293967366243854087443791373738817347816721633513658238906435799070927752207676920323857864992547375359120719507116586553682072013235117338973854631885507501868112203084097342149811348136898442307191950296937847708945014093985613038430578406694661781663943404281855079915492947316428398846855949100643671377452817041389134162006176221026157479337686358473639526515944774734243973099223169741706803457973340004072407291750075683462894427682121389292272239489366482583544767668449460719943813899500285573012217486206530405120677611974721859481466039031602949118544215399762552430529851197599108964316111820350250627351413074733580221298433699923924974794465149580536067486053201771387273250788632198242981098742513669985078126968351422339134857487796184486015105468019045328866590076240843674408846271272930159268181387759166720971318512444902813217129525238948867206146208423979185350169759996467851475730668062166886325195331654715790261191100701367205000163108787576206679312127389109200561963541697180375256655243517046428974693931563140337713746971445185156291108302904332605595205071361753209640518881562131166266214321362065190026158185216583272979227730099289642546019685063656133332034537584023857607900387454744187020648815287764584658552125732255873668704470015654281416703024014418889080947077957332060812161938764977286981927916189037259271009133656731619297588024733020960086775369552106100373329262996838047576813739633720663940615302734754275160986760991184456456443074745065532213333493274466000766807503354037245352332584069908640275332849790027012379525406271528152817729895010362131808469126449501659495940017515556998128757272679524957210696074219879042491160898307100013756491405999356189613965713467511441624537659666559666829364906353514970743312005326176694130094745431057453336809559637002113039296188088453539879568519134161485272150448763334049306740200251561666455754975000094565123076616932294153739084614299052043671675679797047820604317887011910921277968135632500900856976846706133173674466702243557895966854380412443506527704652167938231395538375444077940475810276572601195739802697707855206962623414379697517596624435980885581659708053739831940772261134909233679607384295146073512536467170993375894439276185372709567632935947458822687706568873960138288492703978817135463050969703090487984257657938468547636655778378134872199729250500009690853433756648226695203943222972875103012885238787924832087351626799652142960116242912220349420108813914966615138043187933404112736467181237423369563958362200674939322829593756863424804414704662883139654076193677195917874432130486109385705087975929523873113833867691062422929418485703715509682976483739856320817733056012038727716311136438929640694869585156239811874610906815239334512836523314559965536467180492097714737624913489136919488827574952705687109354330597273391366100525364067047176081229308961370958424142228988435207339954173910149028824334565768805788423435023565545625113801923273523882577541208497190142093902086307448694579328414819378963836685168378275742089390733783064531575911096741341133532460984340057861356675616505383762451500128982765758611504145654786002118924937000123796363495037625637470536970709914664697141021538561913851719248855135231172148008353530397307561513156622755623498261560837559036490754278864273063181320423910017760460468588396180141414971931228275852321549866349267657898937704200703645843614010890964209213948106972336943388370969076430154452587737505195621014394822126522066130151905578059336095649694464746372199784128277514730357179355401599045458044105781567285396768017657053343494339301373173170616997037977976013592727223992047352930870862548899778310811841118506947546354247396896482764256049934120819315526541215081904942290963256665341759751379151708438583453034255768950893775868038710995235881907763802856661507800389226846543124103340161308812555226002723429010082319480971702347620565404714781651774474551300993018584259073730391601097395235408064858646410748248406129232758520945192148838162395103435401716464154737125640602194739540526863079704905275372095295551628893844239099722401642291101753654500626720109410588395657109511781207225560218911663083969578939618055367139348809573343606943454720045144524749725117473527875602831199534133076557320869176575701845313789762120502186817235727571361646965768887677448945084200984630116338522268904266455733173000995978769156036057078502533882680369831877425255720189922364855966870365697260210808286292619534669624403887548456820706882193038893026540291154492165182530951613109168589419205513067091741519356934237899000052996645140038664523743832559083498071853837456526068216114588434598188212162118479861058518046574467987166437969030700214729706852000187606785872878888962844067621587988284260778461577020558714949455238170044452711912338201620849202881865966078674935799087648103684186420873565164203570426423312100468387302905711574377897188983800708597820833916220434436139906453764456886367108420910964781441684703918110947699052931697996782832654736591865467566703337457541355298531697933347301836329149988803991943114140075413397980027246557944813944401048095786557778612844346035384371600390375412027090993596265244459750658716093571704657543281378106451558020919048673248538090237797528311220078351852866162089335555923520378763192793751993712041313375513722256350652988860477653103179460904455779703856762580332441371830629913464846882681161209867615544551179725065397066475457533394523943970401323342598578631116166400375767610620296951307551723366200670378699987288024614796982458432982291800481543391411908513077530360984766574830044075278177798292573792415016646263206940868889474100382537602087140104010241002460908546017040661543775193536256061545233396462796806431651660576023544868639785752541416511256515471706696527528954253108962381561212301702518275886792255960023003016523496716539668059988086183657090515525258825752837383731203522626198317612008545043731439014663085540451135556858195068265651162222504792074055628473528087083366508963406340586511797866454733418144622987002237207571393195146969411808838505545711353113844216291062165428803700926455722709295625424050094778668738717962665881924718781592788995871971353883998450712496293913001648879637937927149563429947571756610018619555100766695294011392017637870065612963242899616266628183007289585184885571558940204241848020892376292566617911007242313700313727361567321689996652479276986957473220676410730465337214671410853575587924744884343290559973109670902627999161819271744439088958412762415616830990417234438136958636131188661083210599141061870122566210244876756103412072400751008417766953630958966574767478641750849518495254106093669807474537994608899215088669917341945666178674952901815319067786056281580526885023920629772373926667286118598217013502601276441410093341789881347749412786260586103118450403412909932058067209226782378347349034764938809541640243885785334661367955838082384174487032090477813933095670623822372440747258434284799537860328359870533259343938058039636512089749124836284122254766440911089621022247074412008219534657049186936217048990595951771707115067672931588109650698178255507480699818747490146176668647116712974524644407117852644501308223539304800534073717276880041942434894209407807638178797379781965787506890195691179031191199178334338225943807976380627178824331622818040449576505456483756690560126418005528671873184639479335412438617142921994638933723419140058109355728422947088838159911686856437192469983745051376867553011869456905302635010476514979725095307627287853529847629502989308356188473730284351849253113630752543825648472600971689102615330697909780247326138234011988452251145332201826343897703327426398428575671013698057258938294297193194145601758846295573980572997191512057398222335436770232611057618248193828668209566286421916613738834816632680657324437945870760372467891084232310492882968289213000047478092438784197443742613583313864218984307058593573202207430412414630860436503937662807977038261450208150197675471941242195536240654698046895150632645191730020505298314248688570037046646629706564340148506463641307411098249218482358124196214187255140517722585391986601424080585090153073502403042158893728830487882338813907450093416915155732304419146238214645095682158021167727117913956528430486062905799842404680136166657955185947280420390011027147611004229631821795959936399353275139005075921718667551166884852192705314601756795289031995240380833343683002758240448743165958857160844097404090801924779256854279521766737066937339203970560612149240170899118063033565844717035237582916552852730689158264810178957809836046702295274468641238515857568859412074539220647210481299915832017752227180649369804650287486676683848761580818054225775560350589788673937469113983051612464620592289351950949763934670862668936771776081868935591056024420098527810556328600291847875320981804743151362636330706872505851642481872845950737724730903647523720163435622908434358525257342594689363220529754836185639955388635613897903604161146486268638639870155091025107984417755106921740510996836046990855619061911533018704191247129385898240233537811059749539165152408723822744207177896087499186378105802158561058115046568471918946274657591530643353930335726887060358819284775482367338476233087970222750254148315662807367790856077550100442453799849362427612562646899135803815272232809960296837852254802426401356644541158807011640144285266547511305080355949294333414570415347968563785655993282704775895532037238311354480272115775727633684213846109014664758669637002406886270606792470541487284057508330828568409392455477504522262159538170529139551507843970378350364210360396105701523804174579012431346025469656583008601304208528132924050573342298677489740165128309131287700049013787407751900464393208233034652187301280065877353795255464941889012465232905129891989858399183290571557559570696274421701241310343531543800499228505321757702378528967170261520985710901275018013637557904430597513308835083252329193780060589602322682474513838327536209179994592679827656287564527209634879279769727226109445760917588429123532617614984998790720879287345152898344717795737697325318993170423232600663353477177600132189880844501371883419861895020536228346680830835091911587032239915607786465737888787546664342428482718137427903849080897832796423627460765802522128189398877064989747706676939417857094074183236861737505847907598679737938087622432552839585704877542460425797795770871907677674454490701648860048844855848831232593052241617079788087263175959351352259743260792920412291856848452580701958758965177614502404870741930631652725740780919245973860207614880928232186039096214131487184492014283714254446094009841400529748475584757878852862410114184439480223624974422462145219128425357943138357028777323399007065412213197216746768845251979356616797102597311361512103711735344823658782144775968457695181716108226628246321521037179777470761259523264142072422970410048469286020694238687445391904035537214597814090068496106008885566889307529281852100536524025359789223606431814653703612762758427697099688152602535913986684229332503817066395867785636279854170776223559620722459221368728222712241216709216561981012404850782922358423932372114580789915795145407790751258309923578030537001623487172591140212348765861371181610678777313435936844098819068162301993756782599201852714832759706338222756280206100459587261792260630462360844643956848292532832671725193019938344339657595136008416336164011438645289425023659962222480861805800153520578508389415132299471901768933446254665582217736107975006957467798972892711661876262615835925530912701475813402539194229139992507121103499954236025839766366501329782800299912123753398494203326998650313911143537229946731077238373367774759196225918212299664950568508151415280233139595934527625458277617110522755549161696799696166182439342778623875080854269423088054594434277654021733823279712908867638276474888590242780666494891146603783181984743189364210642832251545652440146997897402004134506438645966855946322060087481994369401005864121566109751942991514953444808586663914087182285947155455774356663073261777969107024359960622778606542043742770212001787675221729824128091778425773064263287185143213373605879355249053979637634182210034494470637925268311794519809536832658279208405829855034447788410809110719616438215157889291525179093604682490551226155603284959539473773551316246191404832721017883445660962547749201677562728214744976038643255930843178418331787580413605696180281799029264442078656891450893687367511774083942544014413496594926418390691264010615144878530535952287631990392593192126109352325618062701382020402954845994735771200720901870636594749454219340191631114396797841385734427391802568287384353720677139469035563270562416501828813907665238525587862206461407803925876485942850829752368965194753310612452450867969177935751448092622319141284381662436862946602289467898512131512620775772909126471824212645525158936856741019028095440683526434991301641601106047023791577402537329945263650907084025224607246277657416843683394213215059246156134973694476471878710158811229195441302412027207519886021566596710577116213732839706598993525168919571098544837258691390205623053414674695919171018147508972604707550400726168816241373657341937057443041349920138186370680921343107918146621713084143535209531077409906415159425374441271261983949648063805787336744241880319858688243089798995659301003430885516201351215335563506020665637008723060223361534269518751520436089318639847443182395702245183119689407114074019485215781542111084994720665267283953119483999130890683803246835634830793674811099559741723741982581687773781393026438552703509273164955808752660199991409202886512427526540855668693246405575640065307393198963083406932072325623906187460637287463202744591676278807287957591485100451904507965061248701503476757178399403689880194944512315150029297292397151391168981865505221821858823903429711644609264277095001503744712468196051820715165562743612805661842486047533859094333864474358965705893939240305913413392444100835851121798399152156992924152931413758912650238963312997404658591023993820307022439525262039233562667992851667843051588251258564525816963015228391025416675886290039826221833891736121627334410959672396776971969529226849592380921202117835713643129124586665134579227269583517401972718543292153783460115075063051118934504753609780467243535699190932377664427641469606904246325648751238932954407116067644729414968993687177852952466910376847498188418284090110370465987911787800550068244353046122286122346805298887678120582625506863006881649492603770630462889694279264697078758021158674469088009870417400382906659173114796123796229577449874859893127384283010877008838092476396201842952592390440907134000779838999839483325637233422272548919984808837947238915487985090331433726898892161272018823082424051035455572631633805716609507713352955956265990258978967128984508527601519275128185841074416997241996001470540600720743899359364147211492129808105405629082711429688267474822455435396486120544805227883554923402227175962772069361308977570344153030650580119791216188710727661570892555903628343650227072310936809499371820109526354752052120872100239387471779070802270024231696497841913139696151350466447383246048920316681688026975394762092899599224936491843979935351811778025258779278603544141789832299475584652280133569317512881887361886142503671733515819198741804175172743714639973973076004198871727851062366288308476753959361677514822635927207183411093306758004892530883064251425514597125138725990285820539229833026040686971950177238819548962467999279171001696131977132913655886699647754852530435663532150120823100828092415564580839485346481783830039493372922151537553661294309067421039491897092549214249944444697933035143988658878697726650230544155846593433875923479451324043157108311318530987329425260832260313330641320256494849807274111238618250038440617115701162742753137589381527765510717359360768761515576943061452977855320656722452225062975288784332531201033204970310558674140079826218442818728773421595171414294714231750479692412022309437089803041391297919298895489796449515389705805786156942795611567809524393904981364236052718157312458878729208834765857476490639360596471087232792011303791727637964273158102030492896690925877273410164646357809992077004516359450755824542981429505448632521235105779109213709718625529176054916471090759432563641887885203747474669785210261825354523993234635363834425720435311895194376074344235869632591584640665863914460545921885562491319807979768717290907224112770179371290889482569223276831595490301852907436271883541490846637749658613529824929243716702152519378782979594124155778482881431990495404508380468012749702846317778497837632528343875784320264304511943985019893377334615099949961083509874777941371706408363929803347749496911839492450633303269064478144450084530839896582331212577372037785440817380006311557410324252588250226265605485908179100088159760881276150047763326733590791494444006698659849652034581312219260925964083840081692007593538000120261123095386532767294599139223656517737903498364994916910793629973541584100221404972852318292003416222364028245208827069339141764706857328144790188196602894566224829271870457966039662511782184629775431527966217981426510748882610838337304817662356173297902674190201315660261296330658254104051760245571598538030144801780905619892030423879832904981176851129282520693270863661129965300665302669204188542760731671015741006109644916701757769075887043695603614155415727320045393886774131883877575863285399544205029869738577564533974473474325293406954259976312345620228298923616773494007484182172261118527929241456908423341199387149983882635533391402002232951720870278532877820927882554367540226112253188462530169858772049402213230948473914851444367108425441893457233739856983029558701236226731521088079596495632353945995268449021650824666567384642475739191231536475067921123343521806453989994932462408213767644636058902037149008612767393413646668617418578412710271033130089007827441542987114666454313741125570974594796338765592282736105812559364906939335330884891148995234527897727118063828332851361852834835457547183202844220406733840685541343259367119657446112938351940673728000113472476089890372212332605880088747882300840676554563725980675043408391525595394065711203403651979959982445277849616470880186030361956953697294813618250086504181315754748660499173750339268504711203870871198701732206909768667124272184402723520979255440660032143070546150377791715318147934717944904761313628803751852779204663629473249503504971585394074864888893732699525679966142380766491128326576601233374604858483058201110556766159142844637678241856913994425839101213739100623213600510479929030564932102029829597694121792286958413017895189327683435232255806141350553133167646517205959777407234185326357925227128347207082229765366209415937264318195636702741399466299854449796950426560172481546203179856924640910296970939378178398638775081910039845543133453029776559188239140640161693431892715187918017439427652988191485367824422883936198127002029451143800660667194273206737835691608506844672244989790132358355301218719538560284222337901947323113199536949291431269742194362880983641814358871525233231784764188914220006316886124821243852263626713218420203387412609946727707115894678902417053980764805588579432919899265595167322505783421062608054417974679053506543532605396179070802908288679988797081694836214241812836680003276041564814703056650409675377154160621247055367382279720504390859214630472885894177224411734542811549629890605823416542272647864398528066982207081147195698267619868081999601845600732026253647646701537200753125586867512866555590978603567439739832542432437615914449701090378435903233943994201477430827986114411127150557233446858402337616682403144348899970431528084352357596759695923614697293404292483038795930066709399300184149473671401841732532489393323059121398974385738686811826233499412728562253886899007797757435109370721778328812614361024487433978174693193821051961700207068688081566712893499230424993325500140063099162382495970994291095874125601723591852589960537868915475659521821768373798984465081546466449584850572474574279600311315105423083089251488603762393397218392472571154979116395177041211208415628585358423707511520625811353711845422842592931807380139857492181561846310899619994804515284112978337401026537679832562679531221631302614560057744069668139966781223105835649654910335741596527907057787212562200829541042172409053200690668867421037609433738040396821038998424403261923560485723377033930410297570224232802370828238592594699923287617153951290679495386522034806555613997379814647136741202657673312664869692379703522703518421625984674421298963537339064451225467065509133577786326329512237750072479934286853563651943233609413863406268099998364879598637677162543290714885528506776410757030660679996241297992512300887534020104671997226280641106657013670030260043844638323288518546419693149606658135042766234560785670399968503638353333177598498014960760720090240291608602805080798038112941995119091647122643259890838500138781829291139939908806465783036397015084103965451937658590229497586422428138262714460566931605672306181121030135440198377925501404446567597737152034116084893507448134926363084053396235777413513086424183875202768639855222837229614086407714296776643114118810576898408135060172939698690473195853296782636964614376910985907653152278220889851235276842855998713304743448794153881830417578182081900583757100469147415122420785545024711526973335799656450302971687005292969117188320495189191677454608697636631208609204262513942673393396992847649158992227844250491958230180075344174497316298229102310759979079078470252971957490943699659170932058320652007775259333892244660800603544971874085390223431889952234660900569755885392690806612915834721435964484507461199542696836888249116408605957823034313322078467644392561174419617555388771914937827677688072570880612489009996043535860820153977011806378254331042141284377254905590868945926263267304024556324967956455988835210077941940743369370086861685832478716262745900526644134078396786149719669905579238763665503638917764051116058352249017454831071252389654468614301319348999445030859021678357316669504363165176277550824557107752823923848549577838798838354534422187593783567554313333743248574200617392936318278595712393820679214824115241910972499309068227032412494526731504124417781890703724541307985172272944858217491117826184807797199316642810473060155657628935400633298241915853917812108866458665075559600355078881645598266810772480272976907435185771292635979076954799372819663331679862676651029827878197000651708889479911024047206624105890047968504026097544778009946584872782665117192068919516465766385912416114429133295429783983924239743104025986440531181280612637022598073001996747926161720576866119080448204066375796300546220388001982958522213707416632681383837200718036663564368384641922045954602675362897016575254122311054984839001165462440899541277439303412996877344350362271570992680094381375718385708691434453210976481625500486771244764028911942683772056961630321002380176697008240261833305542409063767822598231576775679297476279391959048670629795703753325380573901667568907575973378008859355642672321209927492072255615322518913118800684745514008460143570624706133384832107228084987647612203589191954032113061779708896785041104443603953338502415650830368970265289593124963067740483851868457193518585007899748491794999406716767753805478143388655584493662333764634110772539523322618608125827318154316506383935878172834318211359875248995637266841719011771621449602191157337151129840065132444141264168323624779868309392653255889665560695005899767422798619924670342386981751271447302140551793487867796160706594757241239839488507061215427225157722222142093766139467363660736429535148542449994712405743877100180430748134004482978463615675672715142934002186607077473685425638502058625033473744460239674306709727249712910006609901337211535721665744990716439726044290496441207894799835919528143590421202792303918460108164446026776328070492383843829903460229806687112407773707614556058534376923247749296214189238231235271179307774412786013659561032768774036015763201092035416780921975770195695684686604988901454095407376482673932838186995616480806764386954415118013867411956004435194440613469137735960922192814571717966292321755631889984288577251528310571544222856472498503284513070184493990657615245737213665441522036390951444899998726143990376274173616270334715507553403985047809263328680392004595311535614734978918646896614484685100736747895560771989958225015662917061415646767742777550396690710619679390372671128177807643251278450683857943851127380772412791997835809114863152045194312969507096708655464593656448763010303677208690594182329485022560966654446489770277671948595771641242466847304499188355001837792681388404962680523244378205385644331379558806134067908004620710441652831845339041791060738459755591969195371476902409460151709378046928347356894427679766087320127948159481354652113250453333347521937099600610369909039047655774355969832885501632763012617219857558710272721396241582367806746934169469127262937441960168963008466086673227914001949339190078615565756023922979097058865431387998834703690566493491499571948039821590270209486425928923667092677868986928291005327085315906974549987389017350691428913803100113086863492703601613030032001060711837085970274177274510734639767269865460589291517035032970473093191967572123362009990794106583916535919139797479636138676866029213216846202418527813274179144495348193474792706180788008596865003792103199803152218569108519284829202019377058565060344075232583542310185520418827971544403526993340126186498774402160590710916748591640224408348885781605248054613117186918283648885768078792881092725181600737527609894575530304964319418639060132060127856517733779847054983929621829962288458600485883424201072322581669837637151391531298496841449450578091528778357127630224906787208493111014102910852525268334530379303989458604423147138321614337149096565633254717721604248040159026101205493614290561464939203180586489618848193957334636204317769769845897941376322006086422326891940886219639922289870810790200907001394937817964608895334303920960550290123396364567823302497499967575101261951126153483278319195059667481847783717019938570068984650036171884424949189735264511769437730819001754534416566010618316063793479451108191313143943057018688816642268583952708462251793093864178859361158848599437939121249470273449269209199959548749766564987677967718033111236440963632586509082337416693001978259754222097897755692801214484244168938335832822340849699183488076070230523064997354375570115675565940475047984745384891851774613157991625558749049419500562643527914682000976196379976224576855531321947569827695007673164993687234160551286506856131927052723000268702919297504983224387971367721270630057265532641378699802926877929874710064742855953700081291789498225372358550182181754626931786712366568227727477896630877868113900598423387321539775221837745295737370827802932180547935858502603054688079504847764449884522874928642430697742728584032735927530823500987532162814276499431302685021461755651985197398308609971895150862629257975497334528252904234879823356541599528931318413207283640193036309186178904650559767114093758253044653043554755849466747625763010449041541515160212359766059492298698443492527760274508604689375950428069760775047811561139117188756674356056044510553202981205186186499608240157950902035943233236040181326484977316227456088184130284977471408219395212447385664649705558903874445438935358097600029300028393891891386611259154163767594025328572061612558672689673243288111478509356752936568699618156992157565774715261625622507799285589630934056872243543638770078797206712934362828776649980330625232123257285165278334424662701146765562192353093641453546475229306503256248852771745208505776590769124532654924459434028949199119599265732834138066336858738080772319901159673167955640858695033883772701964522959651721090868296940323083690874270536044563683500289458129277638638421590916562457374282596861695077335099063405668799929044099822789548439459275982304400678115726873254344393425886251760622563861991773685360834300764675633799104665965897272336403689014471505940710865480228225357938716817852692025755688234364391007441269827744423104825777005440791630534605214819198962137568100512665228544148996243654411980966457328173560179186714586075502397928836890895454251371420910712613069025523359819980023824073959787491167648714585704801882071849795137959384483156050671864006385043654846742547281556811753734994703970264611312651649270805471450291601602700408251325613551199928733474464419874938173162173071648424655912601843918965568781761232927144350416799082788603183494847652360506109839809442865804871058721862020980484427464921684179525159346887986196837509622599204400541575934110324233073115568589260775384073283757509005393740806624322056538608349616164030405402978221031498214554556912598433124925655324762502439669534570672474841731048833963065144808377788912984477555900813845470492148912238076004505891380172631134650365232288440424633283352851786124171924938624679249495286435285789983311180691145618710508830950639679833336809231207910094458209887416731815515256186619334233533497218962246031806843557589950633995168209699325479451246907197096285908823753017870785241772569268264223022091596376863588269265460810952267627071160646921649028662356768025574782366871230709859984771432924347359849332847015750028862277123653875497659733557509391345047792427335051567365854775310604171688901250355566887196264231857980832533933883021565473405972193103401664646590378874234854302177603972982335787831117105264455835424751907507226227289262589431135247813046304622491024596639072142007948774157987191486733617550736834529603595221584880014381406961651712372805478209853070849472563104170886899152057276736060225286847884692241455593818528953034667800805434816162918491902254950361086318834197831173164286607253068675144572499597869715558660478139130608914372808184578502137018620046486470758468230046270916110927451159703371509204102287127475004636079260800030751311742770941331925241403534392787764121886471087268382700213772469457050245413445344888798350369303846102015658877366094803704207567057999063106182354736776598976391606865138183699970477206957478355574596205548250500605687251283747586018304780479241769293974119827596334808149121371362492167075758121618085614663146797809578014089690166235212942226116551002561049556101002541325759534269605693548505572459730786060430934578405112200027574028749343535215213196244542805376728933310551002326625294287255126548141366753536938082460042705354429024256208053413221093536328373876924391154304456920483944993412966056618366471397632263872380688892424045618904612097813535520765640258560738344942852145719354916390930398422298433730367176511951069254641004502239818952052384714511158167024536789076755506646910554928030023931463278302461834085330866527938935593259475891805825985766074046424073028254451668927013435045289320865443314433675199445500942933639820306083328117470254036987524158343645210073904026108455875185959949027250266562672038714411095730200806118539868867414523379198358279725866112143135482914385420210763732626994663266011538638368639402423123686017350699632970172332314214569633184662249366849682732509582828291183555413088069516311275097972012740279386805814921316741764218999398112569237746319088854378706777214772219033872627534385220879734214565047609016807001904711738043749581040707041953880823168951340670035260344475087495872083311342139389778864135035739877094032216871547203636567096891616287794789685448758406214487577798856728339938575374732158185390597133872946090753373496683262516960335397544852317005524810063513927437397582554485766413269692768125582347770184409807796069633524393389935148546714555967553850275679037247134837095145444476300331205197205389018567716762774167776172698861336934955758533000376114901218144264744191846545615359628257324496192754519071495873025645235421117634047784420131094991681197254426563385069433083129482421518371170680795436271032374625283870671770011014934183433993966841211833271535719561600229707460681089310848330188903478390107373959135438108956984820478831781760296411619917504254610237515358939625978133365443343419416169168575304928038650467106833328299278061451529495502043358702784038046674989559333580061990196020776079512827856981758015302829531319147292275930333345180175824197705955091334807747389681047434297833784422822042843515795099536380201520707829613756715561394010916699049038842108993005939317326963382911504643883895859652912968672842674836522020317957319525381566904594025927075993646393526093886436891260493604957327969243333082774151354985168330411743467903021675447963984576292139652201496625467429248613246151424499538001768890031145744131855165249365702814969569054406696918579416578673076711154459698320430349035212821343349757216381876753017749488196133805596726052480353961117458953602347037226167320076371264538737261160410118288293348609358624361520158810060200775880323755560755055757537089644403564847729657135687340884534009226285285272096621042470414355075213479901372360072578024288631131386056667280099674982289350255709844827744635495132595860023613717275923515206112781490442214648769517906214121770027135952427601215424637541780465496858492308919366848024313878277843506007492606917654842040216757796968024746751658216858252486621414100514800924495450809359507047483757121032524978684066457010130771981937680903473800417469678382167193291150605113193867120284077353398575761099262695603556701711467848168872782445138547222328581364595482752130104633123588163323299876894637815991464318535282629064807120509098560283491423746667513045608242527929570501765132076406597832951347936827212353934772482877854694727701204223133082432985831082585245560793436271547621776997428113757448788550737146874786606335832850146471570080268149530522856613759962879497322008142897539372643859481747028319874823397620256322482789559521386499403917660662532285762555332032759414753366140045137343545744997246257998383610532944184424158165382266315872530827146729567250686850278904644454907608207677808177670523962959848161532504514069241419513329827679750044244142639386408843738509996234068263468461740082442099589077771418073642470419954280034703089724408599190464988047008959083759132189574281989602166529458438971430424204782667915510834523946814370962597905127248872848222439943614704648466540506250678661397908838930908123065497844250626404459924624543239572030622340223108044040336316683053506633331177068794427021122746019456531612982554233341675753580257247796405635904078092537802486373375990920086129743965049785689579397479314673505934702580163109678670853187408730410713118820505204224941395277479789302312020509621070559801782005433405974571317899184926187282101157694720925475737304068099658555520973642985709850885182324644628323303540590686556877799540950224701395293799377806627006830344536239142991677441597083198792723139505961068195363780031710541332111407874952980211827520278117045831660520752650560261054400319865268521636077120026232959770921514574939185397340628066763247778282334498121487326810246253561378131850158451255942174492372362630856940821852869185721018779419932883372446901081875711582700264821910926432303942370686232931521077208699414923315184458324191446238214535313300834347129294460799224396532959550874331085273100017558821531791886502301726350155506068301287468396029703288296310959341111709376788633995093769392367755461316195741871605086285549506015225990344952216475624758525088765290687428729916362564036947604483629284278541756208451056647411322396003738948652783569866794299003018072122872997964873102499916636573408333481914711893907162118263206302375587273717750079250719691147310878215227029499175393604590808588423713617564140592518185517409665671908750187041035547295149065801581564403992970120421844269786081333549550840707575067593979892656095104166305834560409219031366064045779147860741879408683343011194364179750098129529611564765204372102411061490897511928754150742207116774852521807957438704244702702070025294017028419856161598777461703566878498162793524192642027975801131319822981364538706976609003380977331101300570816895685873302334697691622424031846486477053137597702820020204026818451599637312658711183757500541244572563150633676405162502332850502106514493245186927585522699220523713006926575506473437851108430976279610160678746000698502079170739014187934363900396091259300234879872323085250478631236272228703498754330035650042127242614956824817282612502474582618609471111974115456529818105147966132726036316513177000592908508787590333679984950907119777465904183160343617466286475573817698143614191514462234092035625386277384668131431326088485489526303223142275887732771020971573833185158583130106386847778535206772247382867407727722780953212262456110024267812240947939489480260895308663169644563907759476285762010405124332691520412083079904036441709531268958883181898600295928108802102359254483100133575533386512574032163566587576094913676529586203180609056682252514703766024738382991538476657744224955722938648122182271663984774819432454282476315219905340485575990860683612636066189164640848335163391063580645254084824162701118690937911736847158227351570025659634703514296500431458437102691926056428981821887637575130456395746191526674947607457612933801333969209431782097799422996300646982533768187215526476317969332239161639627967781844707766067044838539902906396138112817552947469223090149083283926879123158731107250652232852365454133738127581290520433170440263432592311370735818812956976056355859758445454265908564381374747613773160207235905333050211219619699125538299599299883350259567664358796976557307209656716409989041079576978384514517047772388999623639918552764743778007471184684201313786088786232349467214242098649129741769671495344555599628746780582478142746358736964528862046597618650334002970821554507370883858262381166225750915413554915026560439554145936111829893401622924937842987259417635326308288920270408814064904957788409118861846098322568430892573210746779144698648927766914762492290376007573852526142461099552219097797502107220285668385268420085562429282945088021983363477089034865620705429136133738762499733859707674462862749505967451459225772848606042400956310643140464387302904812889236775013667921666552129608534847161802973681019671798772614276720183725441307992543691694123616774617510497735036987844285621306915676976587264810707094575712195532646421948540267176203314245665824828845692853855234616502806531295521992887121487410026208174928846859112837980448542725877522967528413390155556972836117834001308747510830723609078587252644506877960653584388625514797078618758170343628094687463469968495367570347293704688689766237153804794913783727726343723875285072807320362341790817084253572600853542603137226828167008328566512999353658027246247087919681905748761391335659805006407951250960962591856748610123994492198009011412501177982098741623856423824585232008325689946546773691604188101242032455568334058697186912529570523269352561055677103370550413924617995379534762372105305281847587075842696189861546844215561914040908717428485269540347119604458798498817117742288211101853014671244164985414651976430069003806633167708352618548059789973978057097764079786876170232571825822833885089332453264355147649119361699924425630984108476061193875894065083216949962054760682073043439246305870260240008635979323055567830704466223842696068806034250649514715055384018108139538041747870492386765009836764382854568462764353639070768263455760406966271731458617944824479400841896221643407835636155151292140924199481965727689385418804749106009560483762948426428997523384758233458985548599954370198130838936592843877792790225876012380182859788130914718745539539452046794722665573791026134842082871827491893606185395178460664933114132903350509616795023277548812371921861075630365836153734875758649294191574830790607952917835281709784092435515080137986358889122792239022922860383276078745042992688632020478596578610470887330410049794789215845707514749369666246346819004172725688115802506620392030980530873034088763260598333072061481840592145070929358656893730977691331776306782466830745976801287648283332266425165214709455631217547229718236471731826959314368832607230467334566740320415041048692429695447601961977359938211773840028059822976036643113639680114403674332425080619829381061914815418924696600326929027869572712047148475715545060140060320047882200245311649455114459929051049070475146747889055615198869334365365722268547790221738900113593976245257508803661334000190486866922826557824272087027812942458523350067863163505359910590302817561753955557579169530266978852762102569854870630460561685828789990420727037339060592368484343411539122444745120950210048799049137502676010745304998142708777027363705077947742324166544046243441659714269873694129091690737420281492737350855098874011649761248928767561710971682681904451809359881216000564977271720893928357585415134292997415873569060648103619135498462593598868590830277738891100802444739938792500834237161297069163920240872484712977668510556057955655816952220614081645098278461019583179930608149832345678604367244898373176315949599795329954691435670218226765277743118943432331573809532727476995301413891672957703810469038049864921392515210942217497998940068163266924715979783098356241714207908723742236524031680510233324946092182443778151494797978229630871658014040384002796181359242663472244028582889011275634887608856498985383468178336884202878092844125771310296820310715086171137023216328339411599873669989427595881613227495487420384936131322728922458854974729306004456213016169433229134047403828702358404479598729879574246772546871767198475766158709279911487849886552465392298558727827313892476758021251562202438292509556685234889712051605885283407496211861086041495124684788996091010782446616830423763681173322434879446478550018788289468651708084910792287985804636648600590918434364160821585896856041757744296421427969378085532679002777863169136377981618222516486979868856663164809742407777467228347914314490571539778161134180228693166522020014553635330692498414876014835235938555083290000011049067823768983361887164827161347557118572786997969621932136078570302734925578577730076144466426378807563788983160131500125270087692879856317765501923184371607297372749844919333077741623407756952100464308902558113765557340038513037229736752669673885184380701206775642930432620283577664538628502678163534805369576718650789503732564129026349258091317355832590683310068620379326983251072815499802536576824964171168052580710994863827330267626188653511034830051805721205756517425814679918325384513118986121690452139521170540629029480624558282288896693084476102526697395165277040294059045748238999638503511248138347507036012647769939441706585199597526678881930042317219662089304827076782181083171360090575575495911550855294224252169883129898280604522173354551012467893224721061926179234024491342296122617234334929421926173284000369033338804231218241298237150871119912698608016816568116111496240378488554927456745193391679587552905019286705186794064891840574394485855324940362698043594199523360965544294821090303057198251396370226960653129069419130317572045776751667805330788871810396292572741860915114516916075163601647698778275719467298053497560573127815703510809552536929599125878777950323937181008754218121366676642238158645031997234357563929277993496416335627080233064282536087803336008420274909026905821235506632456863582219711197096323755450646602372931827608854325832455594253493128079805319050221981676969759203676545995306739811495464435679519233538776496340005401377795523309916048872396383631393762804812321036929956764513975919580775078298227783041558684861436341401406659288763187730838121315365291570275557149877759264842239506583629770170202962723219946232793640937707037850073490398792398622192196087454952320246787651865466301018429287039925800868681589780631796290461634974697447803902508456120589219017624767244349143204502538204267350308984578385436833296498594275482633529487428011869701990738359421289527110318924934725256824608455263513926894839247323807938426052402218089184525182593439546616203697361212069036725822876761201840344550754085138468813611953901375955792184509321452625901305360863792576320833454036618147309151540165719447693883375132345251545747739029033288765497971294463583141936341745589806483056477430557989841312830077277750470352560491009941805008852334053653764274761449328454713169466829188981461189679995839500905005058051306926724437240509156839530418819644770359661642946607245561097677195761600602125375145736794953350402635564574476975733196870384829568781617409926373041037718818721880429607089408054367327943978720118565436528801808450035995352455773353569646431849088089364025099219763426019531493713231984348410328121714155039187434935923930085412924869509829690724243247677375014073262327320641310863868140400773307544086153380556962914732468221460365953689908422563107168445565759803006281513268068447676538959099292669614966006834795305669544185530695560720256270015082815956000789827667273675692202671576828296001752619955404648443544960030009657243143688936862487785928203759438286129000827646714464790725218928668946856876095358936736952189337081333371408530633588841462935575360890584644106198499936838757669842954655843623933754736862191789410130335329324815305913856630959820486448484061693158409052565845635662993006896684854908253571457952328426492545827713574368077774892320156286405666942161513695179516570640183646261977924785463984488136650565246817054120398322494821504290056509819883876548885785462765108347838596753996387768729838460198034981290225462159632005856640127260541053586692935479156035381560778001685907831185424135648043090273944476286069386890978132232443914580169242481171208616104209149580123509978877613529665461465293095644203547461533883789448576157436754058902028327279071348661752877916881375274387588414806485039200427044730249103534136198190236892645945287450504232855534586537942112082033555755319973288258008248340954402817570052680043817403945513749584164154044298319911720410776591582137743711121494559866092163511841696716183524305730757676775032920000771309022610860404825468816834573468888734453264256229693598862667951509731002767176202984568682413594279119073125917699453312166594852671160723848179101417505316685843153611894372239656918171915028911265385827073526847627317764370536386074419262976188016440263501623571924818678089228301520789293262893373318032205338149204633922617535221578173014482825712172368181088358322058979673307820611958188514222206270442839627136415470561975307684204396830495674936316439440491404356881705379278327670959150970020622281479641872479681194927355303186233189150090732105809381458035654643544947988451302681722784696381615837770197942029561244563883306408625726398847160846931021355898816561552147143931967044852638591403680342768992598610907808787916725990803782787530740652376840922209976360907451945670545474386190564323412410656007306655081732068493822534694726848133162788213322601848548408231136550661350495156544626281584800418246184900646481705566636456385377239769557164565601752207613416790783217247634066525897436237574818768516750826694321816349962606548379885973668116447661677943486875813404323761350672597304448622234209479321596306226496306078254157731409206408025824334508281921862632549731559172740475948583309029224585492888869313619746528885821510443709289216699633996859939344964886257413913807641495463791449538311737368303080599801852117529600412275487000162410811368707339060960999715893274203953387055004302295922822976564968845429288852987639171244844714856252620239302160708929504948485903495670252810773645648342363914113393748040511128516477517571855537466910313030631960459354456563046043208234001319739719185816094195659039047003678696174346042253470472329691403005299457224143469426845642683650789465035890911240644057298295976901906176632636945165634271560474727463470448138621031990154853777968786599701963335662985681455256547428257120172545563607487108679465132598229208769652830266897412599275962520534275056041874993520469879214910774782417930475972138451033803485646198646393462157345336778945592254167103276677399774110298839544821335783615732417020643059577554232664616572814519195258039271779933363550622158808065367150818159500269212115261215396394315380165075928726414142415765556162323729504773499799617724093326039796777302947768280396022454224656085315792435703055301701564508305419823905468766434876269542443410465271932804323046801111049825588252768210124459805399202777990306230969398646042080106294250080913157219713496282962351116179127472509919535583934006128339414363378431559170213555303533304364820545419160103029950377048177021704615348880806614371061825375259555234702242892681597510327045678709844768190980289283677259736175119503429131465131850272635759772410636729369096595172814176352634925963907109725676144741051896564378519557972373896735701665891446532474078771963313374073280653810759857342792898036431888266264360354374028955446911159779003004277516735762783559276939022207384247242513396833365985308912418433950657198427752669409875341704484661962062750998957380006355311652861213818898387510937454026848095569252692338533045031112757597653259037030296873396634358012921079581250467220650891949839804334903940046590909101925865875519170314259298943770834867878554980957626061117789832401960947611419741181921013486693517388696973165590373364985742261555795758388706332155473461503950182633855843730636685908429992469150296823099564376029465913177437100799713864014188080592293766947019120896590346071306216685777139411684354851907586014239572592499485280054239755292055382411951341152447233443568883848785426503419306865404246814467010243750530814703971358990641877073203689770158237200266993928357254917024741213238254137576453659668768421617630846296447549978126057256676917491580046333178661274613821862658083159285465332392482990427886530955819877929311627076490814079408599010484453753703864447901809410175219513052825791636874639000063150935029963266075666411671631631682830317583884300497422024049321917383379858669900065692002657388656035807197575382367660380719487764302686293456072218800478489313063525865860576020529057832504016833802481458317220422482615810967629349140991085203913177392583215037735183508918895725437412718699444553689331578303366262633681851436988246078813962356960844833631179036432227677721934548113000536345491246172393909261109021331810231011622267743323890244671064747557235548503558787603989921048955933342275710716522182878351031170909131130740941212725655145053315841179029850197986775592451486845618820701575727412895244487810186744740338089280828813888179352237552030590227213252034414092393373704853159958235634080579070620115270657625697956875507232935430732975766830699594555190996090502064651251013230281625988339248304585503879823859019654049666903107030206690081582883936749378636029828060311365193262408428574472556061625639246204896927010389750675427345299794213172661132067666216570943514370260130044573540955762220304741151681270722732013693225384242332710231047662168319175864192241916948809663630376196269447944670159360082133988039399651873559314936527571424712086638329381488906073774222935770390018393544733022428504383524780801847018356006156358342275833769507401895430426564909072088616617796666196054397649759131995867450530942573512050524074736255407793736580602308870795627281551738636776259545324658611622197240272669020038407301577126526362146676336160177759268043923116715405171009978097497287706884304870587960521276660827099164171986773293090149801593952213972302787530032385714073002195102787605939666599671744109282832437580939461604925946876890759232404582399428906204008218353522968763715053713082305191618553886688049468017784107072506201083107848059537159811198963621602253292552282717266332790186439081294647589765350520798494262164420858124353658631284056771485961263149581991342380762492372349472910475713297355788486265192599643840428542265515483655424413144222806863780752069682689589160421421495765514583037440991309314180339746672115673206250703952749637820159450369381413494056163355754374086594608782617182805914998773160869583167886100322783811825622241697758002212093544524538288668727188582020690899750369158315334403986318209644924450875180039399701356768224150443232329319704133277049017605422161733838065752583154501383572281736867805966221234838483650632571384346043434481006452433715057103483170722105913880248271808372174940248866788862326488846011359815776398805153666681640268783723213765461765299175591816096575175933140734802334954718692841764596177129181434145487993363032982080062259307303180501347230194838941558680089557812727671920050313354091126422502068595492530759019019297291070961557442718276176551150040715769651529361881684349382191560581732117565721822368033769675303384978337936037000941655643836331142343126597543277093744855370620487989502268541094467375301215114784993708695517168174082651734494266346364955551269288023059338096557422836285975908557256283958103051035312715044998388101029940253747329691839106935702258466337791490502513346278569872398993278300215299237550612696536581460836723792335049247149649557478350271336379650095027993949862913711817196668542448064266726109738934047615400993081993725347826601836374809934055183217456243081881814632087876916785205740155281961654398346344583732773287662441706955310773872413758743735816104749179698258302466605929694184148320959344272561245640033999892729000707186598634432217670844892361034978798701112717952913598671325444548983317755857731462356600928871890515817181081533243592465382412877854621529225283632803235809722127582866981582500870963595294991456822432705373102573455624962752195621392215528748445354432357126192420964050144266201368028954788881825184772308280964544076754730420508117327293962608555567219269921830800889507138395886959992503810235642890080357992312216733474254751885099422330577587734722706386586458876271686221290941690188531391111882133494285545638178124295708923947453260653687088011593033655228747710215901630548146679884954245565862337475891813273796506362802929665834185994571416156654765887348384084450829771603623002000649230363455525703111453955466027803715081724164331137245834101485506677895412389939796462794518398971556881116531364514553419262757462793550408925172917723534640910732673244641557421761011424462337976146395903934529795161738732908970263657876321065128787171100677959781743395164118169889150432732213853989922506249724453327222206537005938184448671506070029272300843785584802615228151657297423452770518407819469453545683484517528637141630647208940138199035611842147346879314712374286629981569308200156077041873898332115366220290080056892808521607416294182715201420641490326557202534779493397701406639767939508878572986106039534989475658967354977765936975684168392116956537279714819044007128123572110800058770590742619807346800866023852035995076686506671017457740079180044697144021692056449112797548177675268773151159499410414824945772176245397361632944577202862602880940961975850157998423698853435570257578968719160102572512277278040233900055807975410436042228659767242402030464682860016244138726857703796390595362028641489306622506882956244680645629604648565016187492762451779726125354538577400526906712952909734564379290939548908806846847575824928546620813499991188844570163604282817821949008651296406486519048179115971910029956709470727464103613878822875061377366623877031289584361789343301662076067378871721309844658671960882720067118147486196992227907385855227656112635610892888868238411564536134199917362029904856360170234213763745907400592416923848278328166816214630584646238045405925097944762948293528449144083338729130561131925622390445100159253819575140241174827653456153514400977848453651124351129789007536466311067511710078086356584777949362156345294004844242013100728595527758196520743257270474817311487432085643076795144167606453121924247230965669746447529315208304583978862397834604967462430020806661714991583126310174765371114431401608080953343206255216736316880005849649317385756909096748981883799824190105347025727794529789099710919957463215280692292564456498227526395231359607673088179450060687344098712987241669902130540156284292742040324534580012444885678175664338982621456477314507880811597352188971278882039314458547517257336953377584248450718600533328946883672993270413935270169941606986655079637410742825203871167689164141197822562223056362869017007254205604660975016321516879050828189352186718308967743134713499666665619730222918897781333661945290674800026207887596150917197000483775800293465622225251782193803599607104010945629037969852978501582867902172741879924448821670411074693406880875990085677154913272622644924412220617553688313259071839230109202681005717076726779356474294466392066996521835849818705372808977545761193052062432247814497444206566372253480423881475878662831859240843472852395791720406663610839852737689961803915306690989402876243038241931205326160264418544153481798592638359589914741879544555774400095998942933656312901627906955723891461377301667695425144290745131871249423555468914313863351547131592754688591237881520436071135921157399794436175461775463910907518855071812080975946540670259625233072550885217347862828246935098231334398817157753755573047660422913760868277062614129999564466806515056721474415633186860475293684797637475477745378202913775331941505604122897444469941617590501590613805193739648683697418121979957835253990114882020787172338468746329986534583663542182926674195451700512784050618065796715866430918266667082583350197718834366066548958714934462077539639261146587677569112531408479804310670869871700658401786018252538237255411866412159640537823786587950846720422843348782944501645789984497152763959015595705431963083367847460324263973887231601094905270158924555152937468174425979641119162481262662533873273181551248926817650960787412510498105045610458637822321948021660266350093727423668561406333845153244030311452190181211222853343067424712501356008009231117541930483947278528014869717916004894057948303577505102506380355480606400133007562982312253150019857016278104785305689480755401169233383398100901748987682081762101275165936193433048602416965527960398144387889947763282072919887921479875413624754717394179064355947297889604963748821914559680545396804739531857639853799294174687406936367234869467115760525795858169576297254745505410195383910787036837606666637912353582936849143964551891624960328796659332419619129895909405235702557432890976651416293308003143355242388502790225497007941193306333933047066824456070987681561323488432813432344659075915384243674465448849808722586339933072683218369419422453733602879710169118129788794681148649642508271956827361638797406988153400318973061403562753008621716813175856714653733612328096835857916362856802413913201626143616876177615298994307855275316698540418759245806591257408309984123647967178816841779468490691346291948802277333816083870998344962469117866025207807537174961449772333293038592366213915110234026462889628531749951778973557634100556046676196766634289554661444943246356049269823194839206732404744341952062857774872136471141879604035052000331473001229451746099737789577491081837746632969549373043927551992639598224825008526384671813365412176085982632955930526221782406941439211352103884456494097043622406686647922919362466197293790969778471262527094385432872044756767259750058185716228131318438267296624766227059550578504118680703382145363277684860969088912023603797636468399897389536846417903747534517688431466230955122136073904103945886477788955043897416979008954692364663570985907240163956333946634247411935294081107584828280616535384772052768754746840227530990851729784743828285526703143286428838444133378831049046841989134472539308662631157817847779489866127501570268994037231165277422006799806861251296469107600563148345296302337666344348404824910560045547337728587881899246681205458290167711361362434574333308966339541960022654661103817406080622851353498916884714122888141105191468198892619764860972279441450860082912835120812716940665080358689850835285917593475712287352547744783298804755665777841414734561265408745306493834001186166791406555502396750747588878377718506226097107161044856885273870309791668188854775421967068703577463662369741680700631277484602141858114396491045539901897752302308141955594808329297835464270402014441022660733127393861001489481955667532762164204874864562208605409471378782200017867230632123132924397025230546354306145722157308784745592134910197439909864164483970901581946612018071854414028839420240715368511077282059278722301428384951407732333949486981689778364246815183449467302457843176282605393877293688471274655102924965498355194261144117303102406535313101060584366354251221766453724190231913585477128534170235026826776812427303156151977637188591321966807682317641845075562833796106707288912491839217950234048793824266669424891335988468949349071724727973027724126928662329571836530853963853048230125584815669130435041004257193598036652811712282930704723647037147104229933323874109206657546518799320876743463301393339928494231917741807175417441082944672056485989645259596358299621499128349695708769535776655981748939635754192221603396436672583395725910596343561822560629990238337557455854373128684180606948223066045726812372239527206409264378896329992085266924914183847456028076283298602556299986036391110139767647141665598418680979879310029384811627266775419665211885825359686029922532118429321400818686975984008582841079116800094362142723693025952934124366581532225589069736602372191820689275710875815758198478274943355234754119890720291461635238078517072078258901676237517348436598717289113848236720957538500843838827546926377064838551048646460393623765641649807176038865970038482205517560613066388293866212777734520951024877516300996180185389275601261855208627833724675180060397069891870704120619775621152248817211117412949840099738878938313844373790899342736418032352574975979059496819187800930015256960288506367799647718983378598428218931832294780366264673784783397620708767914006645499608185344506095289075701487426865866994022076828751580434423762922366935204515504935358125199478516480988520878720546441300244358738782895918246318334378279244718932961969733394399935196876242293317428987820176967638726994232482367021570930613968215703473938228478292662566744754701429201793145222265048785211246425840078431523125176513554527383477107896805043901698981512665238855815334524061590259088690794099836322211875159763766709493862252577934899521304081487573993991884095315937853298757744930736112142844466385723311724344676323760651034182093109562635010313334588645561258140101130095396938252296335691629391573611191306500504937942889845382531390190016976895701599240564447306024729449317371696212034514498453154108343443434412446817023714539278011050841519436333085150535657290144315408879764998285783851461707771713615043688798452391612635270049249947845693201797636198845502558254565558718847305089059634150756820016411864357336505549617234670748691027043409247937703246294158493601511020648177307353719038059342228048129222348100467838541757181953382482959452723380144717919484234111373610673825287925844130466521066204874292018428707653560870986776531899723166442081051968552200606625634628895480286903403582317432439673418183063080028940933462338165834979151023768695518669187900810887977418297986349556611177814620535058627746547476024518472989614188303925250256424792054683886445579196590300624944782488473138964993196844134024094394187923866617082542418819578527399732976027653305890553250131920607422126383391194372749298683569733009984947199884305737203453846907383896064669948627498335990466153411702851819652413969167634047503562796657078684168499426495785937925865162853391723890372971184789672158285460358999881980504904585049787959597622353505550121730637542905677527490400700873392932783973326455925534719105900647015064394704266314181054126067432068267719680950300406318196228736219097188004820567294510754098986784268304300544121756658152003669861268091613934639491340617494471371620331349096104944848109962748045053818056769956351998846440427028931059737448164817295380778815946634858515547238614991121270677201500556862031241509198564647496171390978797024746710850350024792649706180824220260118077967103448863807728290648623130347688699717781244432883036815980190248928359433570985847641184132849605382658439667706396743807171841267968507595356015269794641425747886742662407339824493657753947019008027040012660716509068772085295427498117877094091348051885263768832960918448081296292598254550039964624505872882838242494549383675651527847330324868923543507161952341486002300429035365668510497428140294607949345454264661519351620532088010255507606743567375514593958052664230482020705202143985106462593287380339298033594481802191565249301870949692306328077204458270724538294459062507943887683909948549923195754162951168735882245546404967794773979992050542423760588213551327740996195766133145058063285447523006766486171720497182730655897638156281168638839687489937293001778074943615516945227777993075123362592417903863937433128065833892052226200896526032644029183519427004611596061245152877671657143237346049848708650314515807568372414698164796962600558948219739203108279964051701831172259552528965101208849558848780438606984657889438671824283944190677743920883505610064474544689789791131152999236958642328045868691996972608413726776191828582140154258803791077022340903245554697031204407653643605716089352961045920996639791974823840310553832494980108153881404425339663079421307058355625994051989132572034971952169432738185741443172142905369573967991475410263312943397517004191713881066587402540110939637215854430320903010103292905538305231906052903605995047926700487453490146055393830485922114483006752862428240851879439070397162707156384018648694623462031256416945666832636350758508418765608496178251394861489653825201899772479518667042477620942098740577409165548021411220547455016738606694694930406733359295441025816183281167527448094706581141650769382340593198023922557800450309637634974794283547579044217764447608152204159482585622999653975425655534533391507953488595588369072830444093663315162629588625804790318275796106944550840175667088315604859854556368135051234950994018222887731916082191899735746076504802605914046034721884044018661404426671163889586145352184793843778689584648858542969197076494558725163953747151894245643151223501958215879841613094386219605827749811194097906893021864435624732012909197684159375471071302832386180005797428142374196554941472622526308456151394776389967309169173915913990640417918085324800862156391839821141725081590224386571186108261290695824273761911501811994080415406954489077015403951912780120002728761558015841837180864765706432571083665911569425653956057419068130435457384101065005408257359865630446073641007349169061185502820759916721746763546178514449599269871846420107025231692500860601897765447131011365697233559024236305842810042332955199352259399872156104397629271849523524287339896008722271657885406269127603692976581188982233634192888004873263568913958518453644040129526922361606515871863848758850269222980870452549768836791221991948997558686192167516423500629439762296681791111374838047044670293240321191421563922355191313059046098635349585357340992742509160766792191914277203622225107344604631910587812393341063906929680559405177545821304796967136777432905017514340986724895589278396220473733042957387977537446235885622763688204265479311373058451753413385679077691100658485775693617809538571015936516553903676950551988294445142945808074558737216138996665770618570366293924176177794299737637684972168190185774460942750503675432115148666557390656061587304999843188112861772239975633432468416581233895711755853663296436030203485830198960701614330644804217936316508740820661800239398073972436357802640099961209492097756805772714583642832561340404919358716450646036298998782440508665914111586954507154005104233841584344734737696046070045756201040451552668238352009780452711197891799271573405111829015980016309543865475086719177547516296772098640545882181216290032627595007773550068017303054112553896100226560440181022628284032998689295229391038083295001404480436535304319319355044251116469817620873573480099148879425017565676325224520929778084818587648125618686418854264152258793870294706292357338424640450179922300257734707304222338519198189977427395389463053007945650046393882701079746427643850332870099693279718210840177418660824891654197564907598595773287941756702596879783457991251847299038005255138228192961216083839594082349626822774162261820968757306636989637763826845167695985865368598634829009802488908348077693616145568070719100110949762055698217469520994194501292450108455927580070704057407959294430360270735358278993087272536204403943411521360430196769189798396206155908432301409731095176444120133878405685750473462036589710836312702653947330375252820555181645378542666607567503929064715284942965668967603970632946113507794147613161152034494484781205035054548154979048692516483999413160050131205772246354927707552037961213245588028505347936820239618580122069637006923205913106749608949981343935004536125990195574034410348602208317520100733443084273506187981497006248398322291562309191626898364912434448101027564053736414465476332419529362145374090741602406606340925208090435293658379358915188511212380717651121952561948229714580090972618772869609734832925261818330628749533210720358396448304157742376585675612247292310077814821564162177959347784095121531828580139826784960055274089158650845132866511493472579689413130604448781345872573425793328926473726069552555085151772365227379599863799077747550038881230405625091417054996558060097250601487737327909332220321057270070002715225330894678037422340047436572459422772888420626659000187649680539835034105633508111273280247518033037892559644780440186102502990100595511834182397169611589883349493797501469456106158701322260395139555652456673263953416485794286615953981095926962901519156196004713882738494262326157484585896927567127726548998097045463944636243644734594577552003135796332487449291417537242870106469858725442194737473924404887739727656427808707318297650599628844590323080712841785055060110360505630667170413552578056122263968550048107902779309915094851388583862437399465527204759366208052583044513512113654556202518706267401164699234335995551545431293558436156312450143021346924362353469899024936929783877523870532608246677122184785113544528653095624277474058664551198822716020856618656228395753837185095025822026599120464648409724574805588947103999411065740562601142988387200153565431218891679306841714955657192289176106239274863450508977989368935001939725718064974636482448727971601937983168044230056907072797528469353808774995950271552014556091645649466933014308193591383976959256312529195565862703239105580246762482333691610030035338399635654236506008281097489029525610382330428654391557638504975343383643113732482075961745096254205547453770135593034411633395457793403850197131663162816729227502905630988233636512609373744904782397724662896038730503891272955930652083384422678189302902270089500969925144987656135004768845738598362592517202835786162020123466449496762456348279140075853897025575261710964375850422488584836937860340015847725166691689674723049733771621715714910090116286082646096327060206684169455734481908462659038250902282573137179950290143799766089462769696999567278945868452284986962336290896657336969079621641185187982642527457496800109996713513983682466042711284311939679239118497141877203563204999824099921120690089537824077916388056639199353207875023608349228334191357447311962782461147493834951079529359883687591789652512358307891515859786482282658286532088836405766030753005168715409029609590037487187504885696656815493157596138258664564899823400120229487786433739847798382285373766051102524439225123432125393605652476482189926013189024164749603776781068573506885303335362816759244494011010189322333591034194532417613374284032394723182776020688165301308539600997656867114653147918857427462742996062668544361995894223988588138773629866924187660029839281218267216183492685043665205302284260379346109664566866759784392511917803602761469286196720634650946070776255345670037742264534007034302902520587260317657413546609606025846353569130031710564853110802568000431016508049898165691003404151143302404441353364948078837073962968127400565532484817806403936140690495406559844948019507732185338589557968810161085912092075088501487092431735584827332322302930244069526086568752311635153128492142529015164128052697270957676959027273662726221922970364808791137519087006167015932844962800492053438145828347439413849764470386780446303866673821382460579333561880561340420848848796648817590453400591149671237135193572739782643403697966394081217044411753587852978376020347064919419221292805185639948539541411658811121637349004967239320893615918941548780272868028701491656732129458267373900888876233329508190370207952811615085781059890596698055018815043134189583954862084655103309212626541622918911866731105786593019329412746167307196573521099208900793052582731382547037735308515194850914880000700984392235757814202865594290158519278289081582359415889454818777203776178476564950648238655938836348236643956327006215953240392349967559326305659605563655367448627668667327194075858823470909305421491303209212563870450949077713480494233623749268843977002750137273598333912193155842784069237031163479098139380707570544696310943550061783637714905441662998848679465298560545364705127025863412442437531237801658435543551049418258713656284193372580395128712318602032182578969171904135363864974785237289542637957935872233520382169872972979159926818171703239341777200287235875480685649403594238946287337919637427424265522650074062105183967085354810805127322155843732696899587945253831262434463835607814540291168244619611558331597857361814723522168859597508168313433202365801333168878201263117542135768990437961164923014439024067010526721223603416594942418484301959030767653914266466233211735627603148578256625377617979894633879625661561304231983723990079234845990883156898232355475534443997860952205996174250303430127051583429622136557043018099804212623451759205362789932082045611644081742097250094261083246735331099974023412793328083967998944215996821283949666223775470796392563061286304094667469451036073274654175634131395236639815727701089150910338338698573849681914536530918262308902018049685139859445510040194545828306948290079498837369486717650345084018756320375597190972329197751697522927544431245972047331624989571451711830698694519885663713270971513630737355182931049411494236142574675010603988862976022569494622728380898892363065078511271944267536210217322894329926137360310677533236593839623864150496909457113885988146925936428644865592655440983417508246984894018625447889382430502392071884837028286945594129853129558097696740346635604778245440091964642248612870760342978227108051094906862768807451561564639948970061831795198106396471958777118276665257555640100514802177244961960062141588120925399320622084745425903666607446132334207168026945958246738412242539056051691737395718286657478206330143573739543833423635534710765156187771544268404367034191831225386829898404642213355907606966551722973141800894037195880655186594779949829780454934739253811266055294262272957004983523048864651377487548805315982584105496198491836767463154574373301816231773607740165233148331588481957573252907838099199099521677069724345434733629380096088222659915125725236214897435267452993517775422934207521226319810892742168910912568632478738290040231372418412316154085680293667436093546075151276004677984549998986400129757108332843229662302489780488420606887467318163684982233375948487321473303697190722786891594106692687599868946252056221245385675651838219461052882494867487977656667913848323642951768107275706563735599570781793022286534514307298684006354728146949405584729276691697570334270777465644009406912151881408597332933881982826163947726793429263107904193462641542078494513155206554447867172609758524627921943569305545588806445948075385249400580288991623327682197427798868004679139638034506885880586679708642584243867278756628546759773382760110359085839991318524826117762079892413710522517120452497338874699718172198976846321348743987138816452873482064311009746391738880791012858688087654131856375001285982076231799024854837789095743040916892747159305715040437161462166057435155373517593927887258928564072244892749317382429355153565742003528720457531663453525586842476174461723088793893240018223797204475296176915776705554914542588407434090989290349405200612480163251687425826630881826389809186575460433890456015823587727106396025080192036198344249516231195028211347449392988560038427072575413022905591134366774167483202243897157566590528922996471294783163973174825802547465219513652294483143833845550858538648693264243600116593863329084694354625081795306819118469759619676383309062775335137169759049251160232797716932751254778372743660597673896573189484721934529052137099219432649816809309721110500483115123971621398683623068319113966362953415485116374639647327836229337755906952071909709266280212084368605753844410692356088290059328842047126559924873246437907628983634101281367675236971708900883327642740147550244102600920701927638919777375723120401131374572309568046738471075110108899880130934420633697122791484870684196492765284928919442030610295123937239492455841911186596202374365558690898537638116772959546896602367594728814626178402030280740670163826746561750204707110923937067743340411724300212439943315203759124056854838550277392964689265237492677132470259086034909536651855390072557927905694550605686530886174083224004954161133840280226906746998130261704396109595805626901156293221410931147795791434142335920323610097448292776604367641815873424690510494561345403138090738131603046822393720871417067035963976189735638327541596035294960543845445315870787844286695669980708968441503740785472017030469494705861503516816740874718666189938802559966725152608338987092987643188707079237948381057161883211508571822086102480085797544759828104578581193649494381398779075877336924544950754239797776798769548235644486264986272949990231892684238262919510969024329529549939354596945638542341688977728623514264535730848460984383198802689013590464061377397332930197922414832550262687866257443734930307180025020354128052724682626984886355636718867250923161439694946065415748140687672355189976992175878156583306112406227686250355781348137485711228306744902455227986003543925207817170567195366018291669068543370557740182296964643438454430874963642094777487670019130500196252378700910571960193443126916544924839488738403809121587891735772444889795444729096637680087647257739165603465480704317737613806373141784493766217944377203145407119292050898147525017399855633481354206300541482920757328635352230888299656096967232559108488168515828996933820679460885991755586039332623548417536570358995891199627919331381347915094076820423479078516420324246628445088120227299139958428630439846418139001683313187340167448522363495219303363745723274971844482575976719588748743982024086993461963787899556842094732257315049907759665736208964553985809192790351812036875279005034922876139901758057996580450483268561544966151341431413181387365675803386302784047904318150807131477964758170843776548489075478051740607114315973103043725560830699391600804142505791875703452666431042635531290349080879934319600897719693018072336753607576069319568005246647388474660151579192324593731013340986942399178744089797039597571369208683637836080236512576645173691413417435152291844078699379242924384271270195313564637469438158916419412079056037792961988660351893218458973420115253021116471863474088260473955594130407951973573795774286129061219229946744763392332479470688603654669186786335517749302847544058158956567855260849927953602159937694134596320753464109133596635650904487101830669338848383436979913498204693592917000571444306289430215424738744919426333497145510136791790711765807993832898808360882088832458033633070337574210435699251675750040270851358518428166796109078898811914391416706928297239842835484152242138810049774445677153770293511908653127623886311981044682405823960526973830522371341808320087319423390592922458998009451600435461711995197910625159777530073986718532683502461129582881944997343272719139526744112760357076163802110440974690883117422031141753388820894133727305937687802252108508540355836114827022003226407157404747938353390693464247331285826176307793987165370911820559692117106776567321840535480414583895957699090136349107475910465087386800341169338617705546716466794154091274236484867471270583932027157369340242561393474198925983567675120448733852936415466908391377068559593126804571522606585739291185073763877888881660959399422272974580727769545646632442583797523582836099752052886532909263724620508551841863189829861746734589041711077934645608658392151510976279026061245757203436423684255959402157804895580875465446217676650472042501394305863082357747313530453752174570217447885735454832353337636708441295854277055589094472433646561675866147974806087846031638384771677892959729865905312426966395144641820376113093233287409259443277792947083443277742542483925952713586959419724929517127185793251029762077382978537056993254468335927813182551219284952303660257252781122425166927419424521625749549426711057972312842104523762276389619212122523562143844626800463670881821989945970195694971866459210997054684649500762744446892063552894251319925953733239158197813503260631400778912099411637446004995613089282360761373598022565081906192697202797729056840446376972162179980459363430279951847748261064949774782557919216129330347090250189345026227005893134678954643314309129785335790784776751726133353248531805602389947345708810700963423009059361135890509771795293656210426567698109570551886558751631220121186556902974276871696793220037946287221094801184548760654800166701013354765316790548279591790026585614907168337287445793257743611210004510751016734214448704473563834934372854674999565669176441216066481609437276295818178660138795534740334475856164058664559923357590383011799375084565696440874110443345377350675857964123562166345315647098187133349168130664448143190779137097294908822688672662107582217413250424778499341666082976417124747678280304298605678010090681032367682884743727109634485340513320298805450359672379258146020269683251552066217342026675956269457446152360586067243992130311645430465144494124481362441162381884991420447518337424980121618985758409001257452048871978904270305922221720595908902186900635723230109570829835973166011301612287962023800765127862297730883190345815441855863001557704356007605316816113897171816004925521878991363567679720799381347108537956738802056850944582390269390624080460647143275671703444041082119918368848680097080725036164079608977010100956475249172594128364198683351400992860062290214662011993677814834013525078091759905902804008288781951475648449250220638015622778684115789203575580804029188556815374709609818952837371688723531935510849894116202700989161584260723590584857190291839614766303263561916230738457419425887772242165771270839721367665184704418035194453476025329671145807458787410353957171334845719669758450478069825681422514771821770014184694829137114408487615531864062567163397479661055967635822506558318662571351539402178856823383975986477610953317970332862918324188552846744216190236667957036578730218933796898225873078230455426810549333448448091630947901975800133538296167424807899439171012110557282254182217809279395693014781750823195429515201469718001937303748119954446008817264123101183809081463695191742655617323498471531275295116689310813226204889308334340461325808080401078999065267152719131976349866971644595359584868540237692101880081590946096028123183514702963298472881580502986332699920059450807830455016289656545959422821530928769675687230659015465052566491773223465971670090714643836028855213667547909302283013863028473307134138772015614095927814956305573051982896054987655746888762433904365943196016962369252788325138871508310848665584932042249502680361601812660120624631586222252070688500131137222130545797571649698245049471850927309223703918651435993424490587203781182369912107394023854536493270450046065378945373191295971886317484308427031954192355823346864716318072960103202250905307571630634002239342690025752336402766682664258880436918005261304727656885778473866888291850583231760394048906382990308087742901810719256839622914862808710885336879949957049554796014479542015436731236514302187324983625424885180024357573133209116077049015194432745686823574013097952749723624494011335689537900802643332406273603538968649776755210213126186366618146953456728134614837242352722852734220932866052579869557310729246693314908766823259069619811789793017848698643582954117538991800054980522993907552300278373160611707438116743253993506488717892391970381124707033935077284111050235510497626085478136451216406288744714705005338614248144489155490563832621847821188710772514453469407415123717146118994293676030810690233907924517867839329641684020024370254491216140364453812361199921945283810033230460746196223308664374692469343403723615303024616988459640958713328709000749833030442807690878730997349025613632775359373060364785036101735278580198101854882580576219654507208343687705931378809115457073538957722688627688913946161171051345187267544879117245248755015067777507141378708172600202274304942088367030124711238484338720413557730511713774182849906193506550129508020343774834146851822913919696318593064156421093319209664135311227713660493255449417370269809074103665452214533862262451075974414028775256610099348129115837569888520889388346514685202177919514439818773447160285751865363713275478660435326809604626337594598942616081247778626641992231305871401599190663413512685894822083996702491725155521409256641302452389874202520902183215647282395531581752507502740109350007851559037074303305957532450091538093105090134126730958912702994693547752490854315783876945643631464683401137110680977186072182452672388081076704460375115539078491920788568830800989688871214260685095398676745825145663687299258879472934332344455482685006629046373708534500274482707332569416115481583906360931946440358499999853852501704083359569798265806875585735771479980166640031537685527339600870239528500056060136096864393344731262108641798853295189613009683854381187656013408123940868137268748926089399400364142128965553757481939712820340823748083016493284240034130149728904299890227911060436676263064937482767200230379208817709600640214533493929729845462051715989898368446876429720613649332603501249005524336054965436449321484952788270959382168055661923768956877799003777009995138560933486764571924309035637952308827432136677302772036911429575884404809373045248242322399361324919380617323255942159415748246727616510988877110344134703542047323495735697886852989114973388378690374013974731240123421832112624381045333774742138034139724640080682012782240297262329945397180122075044262697911333823885421909184849163448788264538485192203325466274114659063751353682999044305601345379731153274485950451669548470197153278585490338988748705656474977805317051389070230963498859907562517178275820044382972223042712536997080439695992414193332030173657240510816108679692226590538494629315077771391475889906798222022917237165974990681715546413437786831246139687813796938524501005580811736531500182034015601600650613181282214168489016901157948934295892434340892973430050403678457011754429891308124069196138465312131033723007206582606280334591999456996267147159446563767972646652345143059480065042347234362171477605485161881989552434133158589026945122219483118037829935578453182611360113788902678987389915623011916875126317451243445064255710551005058158879304289427125717731017887621826694008101521638800541148654842390244909474201412414803241067391324386813758572634585115666747155780910270716273095910412900064460724804852298029936917666180055299879292900637606013779786205778663059188001832775155681407099805907074858466408975681900820474200925323928344434623696496880946783461899342917032610971141338405972522898041699737747703388933769326951407685297618705468160727679297784087496884893288755546279436105242907008310696768037358851267881953566450116860534919256926294312051230112599765134507019333396462321260782114402085794651491286926475636948683900773289086465573246247278741621266640660449458695607285873677979567550198849053285319240273521063536669442830252754592235385611279773525773632753638826837216641391517579302438950963563914946168415543491226322403690106564947173060770607757150959981184219276968613704087685925386357015982511117285077747840335017422548362582845602758783746305422062690585469406232643795781845882998922068076974937743433010434910387534260768274108444206791898555582400094454070195760785961918410577474083594136220766761652056727253540102338270849120336889913647507391810118853296290291427227307939609641639429320603449631434685744443346933278510175448790483081869747426203718434488358220309802276011585835642241247049787201705327965514192960510855087359807321602391840618079335483723659321509191770815608367868207671106753286034435939572141882903810986794778971006173499352115521286978095417126744566034122790811653977422200271415648522351757487525709574978899254581669109763461675797654004847139971765463964803717202510597105241610124866474707250568858245922654633444654771939874467465473291203123320270478754885965391965618167192217554751372708875112932195858180978275260320786815454595087034091717343353012843672143010187042666375504275301395250061946706737454643809827740754605662203583416250821139719412944745562975967224925652988652389392954076451802958813833311747881290365066651447583848766017620409864406317530022189919252922716690312559394792697828939743166014256585092967130459653537204266437325990157799098509862205842263081305260501020727730370615271650569463128741891486252853921306309017211788343708929146432755760742558044709409060112087563330071224859997839990468291352912949589472716181833767557021763826113831613534267222028901859821541264227080420308044477325202514547109626178184016512876041161471894516233648893224867072312643262016541351348287341124211746997227392607281266968275661771409788173205416544932050319916508504034678039852738896631031805190329277789606079174200309826951710199692484204558268774133964118431189453489136652591175406353575619064343805370497930216972567323285977313098319949510000492967514615962184654419822854447485334834333291829276916455309721120491000963732977121146610446946808576581978581825139347617749958778351415903258523747221748369158762219520710974095445480441903094186675363608188536025647491898172979754346579976913176002516448751498523693076196851947640537882469092378335449124302844677391550625434668001654864561682122861102778976978556549822418685684290298580859144956896256648064110662091730868945608437741131462398474435356016336261551690253189687939114476523246011986929749438515538021021025854065237518649203115689286626543859032508520466739062080698678647786897131794811694959267029644074697801419941022904127242111392407542928019342370902036722791018377773801838056038790153311120277297418580176103329301006227883827590447753218679518421347352317402586346101508216082567894403270407159700545794763761427983545418775886623560262526052035728087539062606327443442727010954943977267119750679194325090610890230654089591991817057489218916333656867346725732742004934075763863736088558364257043073746705398567445426383225009562633484082309453060467994502170105307072874499361638407093118931014856215926285399231721069389408418347578669819671708116118552402674017116776947731667263209152767952462315126308789788152089152916974747546945167028148327223041440035005351619387840374033145915598349207514618787245499004426526513782205504808629633982881970903532977052941303151214339135493508473180454101947620284232503333851889924828272017807921749290089101825398198558443185134781184914857745093529109509227794391880679714499976071964133746898678929381844752184572494429540252651260010532135989980426012438694982204492977656389684223384867984893700293385782598715384804047051473741817287923203707103320567682384638907451225220019026750741990805423699726946562353495625015721125572100631900418655261165714007854658020219257364190023753095724930915620289511162554209999383089094134774661978964060523756248726698472230811965566675801878911676193718645632349287055500181679952158843993097071041034841360837311648805152166891626300057442089210768226474585016941368397705854808199036105286120839999127452360584157629001175546847084562706035005962594422555479228021812735393843573041013499918904434505881578419150953427834550798660383680211648744107701939235779044521051895453510743292890459693712672141859330254450706713208810614867077016386751548433896170877139715747625679709308969612267073100786162821708603957679478106580382414402879968272728408805157906175337251964657311287498965935327711776111105496670843064214505592875801570247310546183362141016405777653190843980187976564329538989006979293673477577597675026564397357592834091878045091100402457503941026765409208122836595930274864608614164029455513034706600953059791313954183899851552630644172675582444584333942460023020940524566857215885047240607551918930466582652434355383428332331632399301974463456727015952226238625384726483892738549582790285279126492515431005948516547866205823610219971295762467833337026330554996559438966307041848884057246817318109509362534372431736149491018200585857553557596310932325427408356609421586378185020369511365836459954527604090034822303537710605577973924235563908895316375509134430599672477332652675304254140494701924355558534239813225988406467495570060473337359950663918585668511601508387738420662348631251835518101395084215131026571963398661997406186210818194866514932342272975534836449324892177567827850957773013800940343054405643301780828021879958668422135380617159487380485567304482305431636623970251341414985824820825788271693709032854890106752129588197233868571020157924168304716359412516287350324012289192847191247300657347546412426428110196287672181933357260214740041855086220875438300558679994450869066216849991219569494418163055598475424293203694510015288554289556283902589720511138358310558152847768335699712697817208237251575015822979251398430806783473165345132680831733124314801489350247235574299227297245899592957650739140506101989921489476313311040359907340590388452621710249590714264985161162324087825969463751643543837036166873517744015068038831287583074886721676838646672794045370087761262038154337702600800664791707233369720908832017474449683856162995914941278411577618781009989306338569517651748418897723010578829534475362220462019215328666414168110349652232868169525434380873913646083010197369307763796541511253719761597411943095446089046569408335286768853247898491829226630014090225286955452355311649628481749223248818002462554255697979699269940392191576377935658729208274531900995397220642759257555739250809370949021445291264597566606697971124150658625754660590597641322625435455827432101922827412461176331065125539029368013707704947830492545873774300975327113897801394060570360643673101522712540680581637278809154675128109371305159486057174114101243397272911432618253388617081888486805636837894910902928859864278465246154791011080689702683419712852225574741753368313179727774197906341926890467057330219753484315841549315724754552297799089357588788230105626190169588065403354456524140715300047131817300393437582501554249289109318579354130461868984203293255511130638598327165660635784914522975211869736205598054493279870781189367552683182405631788876372921265175088880909760243997049957629380858891150228085930368065746900472085136354986305072876984604296727993636273577039434589007358609279238482871476427397606311754069627408432955749111182163176142587170341014061923172013800252371794272210640624346117592319638031497148495832097722178099172492049496162124649862592530100520978211756018359470462100737695114716567699135410029427813400626253509856371362247409419065533083162075138314364887901915383605768422417532628830196913872064899971366379750419664929278530071492077702284103895508187629652495139321165156116447336742785352377418558415274714480121747034239571932458090976001886344023382714570942708381757263862470077416131938672244647479250509426496313734197537349902842667787861525257504430193408032242092810446712509951474264886766108689587508129355383117394814248002774335981460609473545614091967301808227419062607230886355241973992977473908868541921702351769225478465072027537540196475445858360783889497466689753517809901306668054540226664289271326222108080056577098173147244448754724829701335480165633860688604340718949448037543253427681007853264629745380385690970387367666823358005979987420041054901873458953839345070097356229809561584305608580131313161421172541268112478622718695509362522677691056684702405115225932025084174708832855657540383062246644796664315581171384406622830369484326662130087417300223549266933119889934570019377260521459101664656328904603137670048698152700221472725331386128221247933154352724713572386229631907063809912983025364081048922653291353496601914963342152204385177867167604266551740226582850924837975860804517295023376639731209806800185878054980008708167028607859409550738805546596015000059985760159464460120444073986396245869941266887440408068825160073527050176440055838145743203312950436620506855831628473328487517173475583426481901025988759282236924602895459866941835374573999178973809773702223101511059874983497490364548894100226323889884798104142195572096205749989246950875878865103971670608522681121503051605257563499983626988542915081444259604898864537187243527414474248265366212083192620109188462570753391719217465234597097980778765106646133328237386316666886762512762313429137999527061096228757701025149717782005763370164126741812379507780913565714823598880161427759560557772585237321373913362449585772747347759055990674729462932819588833488975544380841755518748183690429309496976991959444197315603726511624708726557773982179296425170810682102326673485125990863195149355207035955967555629273875043897905906188719523650822001999789912027280363694518982718089122074448058766559080611236128545280730126567483877197982794470387548169214354651344531129205560499455710936068804437619066627812157140506258805052143293255705798556711143982656224300370510457539375828654755703410922737361689193899935255476133825062241380180403231200731521157174673804467642003476946752539760451623896952822359494376470680020366632670075216190291726342263954440180243978549048798000793907760125597502613621827657302998434752198545812497880437500007670195335263341709311481360425808118776095433454742330425569183757460317857438744141956602317313830695727767021768951029424850192917032544015911197014533784666564909084933362426476460710209505262309136505135858825337028344053007152093730896882342921164199077337801436509643456698195208834882940190739439245128418130381527790266623007150382540679592758753995392296571611358129299460020213677728179178229777378867875215770727847908419753948510955981874235759927836134658613377044920795131940690904655941598726640819989030850055922691687075919241087317607903320087317400507900499364281344071889481162138187599795480926273472340360332243571590523893332693455842546273216981440518800608431683099703167394717112692707873984192278315421164259187175107817965371393500370555066165251201408564603483533994891506386029716461779905867966540431436949680475864001976389667552784481990926314774048627212735380685943281957294954582689461285478812807104046778520524904017835837464241247275800318677378591080201988544346436902688144013866942944158807145551315126955043928354387115863547923808121157927686617413892726714153706338823643758656880301272549468341992253224878561960974595174724334954032925317301783018615838157979305779918610296042676736557353393499600757520261029746744136379519628510180816026815130923038354879809547960152375454603200611668599740453753054388908351698212660453465271432135631165173402908645012946161817610733421254860098028057318267980948583871001074251902748365193827884550039721240765316632850934157061394481964680353418300369883034686383996687402616582678138229999043275610912204345855063910784245622634921615622628818962180743265788084155341104902591181884999876401961212064785116631269675931189221358163519050403266527227080441916560758742707578078830144170690526855883772876664440434285114879883121136981921045573068403942344401448698200090377442643280426583407731297096767667292991186558236652188511850717693613186059425552965978545580788590323289609573842646177326439508591900444128366875209739579644147861596288777242640466313520185298705349643409063077400199394905406313388303403312364291883451996021845096861428311417364316805620480450492819889637843652742136556395765847662702118742989306631804970568814600816597088685790987079027962945689101864042837388409834265650759111096692957872918235608420054023761450382576847900706355681149215799520205236606186887242367242272092803636160731070258802722699678012541478263801938411113223200680853645485132819004909616058601058845923045275887092912314974320720237155369765688468060239775704008100080757779620554176881973550291668965785491833705498481649726525886424106097620727388502175677915205013585616597862172172793329129058736123474418321163420389634042546342340941434584480532088096898390445075018215671841766333514060356865134205633741961960130065162097713064505562504443102228156919766732975049206684352935762123744228992536467199245400318441731044676911541265529283186481872958466429065465767121415897495497283962145525245161219183733425617993078470678981977022416173575083268583095911480758469443564282351241881932605993171084724404058971990372499158551389847889857031575699281106852290614051589857243759887338370914853122984610812471749129656058983488614805397105907168851529477433805988207495759363648352493039353723941203477606721584323646361164099373649447504860830801550077579877721524311420436873069704019204352027143733029579039919088812094801246288350797229970603673657666177651651134847172036994341524431348007458188031711884641916498093923512528924209067334895978502608427750471109961699290444352071456377025625197780105989937124829557167922113911433910075746655474182762927635486210285266281222364017982917342860306280346715038759172611732479845802229441412007853809438319934964433207257720575621314891124419416082678098779683518001776483610854157543557024092719132625882637134311691414279121057930901122699770423523788037449489030311361517439143057347387124673794229381213117965781861509957956245604396425189551568145410358652948396022965410542616421262738412304785190332364903956333866982579648669589190474258564258986690210725625242879010928169399247248072461610459245912901718164085882598246769722725149539973908399499323696001097595032671982472040319679068431922659156008431798303407649611446158309163785148229930617813488919204862453987774726652571718149236179365993860403090646554637520025293211443170394489601662066813021224377359431146532144960610633203982032671803797665799235113301632806885546746962665116960360604692102998796732644162860229524011830717785641241463434590803212746684978687103559875074276917465338470005597606830082714317849767261218290733163675239675389905775055638799509969688268555952614285333289334673423462620260670817685607317219165342185561294325954800742120614860571361972724892036482812467418373439938024369723774604430789163470534119504964240221672752399811331160970183681293301146128445867782361446942207598781133026614396924259307582016552500626997793160577070879060199723449904565733976627814375984437709374963540912389587050883916881706671783803697812383021609426197216093332636515383867352052798063276105075521403945504448905772850413850494182196238250398474057502910729665558953607353673505785598835803928024871630481396368713153789654868717996609425837945741419748910538918670164644125347771706437999721686400533076448782175772120605902994527352429610422063040937226949513085507309651874871657026853528476209386592093415580862415770881314736962657299393549372007929012775245194095936256987271679723772581311667076491439851489890102756279322735217791637056265691227720178388574834398513470169812163927814585307923986341619228858853707182127275368867208876796519529950184294416509748941817432347538069010872552163525521531372726040850174192565028368141981853169086435950641591409455305479311837493646284216381764301588389124012228522169812300275340042175961687705580000225636653753204504053283148215336773107704308115876033185100287280309926905256597704961593844134649402106709875154189647876865446632960379002953859943765206452225123345002219481369247479029682662555687763473027550549404555489665637690286272228787478861726236984275432866808376070375779050716217873419887976815376476265793573559269953250939544427910836405200082306275157467416088357621427240917121106629794690457039147489638043734618060209092292279887876298585562204283343525149482382835333713597520190292558769113516608906617588381279585594156650397930666873946342059559993606237428028745074840368848876734052255580577654237678141783990303275099948023398534413014155025884352329004644756573546155728612686316384386733782323957364429265863039520532334765148601932610841540930979416808792450510844385109939055645016101927084428981296855298071795345125068375222455035250139132797892196223175771367682064499784428975446138389962530758265040830627340051544063372362698179768322652695498248818665811084673590478134654544057138303299898776894301865473499138631002075306081304590185229301897694277657169741783440468590665503949581077656230204732536433238417428006022691424906635890991975396252877641244555568982399807265747539044670052414946610739898101213831821260826043798307319137604632364771437560983577724422420471309353012183611896926875889977573457688915842505063842744584177789879086452438347786133621726849802488279611462961855930598441679196655599313223979952312194219151827404367157759686530562911607777607105203710676647811459093923667567577057777173384622603601229939226655634925387348247690513872022507736551875564426160692077822362172664076808468157741019471737835622383904641115582808071580375685508774955286115509891762855939773973555848451727857821508544944663320915355017304581499144669524628009054609717708254188107472400860462967674575480539910039607878508416985078251708872259557556860793756972235447509991028459795816134731617094857913229842241519103674358067934596216053801468626366369153729509763775232276163682179686568471470884370097865306737971323146041961091183537669459995998555360336472586110885911413253633425506462271682858193162150498419350916460850600188472138648561580868585949218709682516604852607085968419599861166601672651110327230825233148765825867493767628758222306959624398520464945798690463524022970815041350483433256985860174541230017639503976989251435617345100372044457774176347818944135003763305461301518726869539249760897453806313128490774193953333092188088441608635966158999727987549509070075384040328737375202653364060386310639327932241843664992383354164443974436681668921193976266356195345278078640673726299632579565909137592204139208885315032313601647951581458763518839039685762685991508617226377230648424981607837034174499494766014490585360628075311486784286673762775952448380115074515734656937325947249491372175916256211974177939169861836299693133577611302326497290032238974590423787729394559899187151105639302445133776056762672220994048688546782644573004194748181084950075336848119092975526167664414856406490582117977485795719378647831037615240045000307016582377902662982964014930728797066387411751496668544137906080892306573884141663990055126003349952012113508085796697522310240772765066995651881043085904265290927104430496907765325399441402731514445333254220445774368584678613320122260656130010255764489338484497773731413890675862799102746700592543756886272793047796004802081930575360145199166532857461530213762414889082326178186093725673928590815205957941952964480254868124752052168050658956174829351917874475683072026540318012736847178775511637260380826045746650443683011736967686597268753497409904391561197415001329889106527467493250296631016460644628953450659459598352392776216979843248409557220814187235702837928602683627802642356237383462910585811853485072884315010168486485453495087288871366408107633860750141355098884817081419651327086456659323573518278430274758992568218075549539315029316726840312232655342927820800144445757284209421537586910653521680872950947149233020019699278802656481693409195054056124605381332266097044954979029896636371238160558443549313731520808075443407139853549971207497996196418796640013159533510189460409975549798529071962126223103701141838379948473688389318875783555241619107860113770968561266572768969308104681787522193846875610616272096131792041364391573324386843129440494666907609885358649997857134610049008610892478877951528830879006165093476855599739211594739771651158356643482761603340155454195006921746542652750064317062227897750906082286136386298476112806261264971540465134182959673763547502480394346798271978204584025655698105222105128800370338234784340656404422557091518564994971775280856578968519734347797968841820050099598818658191654743510560008412905113470216978290159173428792757619513207549747344661508133824579685183194696771487408434614662156855036857375738626674557144443944103152602233965477957884491447412741236024418814777495603962522707416217215738066758157273892861949845026953329602016942383215637793480243478924518355088142544166024280919197760785772810762512529295155354040091513898174057226096109032157712085674201638816448667505599151812047812908816218110151031517056996494999672321507292579160829068798306412551068777480061111085585079068798468006239281127210576547991105811214624526895591560287590931135368407812634004317798658590957170061282051351252800272643162215958334116817902778841398425797898518124212746024451766409870627661032273821229865303048023091245714236466163845484011571134992343532963703601156810156024753892235584851756687692948397686089739243951661743774994448506003545153674156608999271574280079299281725017244319449176370001455607696812708667324272667104545421099166413844650769326511719243088160170524283217018740926980164399377581232245682746031509607239497021299325535231157732113981251649784040020432415378908703483452939375722889262653438090967789834450307020434796665641506162703724418843548663512794227285842600598699584362905878724165618298794597425076838863492204389864715439720298704342209250340184346276091939905678141389134517846173968288824829338043503657159460344709889077394747520210660782944876050296009137913412387616973688148176419957284704429107246830429290804051661518769209044745428299142598330172475570702811458394571630783579784156735633266344787728943104829693845786756596367767053599305993991555374744965054201025978200720041714328032337700002063100218250641535481239530881379497467138174117643830117584373528234447026107694908109521385451626601437587807918448163162741126864726643634328490465465986441022840875786767310708848539087423967092880274708845477029398650456446628180815942305234734742522180154397496799231060290974800878946772473739262931890384307979568549126872776068808679764070334324566352849619965761800355606593825342303070210415893422779628365612150464508319133914007167550004806517007731280245272868187591301583549147388758721442838108252671649923621090848525520785667652276782638070017449044443003879628670091233277833684760342615152370785839174802772014861194204890645388782980839714993302272594539088333032613708867671674742486133917447648127978818342216728761015276907260917039047905108152172866732201064979889895682759336997120243399873820539015487111956809980410470050441220293008837988597469073129057426840504198521421132438061309199681918431148666249973421418648838556516602759687828015317005211211156838422369872310425641163043227664489012910225294570095118899928928706079652722669415389472628892586492553000699507277157264384621786354422424055033127359263904053076688181260024561609759693357947532402672442596302599516706646451734070328415153958254342662987662213832800643261306412792750813375751375690183807173106365192818835395844104496520938570998448253812863270195582924369557725869814300580778417553495587336798910480246632751276548057946946203769023405430282038675612143620416041326767962734079414490708377683292053144961186956158708215548704278284160211679943820667918074061836838350558518923133378574635253170690389912989523633090821901180804845188667625808142226118885613129693284289295558948376411514027515680217481355716113872436866843233377162739567232488630407114452255429365309156455472020070748946695119102562374553695073981027492178549774180429987236409702029553456281758687350378738630450405586085696118784815064644435255196189705404862543215070144178638627978242760138852731605816979589390062730323758996485821215623970041174528976132867456207993195706459625174997941403574738722722233533091236488057491102623062255618260508012194956560253496436938838944886138203755165480154378144480381654356652832643785510742288857455624721290132349509466160288183290257519890260286369477014240673006945486909740626208537431474512004791748940349003819122567293727775051219956739878005470864986653657488201292321603811681773914032641978168357062513265688127651498993447605896970883466220303207610442243834395389957671051463021706233845068205546866587867612825435135313608746387708606534152211909903392185107477230767420744757285548603258901552348210089312429459144031860468933850500800967461078120411412726950618405478544973561870463782314740542091094409294017527649736979943347680396879449806059965004297818883456089745578314249447159874748865848279913132331561534304336988839013509845908706403313447657449650653626329410592426150424341468546466804620989798136828430931642622371607259857418041844263350987946129455005805112262343607544687556920019624735485825167828219297311965001846081265514313126878980919268171279203371693886945732421699185533534559536152890208146578705100572000830555581549948116972811692734157558541063660119355298493910160228027031274877245430579992541100830108968991195409925998835549923563998262305988731452162279592648568226549424514034654477540306134584685220890498280239222572592635772449194739778927151002901120768443494513718923423742769001154122828494662780030681281832776590870285552841564303730419401942522416149606710363097008907931160617870950219819636655091308447911919634907705385689006722263489028115171088123952664656098654573739527333454495284346375642415200929704053354006202846973039582610285065715676131190926342633984267237187100820068803750475759069152540981073926868861867573137001467264337680343230247886201520065595920237026740764521926169335088378834853203521702153085153672585083615317685175430083157425592978130982655251714084717237101229284370676046575092074680900503832685538429439664666417386561191058848175345767319299692159275083916442610030354391639541032349387257948435787236415634307346697188926562428757130884095327153423167083905617400410226503799942761649334900526746444966881884863856009703120525140196901299413930448344330197077334142471291006077327012200333739044681898159851775685793882932714373324475432793996737001827035131811058721861807568657131213176736080758492412668733165738114097405951334199027143326390859903063700610489864274652193454479539219954316095622676271943213333926514439358963459830374081408105912037629517311216043369864762598272098802776201919786707557135873331539860231914463069465708821772780962567909610235129831863947994407725804206933419469368577928722128716197415651611054818011741384363994575347665178875331274350554101388532697213690981672545733410210300781651657966379439633340969639805305059308938084999371889767158911321907703193646164447127816499796020547454977405822504276653310577799577338074009470030768822503525547318898977216909409250621739123516070515658176057593622647618495260565678944753869457508708647649735488574581449037143742657944170952854594431500061218639266700968773057807827923412331052843058075887922766110082500093348995663426547694460170262956159873419407349375020736727563045484821150554811456273843177960209502202360873537952500142081791610178106496322210799040800450707625360868947580471692769195234914759856318126752078214293306811728576223335329418180804514701666350903814876316880273350065082263298498987699386505516731713458037067147037515519023909347567228679361955248531486999855472397098109943760897896358087558546601214012274734280080840838110262664891852302955565196443058281062253361065178803565720196317585428941821193419394600029812111713906836514986031237526516662426307235077570527945189283524607342814224440380737559498193245972687396204443444269867440439959341422188107988919196862641288095406119008522600489439887040631766119609228090770717361971842944958764850580525558086562631195505157760849777146100139155832205910363897657274373016144376616205902668263123152759105746924292823700104837243936251853010320246711487287254125536197682833796566464839452253775473333270561891548169546517378760143224568737176036945101820892074742305286181889415606363787805247525381534436133952145267362039040985608822845867809354988442371234662612435637728951701405707983704126906060229563564537474380634081553268336165121322423185532471706950090914160864703731344788568874514914955040395103719564412988950181458752064917264510355213107017328772932200351945248984836108973683008736482343289698856002442362148230988874425067732438799107065669817454279952436051741054447021437919932282101472280142817947483192125645573125493678446599438898518830547827243653212575312800298865648026674478274367736900386231779346067294925127647646549949922080333249920741343669018956662261453815981536195806950790854502943991042246542817879990683000922586129982236862945937651395957964714547157130709104057570514689231309942736524004541868510882800563811621777664600012029781063075960702981189426535997411339666459165415659320167547194526840242012189142460471890623800951978420462457461039619149103290189752819812741003483363107871052022327193866574531443714974157435662093773831429698826276282430145862111128593869112025051657623602009993112941914434224029567404080278642759319021643602797254296091633155491150739491673550018026305729060008478182000843125311611255952714210049730954088623111323135010367685942982525130581259610051536189790189661575624775515340896598141180894992398331227365302380202496656462145882391032414365403157894667169897154026220519388762355999530935016727734368373568126876512673949264789783549294828362840086248425811763996866309708260554031570486533771418142124385242608938118248292576719793769906881799268943736367923833078008339657143382286288909923213867564024373353087082987233106790920604067678934675745413881140484364672901815171193103198996096193995817003141073424991107923498639980169892177853266624566790096033124276706374842217002323098896256421606102667396334413178768509892425742758237337581826786944823170023714761457778028095228140189857576208218669429291605270848461566758942845630615486174825298137427232305762365325941380173091125728085571260491235932271397412520613172509307084715324863501852318121031394035155650672210866317093695046009915687754888282444240026281393195527190375730656058596226972074901765568223414502205656273372547050028361220042099383159320462266946906711705793055662723180251329451641329214816024413802993994157956959248736918457641174228041183755702111902408975759077977932093822497422820419273838796617558459637549727196486717843942905007085388486408649129590380949385019024373853438715142358287906236609077183803026231107607021820906508278135334042308593022443269037246309889711622692106921143065152472202516158143867631271554253365726606625640159854196055009251594933113850552925949513162668890117206589213077523322638965851286796627000283490957615017412379024870523253125458321059743127144096669536155634917188245952960203676563613302788344062863492803986345605764077484363879243393704479728167836199390365769605768360343815287618200610390785014124743820495293663227358701210236636125819335545748633555825975320505317819669609492814026377420003827946289197352201602874509547470700848441360436427643833772676334861789465064854856555950431514322339527645320678549914934354630215580530280176291767547572888053789401576413322823344909999325513421314100572805967068942539789961530659465984007050338720821467158695812690892458862208655133330954697161181464912018788914557677806915344182377799127937156710637812754477579207118032638021810604679856075368129712627445492059570783879052429643488504693059083617715775022169529883138289118014206103367716648247464190066286220984416636882563508491925706368414603371993861973589605051566286694889356865070251953197263654573452837516859973905555023221268811027583538669930789235252165754587826474166602106586479200395684468980264755155050135959332770919344228946988653669428422158239330152531123008244914057994484739596496754220469692550225105766042307162174916132777853698002964674894050811076199060768185817110633985682014377741096582177702443500451293519560203715154413437103869177606458386430176642470630083065709966894019610489096867113326050947444125737150273064760513886904995149155865699788655442675529689343701098914295796773254947347069544118826026453820554222898958737547344947781626646422535696933640857647121230286877440157458466251051406478155760273774269528684559307491914835363450460226329049098055299023898354779228424733425170273504514589857316732060383213918221347891218119356497691136800371346156662439232531699994150149931689828946508897347380873059860422869473039675050674845168245563315423340733089458312306536578094839450783233650062014479898567036110320715598438705397009983249829027714519074012204616594664820012510052108239710832804480745701310130427127536829216710370026086062292635543679918549230576916118052722544090801860399625029120230091630064798599083767097726101872868832632807899740744261133893653819898780504356138666788678336812803676115466297643344949061378444599980943346628287074606709697211564644113624329622690805001740623775631446656902653864574050145140644688577008542044255711777222992600428701325871375615972186565000927237384795280296568181530779896418934620933862773411200029990701079698796961618586804826174720562001411875575145717881986027562034674409925725589035106425573183445512870033079859254951189840230755428437140307056533679238455818482638319053690556944975355751097208486790396475546056057706350427681600882954448593632040691250186831996015582587231493969524010706986884512117238442733930995298193962132098899147732365404459527906447194917990829604095970830361138104693605075910480367454586863819987593155558020479917713446478146254227020913279271269695110246187776304754285817359142671548280886165638182957924264250162463357439618281631871099501324273307782933109669330087812789596032050751530125656022006216392415252048683004900979410298072896219029874795691790320371337199563016871122467738674594512588705131538398937705437800334102857730761187565776742338705004770871725660143679887047537275336872778112219090438018043012818256255594539648128120939216440884301931876973518809569038185543174472519704554864268542108383857187824028977130115872793083400166243343469372933638150123154696089104950716664371388567462479084964981622199166909786781534281775610080182570903219770878277919725112113423797473161442222163524505870531962424465444346473760571999782459709648610303289579534357851746014061949427208840015364864301625930825727113150980994854305803691503087513947757115144124407354562048296858505512653114092789936901634779437282183273327117675863112293750377618963452475633842594007968030241434667911581547804656605480108017770805861325413444101989148116083479106034635466646179426836351368487238615251749509379099244259116814587610421397082076237224396162440200287905299395902023059274041027964534176017711899605738536101319533509611867329326661643425546612112467680559639430008612197997067585853052545711385473983243460947409564648629714964113040229997235860928040697607777780486988594969453479963375927365327117175363281643734497771975864237390450801814794454173303376313671136206375660223055757521420645035416136294785200750772946309168700948589226145291027149359320920700515526329804471272733608559198089695068925018396877649989809560983072506898164434118072973646157959522030002848587128356729541562604238610618381757667941199731049644892887043395758159671131657477612592539309907194063786686052866362370054694658604065708325818258640635551262933081827782132402024125815744652338908356590679349743105992647098430244022276737430359230996765090516699813283247511026599567797180434958589014312293867458561354157260291740714595477678931720844045757141166106960311051852522157421984662699599596088304976345417428411458311544348601483142145445463219170270876450972298001573789079558837941640546594374018438568239085799125676188521452898911805724812805387559021267552969317819755152445848802040186615832069844389018563364578347806509344575497108250428791147144874276368501153275442940065946064806986236240235384245393838106309211179490424284653742613571231067402953164030849384849746686410222466191823669829723147469043025793599077401905589392729184171230899767925587792994269997617245925384218727546902868048088427710831689471677336083621364925028910806951617993737600326631699147747529211306450918355869929525145035165656054346521968194614319532751254953581871305703005126339899802339659595644976050591957281342005138791291705814688962025273076814224256718024584810527653212864187637064694694471216520785273378709886595442745063763485013655964267709005734636832851529698489768701037755079567836686871168503105744050253929272616722385033095582373924294735597040342854366210823292407804840686101196601894378447757089995873951770736643715292570283667095516347962268463582010742826906351819169731536489169810456473429551527459772232947963619858976247332190115807853357903011690065866294645634727158374562391962593915850447755394418973016614397492825300115118118090171567232428704287388765201601688226766036562833682868055554660565103630433808437173735116699748805953331850999009131156072829586803768473025295207668780908257891670204671554471417851473117367512723382939989535862534083380972171529522253547206406457998844236288448657009447892199475802489860369310825533301109695126469304161985770749923184334040505139645121957257015591119695622400370420024910079264453423147219470924621833338226708531204140525772083443210377953881494327513209074204764879706394129195839863000637543377829733394046459302626937733737295302203728034719255251009110392132450484003416003460411950110021842247839240032437101529999246547063752465365850025733503963498393335805161963465073707702778525480311613882833829931226499045386335547918564510936985676000482521975633558580194350723894866317220917613645283954759338784093647695582322668384293852834381882900705422776899668501411013826396331330721039725151418559102786396518412053108344296261999431567967239716445408856976078121974596186786561252309399150661195116203017657995218908561352281177981773097438521503058123712076206497543276491031180120033485478058108524967097240171555110252165944228216327253472397518531035791593655748083531073978315274695172253292655547656835181024956818345165182117836901783098178298632815004247434726309877919814093426466898590093750599191886849842173981971861875322881618201184074565445965850723059148133018074764978261323970762283255659309766488188582628558386632220869328031653272141663860061368141266210171280359744960637163178356263451273368028418459188967789617722155077078327023911302224960060588433877864631228642877432854571290352332200413974652140269864356633006827109004713546013366376307495545423268413515616227341469679466339325788629176586600001070714309067162502046633919847780193643732602607355925778243576808944346245186227749028935677445483111775237887232312512845886193937371174516946887524266819322733179640465142156436281015873988074178666283978209274019720608307818766764154906007325835054456852968202298568226552366851116868866620114105223131425440258495451195475018499799435043521334076264387106866391856505693890787884101070731822274706952568052409626532732239849331166978233338357893073219097258433065110628705517419674859149240263580998508780994718995093804783348688268329361596927604020853528069126718307856260970390446820236133995915621680310894469649565999013323820256579813923204006649030480974995624059142503175445537423744354190600297532869880473663205511589799272492383387532792287749214950403773813944123631651170183282388847059909298086079000152478314879138560515821451854979673465717411199025605113251876447967530966880262809733919559678384696939926144804831964097198908605258990952518437044191544557031177201324281402805285228446047128996728136992542596768198120382332804415840640222763926192008048195442092873734216965074052509367892632778671801725266945677019376486183360091280809678561447503408134441649093361047187501402066960314426671879913947195348945536975405171775391854777957327791500963662474062746790089296516943108356201774723176000514501135918230621556511734492402615473677514510084680421497407126829534073774937354143769258875018045552897978918662510898007065058837716393738685374400725486431441655802685310213205025115937296817426087741791692761711768667455333614558834697695920582740345780583448170731542648293903192725072889944173086872827372027972769386230317431101599828705214007478595172208094351569599974042584587416277597136410788696697400170562216859946919114287418749292744085245919093576583116532123485809002939094258890805554294295349518699663475937426659306286020459682874366158745395059649475624084163624231452652349647110779753139996019109489568390183741105152479827651095898813773422264789516411071185256766868352889294517887973690185509949706249961126021526031600900016608985853781183379106158845736921803698021030498165770616719938110452969903603556972259696889655937630792988599183042494406686773515371025258421121921243983215322940548852190793896518218067454895986718965215633295420450361962730344390495767706370010822420003273287479129446536185760228914794905401535020433268512716571829368352359217483114298115544142532590063181680434229098922902431294215804100537395587277477748677217055133193081650609915841946940489040225950244024242229056449207225283946501003750230752084492462524825041686142746894221909109076812521824696184360331836410168341267357457313728760984289128275328486834297525577808287525893700776566399178138985429840893195154439806746208018760903186077394838416261598360045160300444665357742914103357736844977450581316244042442048266657456077665085511042320271230693316177291666013620449118017886853910759798672863345291847051624331042410138239510029979167321679515601593909120668021774644824229766166546472002508304652555481913124232873201781975429629260957498271096738444769703134138769848854280023274927686548165013599962597808179065516019867917393356224620464484193157838636720926428273074146129700935177231850182425880633756622170907494070825790034715262131803116278768989913207977057088716897763906284636464667720149155097326161048262109496249153554858297050977325559931536985848578201708754204092833330573470621045404213548825811524603319227579664356662812659873613937842159208604810476220057067461530889808206101041918086776705915659350895391112638969838507488580927109089942450768523250846218098862164291022762546795118238971827558917554584309771714391766665855337116627192340541860025990896120593183597240661172449808869868976026487054123620807732661954606522883657438338070990691363389179074734094526226601083923320486979430295041636498031389082923129672301817681104013151572578956757606313913995319548687607457872827025721989909856426167107527324530374195638790705267267794673199465592946663773338247448324411206062115523157059055018227789451228691199520595556542938523843755666904523057130817550656624727352054750926890712275492869007144138093885166050820375360408355270067990799150711978553595775957901591113230024716549191495748367191254451203752441603185627044665361758199108777074945922391160171079167678359737344279081064031128948468057013680974269011244024820701215287116531169921573639186280688800369171699635110631361004987031695137777787718208506054261402839272417762306621892721932184791561478130009415874516807004846910592740308323456236161541145899637719407913083844263769471551968097376092229916820512649314149763598805810915974309367123593069899332910180034243658599565148536512549956810810501708349962022900869438182903787864443191841667223199397959524617991969788919895806962925552068571735178799998096526817997001533713126631528427966731319174529135247774092652825333582396723734761670802386168148825471180004172206580820948869904031156670341568095770387314857441236527504819643839541209433068333584296897891178911922415819250679214770661286841337762142405390814719067830584974406071786374341745810668982259380886425710690183282057992642780363808274961016555297761471510444241611917245138531401712901084573454331618525049887354068212426589735058628498534702708025071031867281892331125823303599351838125635488992282943762185537987227026011985108852417463500574186813367273965208019998254300798357740157521201309857887533994719836569817238332529713883516415112359077498856418461888130314694913867722991736251410381517629717989313386842285560332245626150452829686879408963099613510184236774927900821479667983737537924179472706246706611074086737589267536060429801764369534282455380296584848103645083634046201078371315353191841521975245426996724841945825914737360162137698865313434954582521540412239009881451542956753237133468488496741746480047997910110930124258033632684376961766560059952788877381556611156791534419913164227233912721414817135575006453690634968628744297456279161377123479287460680989835378887943221860607107429840828913326875875976549723084199001575680656162137321140726131238324260405355568317044987039766474640027843688426899047734037186949950501263339201350038340806322413041613203034788773253954171195388340232724045875943062510572697128863967901663380428079789160323596692388809579509182176034813005692829076117616584459671482472708894158288456708531833283162995677998055848974146877190993211580094357531892529509256512660320494665980992283265933518655029826267714085970490794933325623914868015835646417473552628494857713363911568505160315630028535552638120744431048045115952918347025302996872837959571608181321865580741335632436254047481905705990015998613115286968164070540283464108550827822308843550302492646035266719228057880277433589798401203742235803704432551526867081152934254426729695292814775300763713113751035438277199243901621509402441024658474717279271099964285245886571588669490626000478087967564048125904091975788552543504769227273285895855280412307530593552439712829649084877970012092827467077856076569571195908323737721815126082128010491104357142081017903077622722309858405219877232328342222445246180578294499171314039253322649739260294286816040915464363349432198829515938787200915252243719807447242549152999799052266369928527026566571863088152320709568937593215041938379663136425195840936034480045017163832820404816820906049660894324067215747617576977859554889169236220375280848111013029863922589648295197531514485349477043740239255964116049478810002730564696696925676447807993900201924266751996754215560130817619472633258480812182245579148022773646238062051085777679749369508531349603813338752705005274335199845002302554871743358003006977248150755144447336923305917735090772195985551333130742425470964047634446081261081253840883169672052532399887360958374295286104396894348842182949418336240817756351807623879680878066486496956373928332306247237395649740403353139951953090987447792944828287709901253908644869879094450536654136342922120782233574292274562817534647484895574753999352079482279428701465347136121177208166817478598657408156704068112732709140558417849990202188506277758169276978677484873859018463224656167547366224570770395386435516852623003148543705453692576511016513677655509941003584160849892776860350767951331242069638929025037566401097508220936075170122966453238346462920666825846034231457487467537747861226270838444852629621839781990326368679999595523081016412745806170888447403304461428487304262863597286053311390071666870953025574635624695993318860500487199810175210271479537905858816856419849061586535837461159719785357883892185896534184498120529465001423340593356885442414846859487183402373671415873512205367203721383588366475256143122638862891760623193413674897565680002508393638233016030248790594343783534586356564795749352431559135973152166802872603724446193599690871133928760784982390360950158463643831367710267496546998241701672868062210134828992213096520752311910222222010876239459543479785419662384977698984850982407259164694647490167624763505738990901791979322859653798946918051660368618736907026964178038498616376402103958767255450695006525949348004015030937162353149658732330360155811985737574173557171197309239619111652667805935509129722169750355644748481891545886153296927531386041360890860091268914009197800425312753710773268164810919621797616325749094216026726251611674400315478657754849501862819397929884707741586274629887545976550796350495592787262332179760850031583387324271118980427721782070941700719190539760404756499249988924671494157805023554924414123080059359840111317470350564227354826359312686044729384973593522265430439518228865762528598450923354773659498228678916200089020854739648257264675791228609498060389514875275559783482335740246727601892845792123711488714007196843589854021826658447319823391591911644660886267670236444590473840686195936904425697172282219442573973381836523347466863792495319803066375501759098179852876715891806337340122295170568412856516414091830719882110053616565993328164687443748511294395380533378772824441506843338766632782933315036052273224388283970566222828563208110258520193544309438340563420814736407193290186312807532584896283975849699925226150076574868617950340672499982900257340976406968729921450700672263610377296355319242754328562935519326471750039774102541996546328455321319611280182672887123727347659616141883526719166299942658182998100732657272559275406105902267798619869937809978707887507503844246954543705498660710359097301651336110281695629663800977144404979523835238579388704608000995074531297683098979395636956758354599157775032370467460591501430658482868830163457713480193658737490236665299969628285463144588752154856975519044138053792493021285241575757496466927069163715780658432069217264211198107189820737679490639675222991646509123838906588407277609890969307952518211862227800381213656445749426332463498211641939053995731704865173422955723399156351237395456844273037498293257051137512737664233024152296673068830772507359984153094212592209811770944176818432255666059021223798389530591248136012503784511652706645827693009573799934515136926537200547079104901780988282593093232028430051562243549591674246849988935738162720298920422827174807272797782165705032585179616469509463346547370762583536586586017549370480353483988544014399168874486761157302195547460257043453267740719843422290955752541955313724415291615353506187861502246716801156480781865806423523960212719962263477465399862080742153277399198297791756049502986130015102501052693178942644520748570857428717219585233841681423021722338477389392020183179129217990434001179080146859806684509115889456620484736794888286361097830949832564259077232748973679173018685121810199777721663043491256190533207950086014346572967874094248461393622665011223254442697452929957868192317092284714322283575669746888498320148487563733039900799136381342154904451428176841619579844368482180865931521125066902100172593853727420705760171368881529693698098402355125685576618558268370136674924136266766574745318126497188849918606070392149407413696338216166991410399325733435105643531446178260836232109845417925679179988535983691505514975803075976249055056215073894288057797584320949952172816580110015399100894159288254495409615156610731913231669918239322471988499762905158313046807608301625468064911218945649842364493417585006928559524664333227430386523409944844254157357502074311032347093761008250790142904394972617040625440204186250915105420991392370831484515959565067157799681099545027272607662088478912091445823486838185468181376693600646904570160840644881202143786710132188596407177667977497711067059497098631234549560211832028007973272054205699563122974107588583814760326168271962422676089989193473664764762575278880503765671042334193341942866978503408652267083549688915520686585766307589144371050678232690314344572011416484425135272742393364213333356005286528150019991591289286936342243602713197447827526662915198929906685468227640791154582599257582171902572437371411078911787484748718261814489066689092318406715211649410531467440508135753124666093217240360184629714092917542201413468575110718197999684861524697027475218979442228976434534910405845877191050522853622065711116531373633168970764406516943833400240198111324374156709301307837295664565791846549059848470923764494904143695245230271655741619082037299122239866234279856172918799221220167078958675816099415600047697115353634948143573464057214149315018223827750997048938353826517669360952605926430908284650249454474087151720723147016859057645791698516146881440200910698111028751499792466125589059549140890644989993355893058822834935733942980291661639559454413978988755593039379806658056003162304200118062879986312393131930119999595549194333195651414556518921041209198629900087572124858281909172427798073836532375411544457120231088375137828066028494943418096798055310526640327392630108465348703700250429456187515477562731833121632375065271455892408061733735659497012162084373134329294409343482852796988930038287998772824301580438890321468401671474347408050314931410578702070901120448538030560203529127284365570312644667087974337231311854370437308494026844622427225396713158220005739028980658350154816648394024269058383099290700734442714591614426986577476818031823334278506366614449176153797901693739866446790935077491516280150603573522298812377851501499625844639286112090510669694783896756183432559488036696577355143544317477157360557372327491794205485832064305393789523235022321948727234910966271543735786157757119505338704683530301752940227649847601452410772059057114461528902127752425294409706370798415240601191480543926271135588989934783769928424777070747238928112399970232890165034618952975804322106473968077950744406460816338369176634281889463796442875408149035428104607028487565744794682994127950385549322389730751345635680758962265756627838926297886093809782909604684964955012387798786501054181897878941264317427639883597849924678521961714583533059202088825839888059197935972837572842670763480775359514008380160980135999783702508313912095038280534182580090324036199444921233474055041969129755641734882929504298852457792492993977948084555725456441220008231428463031405535844016811518608395829213424359327297886166464192188390874123605675322086641272076840784673144486874019160839278577030237156062589803600105231032283362520562677351552027599637032005113151754162483311278832561420620678115321913891581352156940628101778137602993329158619840059840595106489256354169953962167367026958948776708259782048930212357324046790425521563912215463277664084749795208624294609090649145716904364684186200994563653217494082801470469838654590615923088753498971872004975233419996777986197559133064116236387958919801968832063425559305416493749198274768014839314575298644252592806737651493653976311636142025371370086123357263408351228350858792491687016227699571386862773371901518651395701980517228108334503771781022849080212122703007620577378001307168663274623907955831053315376889777449356728912404607357618560004007491144572149436579308318393655239264805903236141854479390340916490626008842629319647188142117022737647055081745941878102105074186510019850305119177524037653902671908121499674357987952545499507121412008640865209712790887138880145945401989694143750774824428482971588880341215816271187524682111771034137141258917790068089623575135169375352993004540335036635682000347604594972404201630270488911460900064639534804610593448867202601987111453180319400348425255381282648625528213021691513888563974565537060017133707666898936729515055542300773029261416302865741226688494421125921755933174802643342968623633054163063927893978882455999213753056580635877704997298849409864659291538581468506751725102889338771190179752141851819350957747368055738032923697622003640711726811225732183628425470364844305260916754865949057378023448821344020299323832135978610242140801475490851948799443024987216480818431156638424560734450606371371842832881222296165269771334780900741213759110870151007296417590464848690884256646490783921461659255961145479081838258463368146009280362512968394675479121348062801026258221094783309259512271376720189371356980973846546884546050767859427765971807314446737381018893004472079057555214615454870021117856255648217883467368032060072504900499955499376626999043430570393253865395734788887565648086047390565126555176304653730042989208820446248962053332454388936626978846808664783087100428564701906370096782975712302864527724992849689369686333418763305996564953373009392642893332302021533043266790841660217283446130786190986995715399868956020254111469100193797356442877737306339034276763192265162322404025103890330427111079207653814921317053563009865402633873828962957841447885888928634040291540205359466534135724998591244584840998257776831664548762345883572530141298046585785267110478805316315421923699520072667882074220772825679459659343127267878738489951201304898997944067732861367179763241737514099808163310142493423554973741165136764940366546678424607032735323879919633358087284029088756906117654225277203173881480552021045632753874958244422903870830184216038030885521624745792269814499379026508600362096288825434268184592400210174622910220567396313436047592237742354894359555916423483403227463367876426308559945050851925228311514630353571672108055260407949643845489766199842605130885274945479251483416771680898114419947078650166599706527766528801875797713105130845881444749105006660053719725051969452468041276444854909195641263490580503985873749000527782193075364703773966200661803380886307069645296747141407244507681996098819423054625903841393569870737040114036846819383487229141803792001292061308341335330019147904596754878291133563718553929301958572982553650830914467964758575431555921164505323819901719983008421105442201601265628520882810915309293217639718530584726994285394029958756276085967771049193930347553276775260572493270076693888892678463293666644532137422184198767596292476276016729809829709012877607932655976074638222633668781196163994227077056263971370017472342375139197719936150526331556452085998453463817010002381818035814782773478683180635618271080738483914898855681974491080370499366157814566838790003574411746306670945449924649711820795961804893303398463113198821188772282822945253909813753993959721397526700512946470227228350515780873236892758660605275190790369765888912343482417202977006368027938890996659324080103265421869215051745678168601899810150005310863430999871715804756516884618821993304208148760058950344573343654669383894825060104413547632068634815358530776965046984677569721359739682948931479715717633262968053616961084094082544688776189431975784181098583013906658362302351789571864554383507016389395682157015953049979504748646946062816876976642561305636241114816504672983331536619469778646945109385304637049012977379998622258213421097272424767757902045223484147048253430446967732013417110006597077386577739092130034133476148407594299797649647784275149577348605435330371055536026083199813524412376525943122465503586961195427161798423105634129838961940574557467252409050004486017934229667241621094271696597798758624448295733977039731537923300050047043034664328267707026409823591084070517107335328828237366705350933938658069395628567673620522748319180087708484425887392537902083114720914541837091926664397769527024333795862740772773704358980342988132729616026962348516419571669471045974125952896257510592967718716902936467353190758339691740703667532557908876220954087265921948769601417914989500052990314503479080006631191499783739678097975838742854994061158650990260872379922155801971542676352175981677756240801636025116201426177808837384554588733129974533340337584530878948686110747403755365138222566787710802779651763844179940662234544623616309596286556592504380552008028611847653328798692285630867374911250321527062871630412401432682282766338646653365915964617520097427751080833671356091400366436210439057227344413061080659415954882713596341858753094475799346587374958092077136109370352158718290070779237516063493337996297742225168323222950589726544666212893899349821997376406152024024923686584891252683806954206509586794963364795106725522520662601989956341411624342358984911135664698229194041686656731878066450072221259519998224816743384023602393645982959836599645948082617630659806121094166656921144763550760260977079846756062294428953766621452600176111413920243038105216415904666573303013208388156558751853915603257720508233160677181131125799934520208590426475451050136698706963726682220061311464120202263378278907520741411410085790051720288161557623608689206209263703117254096509660944916896528104990786210214901422442583866529987583318485076158368988577437105978055207240616012114532774877757931536058425526892888463847308595709776338992720980513381032567156474133382820562891261384062696691144211943121186540275521496997196047809751936342487357343370342949180186157906385416199898147275403754331036982543136629825543710008066372250212960563972099018454171241507454733935264652805444690165536055878974637896707067573562321860323363332713050407337978624028954121522568319697257232682798711111176370560379038943592047025534362349758795693817137532122840137046190209893135683838374232125138182581456444080784169424253669947962958442712960057081198713424400045972029999502398158310416315377656929743807709852798496895694512749731415133190695769601385246282423317564032402084096362647912631687918823049712073602144106405283207882944844337615674216667401813066741241378321679062188315222555963017248853270454641823429146194960560866163569077993864233969069482293136084729657323391110929612685475352503467981322148613680506237654718427362187071877940564335852693674652704794867010585283756752511569503643032016366145040046099194894805923789422019782317798382483875918097654142542445769115208858416523326500705892492034608072914198466083831371684796677709698435545753379021807101994165195599507997684376018981328764949653735707255422424254405903384014843529727539790427991467950163102869045107001984960792195070538702981039886633921428856071465141990163779268347059966111506319587602380197200540947465697104097341005046366707158382310811224199354939280128998836064420969892324567026957299861808776972192815272762538407131920381553949695875220215976768985532856082461889924333225695040391143104433590955979423701976459044605577055645220548129442607607233123444396407209099129166619203725646583663603820114069073810457522585835170265242828796347641418452245854449483750841193202813513030373584018053438172515865888678094250616862857553995490182461161226783077749423208152871638721962351748776846459633086749300966388873251105780004427283195994470031088386903738254244174706485079066401153207525097535829078453914959219155116155126560680649062164689603692487395806759182020175799336154944271946766764218148486402661580854488653201048496465269671984292094123866940188236542850439328495596905873544744695490876082607014372782425156835274048554320409347950573522515799218061167148879416307610241924520395935054225454187842559938163043677379242053366174313994849905183330726187467423529432049609483867036662999636604410066133817027246468842152202377090340985744786518579013777666732895533920305039484226350233433719410872637795589489512265233159541948381443279621858135592519296390187560552808313325589322596895900453274159362699009571188603876951692317359357636109093701568002768752840631610933015153230005787327112792591243525996828019571757936324131341500527140071600433738883409409214242952357134680972491326595917912694120787380952954447210224171430291258161727330442609877631582001856549133360300230985208005754485819953504888746336906984904257668393287127444648896468768870206068458346230571911254479896751427708522296062464353215967821071954486446126667153309426132020842430844274921166584573058553149672440565099611133152142702636611941839306716837803470340575514810562989831014592042445332205538086274958003685299484809313315963699185265883861603940445042182628245137527357623357792700828912395124085217139917293331856788689212533498643654822659147646382193376679851304910535939312615940216307208706500828915368157821631254623701674547738140521891331604735557311153582151267012563097099935080239561056680818846540557515295589845863006633378669544162298352389027468926407023434428427684715183128193847025399901289182212276613802078373941405736197462651091945433657557626652536155678497646000175756474572931697512441287848170940626529676360760782518400093504923109460864296344690988597239440865572575622735576922250871215541919727531936514722837261305963542948807302104896906064813492945952155037974086782945401432450426630369580908432550833363654094637222454598301345240509382446621134200125093694508487025919771871462792268931895915504099403029961362154359237257681275694795418129600367068727262521311485381871380251588275981020078925410533806793064731185993193325906553830848938533039226021605049061853770353074294862316780012848659306616375945181098772437891881400967952954677466427318532823185836401441103279231445409064921418644779027240986531849248852503773097876194803478660412517207509369878724495098262004408703299798844160793422512328452637080426184585791641211297074694603821660946369361104070130728385787688262748480343511407478481154971483529965891427499113130428826602068869552796051402904451776149393215297110069999761101550591115596813430559779232916496250744113096271957476229989823907260468075309502862074432107920665695480481045858083551364938978627913514529845955464936358072405325982220077966598488124337497045545321980167324353901947885025077395714221899975879805129997873544078666478025708272121924532985118261289655916148598306310786305676440708146486758385945655849384791073897367207229602195960774252613147094210311128511505791670767830935427040717934032015236472295934548710092203271182995472745601436211216320919394817402238491832388597122782712278054320145727834029952804964785038020488674053927629114771136361315456625596990665404014753949704617352559456361584377068165315495069842252341364139496324833956164697110468643258794457498504193213775237911405153878183194531913749251464521475795385928622152900060224435538034980936445277029028611342669670509491183156459785803998236896489504909600304464245443124853021271809884586617545820583642350751593894747477753671924810848194214401519827153755190691018842233305077483137171619225779356097512189751055827304699306375629129591942835359451645665920568651661024336862266440661564255854819103638561577665337561549891986080440252891530730982687217667836483269654514635432629413773885957454615671018780887982038463193039191496537647177589238362516331686402809127235012084430578523107996540477009625176325293459003169394210260520038473702111931350411854267743146907492143802942917061706156194662156274223601895918314577169726624814911378882044559371628652727362147153576707573190206090405013912787036793499659286598555850805833791475016030969222268398997187517023279028493705826262352183187904108153621718770723833039224884515476234540488616445049506204346735084960820336622473219552977079957838910852055029448130969245873477906656646978396248768102583656822356603263749483351882396552126534867468888783453365266697722097605744290756679017748355936504623480332951813465503336867706176834604382421360483200665606090026060049822288386115223322260032709833825165302692226851228550392266170012996358206551485746671579904857787495578241224015271526493962898465479096659885444959771790523292294400663004187679882057745500086473731229457467301320700691988254920704480489418620153903666209891271862829082956836560708177489991705675226227629088095722920785920154576422278003612824254301761758798945832582367076935872662792465409907175071953415516989830704093553262868243806933182871835770700187601057491882280256293213677736145936003402905548788386913448983556189637501511735148906829203829947031308366116279959629899101345083218102320010103514147346541754705940622596564599765352520978330624712150133094410551582501435705048168113298209184910524927961049011615314504899990421108784258320067447998263233774197829849782946075192663144265716682701507628380415719995949923814691879953746691890321680459971181733061951836393917596962072144560941738622117388979607608215037261028750736018281866470175405648150334364944950221254061835665476339934938694557759050954889393636711579456795196992072085374386985796817601948975260765802783284848978590569311497722721093362179617680603545996391243455847007619866374495421990331572272600230547865632062683192417390561990791846761841713433699923779477716667719751079792113454083746991172642463153621800437921502470813456056692075638441090001861510552626200815988530099356717327384097883704315094066451921557649020183724362596302076602036566150039130500338920973056370461263125160335136198176626884820557761132645283053742955545383629828097113594401683947412325074146887147913966230864285778997053105824885165363230387328555843109488545591165824797892825688467143332491248174515067707258503694650825292139767843223151671332364547235465740770103009559649881104395526205846740469853107547547405882664027140715067196976703616121195907528721333430383220531082400500017668141998940160102485407207088288144275837980952243342499449547936504079329021600960660664815584114527058529373059349981008023049993688611281865344452921460176589053081630442870938714621398988796071898115388282554411638930768797504017859296083625773069114414409669483372447533381637407535659372794276858306061279164693874777995071646824109136706309100352132500590538748024686400509199098973754685332713993649855880244978530520395291506886293163247623171522803843719287910367035804772085577577869527794381047779375795272513275961306950778541404146597114320276926682806128251654959813243208867745850435878951191627167517758703406946600014221300910998596225051492875386429548322714443565130492882616400635604353778313668745471165110204927703313760340314886814933217745162577364623211289082040247017372863902898909350732351473026494032262858321005442058028184127869607780344120795243108067212615979656312997686828460503876094475476524884963790651805970794003179793087256823487026378885202460764651764989912807123584058666200204022390944622543625435068604565367547327626530133554311294724795847823200238293045012251771421526874355853753841882737413030656561994595176032304913154402710002539938170110863701598641857697123977652581911107403016470066183923539635258007219475846859554371794257689174817708046664363472294170691717348129870066630704872615466438538218376808001945934739085202923405811034481930595697430138162316332040281501674399429762214303630718470041219324406181721552524177547107755071393448741350088092558807959584079747898717848137476110472462094993165398654386052861523726893477781111687488855269569760123550659767318704000201049871261447817232083302161064787280922158143260633741984075673177266741927343467467543515555644042039594092041166922501823443582095810113609874179032767748088338212808931217171292007411275457610554517611111755461580167331606666469631629321067964102696430029733463174140780265131350636504035252655010439868649447674960627128550542254556684356142890819530632542922581400591842360325211258208591419093838027281956679674153620005621572594371127873859512237972723066551945141589686596373567256962134306553409558460655635310553197118458563466239913625190857599033985677960599305699531098645701381540701454663049996933314113744694034917990737926329919428447297085041199962847115672947679404899753575147220380453650096225997260819119279979235258489927595880314185132124194708391710675326717320742039417546204633882233757516268351707852730362854369338340737021817820898493516272762295768060508248594560020216839953856113711665972290406378593029809496572132119740408820614706126825200896073450635185132197739024414923476057539738557761659376574710312180772898901079515743754386257882292082402281993448568086615122805321262874009146443856444093149278559531805904082890186515029025168033092935737485342794223161728830116451847152725943906226358171013028486012933534639633766079724196848072839834077042660561139458845832453262338267953034130384242981342708447263159107902244374108469016124615112088733055486190428511983805224805367360326861174370121701277855379601550229985541770215074797125602127387267131438441019809905960032380388664604010746197076064285538342717266306713093476114234668904523727609380718809297489032531751642649784728161208293574748801132796589756988036401916660706551266418230994756026877972676993889051879958470091079426374974564274888626169153341787607948410032717279373268384134447219334584495676204890851236738372654246426073351155152862657983558314084216944665975826074330058126764876599487423435744803687516229704042582745236828234537443142894915766727509632449294232278896079356150815075455024062687986195886958716158596275472235452477879793178235723789213971285632925242055048281928295683357584855333359263775273054735845347676696462121392713038828104226430552677250737254013312340943249429300455182364660774875848983525490079139227597884862007979124576297626732379124719142627692576077574702442012196021635687226721964258632615308884356718598559251633790029469604756469293674594450127746109360747261466872167235773791510818812484623029063959492032693365269223473511254870180416332857973766921824735149254301210355047529737218651957680551606921387362168725603132231546971721914995399611175983814335653317327710605771224911556456605337879475810234643943282159821986594055604172724686412304161948135422316099326589793670442881237830315913228800980676704362799545936532657552908061451567163373782182234798539910084385850039935523991062641729326428765420639803360452712468401177849140379455763611946008695092354745496687510445742270475479337568586838940201833428100598745436310233412306919173491633773957075357661234565209665373575069162349539386803040389557800890339756622817738662669342685016558483348255350007021441006746806495561159724367482204760962979594350545665070633562448117370718751096445101954720746686725832871909698982970524394734447159220961457946894796111252695439002016915304002066042358830611288075014686262573749583818072857617998933701966051629565147595304365482876253859962042537647059536635252238904065981419052036791915494270208835882045080127503698075637116207104727534489135811604539835576930227190665776228533075384909601966142016757196681079593330996508806833718495114314482270905564840793745957078442062118855343141515629989533184683662269354556617921833277952121749862079462816954035907534138930092652969231906332501183789118556561384373749001537583627447652988063028011003062565770529989117376891777613736766716116554779213648109520149500894210173921559800364113083316033926463002385966871663214201356792746791298693769224988024608084605082350321036397333280842272475721205166692995747631250125774379164567621339795043693655604443299568513814429993560804541271204442113005838276269106304815149007110765001565120311339378903204737714266833573061421821104954885431175291453226594037600309069006542834506775814189807602350360838695153801223610291003482367564563768187562179265123181289493487005198191717589788109089606408578294260416784814646722783011727796957934873765778052099833810604674946148703538966199061551467957924828161849650926474134547048946638783351725087571593152037428400152010400162542670560815875069095232724945989468086659934201156738970856012803528482139864122554275849224336277675767779146174389198747976366144751390158011577263944162137678089112480539894239973674202772958591663443014543633490542439187851153456426025510887271899549953309777827990094470732935673613203264553869516628183371167783472410383889476874113310642693961990551811410876829733451733509504561141131845468014731808994537498913475238301041437809539616886059296433128637536944307980545626400186775554255599174024876298215338605544003508976854872405803998972493640255731078498158668870701247929136570508096649482083731207543335827375969631974510825592604830001738977667373842865787541042103813504548023409564615127690991064100171963124510335739492884089977065258712484791540214020493461916853324933363722605355555807508003691125972674204054219178805793387479695185962866220788192033040097055093926943578570009098600648488761628601598219668634743475107343978342096328254758760653366303217075078093675078329860795822304181668020402698680798477251998037139243478393606116441509813701614493989322858957517172109270991286472729934215634959661127340889270106723891804682199606657199067714501281605248915826946245245464999491272947126094751914041074781177440262165935951405537844309389953190426648903414832163887491341141419608046295810185969759045877085412144752156635090850792408333675289383254416037595522853755415946780638932449597653176025540096006796701718308500057926055313172433487869207556618548794609434514177498028005718653529478569405043956104096901883555666896168818891248821822869015289385216009831281654297209956970857325861533047890678116297653366960857869516803079193924347287229602529826048921116410210053096619609482468942704645796438391212247502581954473904660996377789520572429584647720916659260430206722132643014567842648778078341762409526142696692373839074388336294612664177553181821688227713182072522666474265791854601351691373676243745513297167962141531285728909628541787203361698217319069979963458363668985919385169192234453985979616411928508548580438014015129830081570022642527819751077924661543356678311149531790571956906631535238609844933514310194418273845682594316631857868970430924489124823507633716804264607060200014312541682808681398868376386502676941529258380127453619532938056340741179726166696787453529990570074533683352979355613457319219872810842854236615472933696540617782537771197947854843718070221296358404494948522701622628288232628085777883117170055961014775814176667880803042648106139106458642302081782224716523273803792227807793303133203344757914357585103903802635007541572027563913369273516354941098562120679013924524135091730404380077045893872738071177511788756755791088889419727784791435963744405024191609306024065892207001155614657976710548219978839155773425963023024541395346838755400454599405563349005071357434862304362412280946584401974308615770295654744142348848244599154547057930277746820103769689480503931327808014877104096423385913296018008942210226509194679438108835200071991571159260036313945622133286875920332103107963515333134008444751088426919583130417053264151803130576760872597341584746609300034408984307085290875172482087092241710833686729621232018961116777621473516219678085798130974900995174836665686289490048797770890348339306415156516352281132959049272583129804147222157965763767494963959128523323655880378750806389270297260283253742511423048291970542088972510918778524608200737928509756523386867174779191011416248198840375546098458367804529651274858264365509139928911219567244993515763469912814182026782744785490246381316577357891144939296379443111319779884549763817782713688826288424218104799471362710873004103258720371441407370064273273157174475103063337880788697598363197272682037972196107342966318990634270211835093226509287070011252979967381904912391043306862228830042610220177973686622373419606351334284122148044412487123806784094165178997033756388172485362145632198174262573284963346035234342410593000435309292441169026165039632375275659048521871716715976545416565031882644227788132220587333581531716955895670511542694582457240117485361543734336300926328138359490671739126290374750465699040909011952244739021472687388383208991998919598357754751750584789457331666120020782048255841562846119202720908545575574962645094906953367753995808459651107735861744293530294397964944562884492493136414131720841516032386372769485300541406704669536355254739098487449169914666129177419835224687011846953946920700805993878081735774709628651853062977239386078877601856340423047165311021875771269237682761205708336295013246325620297087022267321060379437344464657526113843838020044217418360117161395379317463769755919768904392565326258103500593423654535988074710597023712932408361372504370506488330034552651245830594710571399570618009035746226412712748528764027260330107942215826846836177384139215019558637452400550150331484704835325294627746775045980472381777478011479423453160055644586757413364941600232354644575860153121740615486627550814451585829428158584402677571105868829123220810079835909172765840776669010581513452164542747600817779382411651768827844367868390228387338601083091104543466744722619509369332261416489112002826867712549595579038710877305965485567214639255162070017391989398579182033269629817504853610622959416340714605083648447966949330966455950332399006184865447049016322932287326707717630890754194586718313647286293754393857383812715631764826116902542053751732545267899014931031314787615995727836844819116004841357984761007293942646548685304215866605756311336750014049082483784256775674839053512894299500763755502231218286623383105194407889182870615830505678674545814470966759153726328617172800582614278699634367759459002505341364779461717003696831154010170777768496796080417962071122174685028852545635356995425338215465515213992517839997075221684748748631424711537351591705367400861407462078982630202626950435041388819015986143301258304766113872994419337859420763655090134385409401141028406967805449922603148993443682878642738606416176127435595542281795338638279311681264430165167632510141079229761786348156248468318142202014279810423253022246351545575479131940534816133075893532754568968440661088943587403137246852086456613070979975200392493573902325675795241396589444400391757560533219045649736641399498632418004958593491827812169057519247634153997237315738054798018415332144532067714222059378447434160972198606521694333040299346522293326318401098005414211284131393029023377589525856872259777656664251702786528416120573633362084278966193826193144941570076006026456709339515789026781638034247218072354332042032800457017023967884703781312043325553320294279168798090076427611790971911387468929258240425669012389912101454800755068568482003494269329018702483608718203599791062402563745754005319368386095164844706749074224339977295348583288625028784945012760895024238753844296554044096118057313463432378341774217037197109314583493396191527709191810087498896844932632737128119138653575712674443469229787972372467340359635013139234163669881935513769973981088256921644777100391715504580199705230917032028705817938283731173556312695783095373704276803790036568560997329792713677769405010669633441495521950612555078343966361144629791712183066629640761876195733233764774963953160254756395045902834551070492934862620268891887951079217202618966846899151169851903403215984974271516563711533579786582321115042305607190076133305221149219882839814494717937862884859575029112141244000731915074792842822904749831645436848262349087002167711460242977663854194354211372700180251922104562028583802748195589389324403321207793510133283832189360114905047106448073632424157660945744113713107992959124556651172378060002161212400285019968685369096254175482929835288607793029968880008258527323876494263173018600543075387268834988058582376757902862599979683554557977719169447941144975593427887297171154103188956992205058333856384666767211878502279859654306059187285414535533496235090253841226109541483589949316252149019448516101878461862958688834943459602821671917721076300858553711080880409564804870198720646132279120854780444768701365172167007931866621929553286077749957320452390899104641051894520783513628964734097285379594722327301502784198346662029579967783590236971932019355559226291437767344428894262406688363086875783974423796178102969319592354645095468497174186251314000830284082794109473195261759931614915270550287158057943427656170218804855475866942933902887014067389403867121629554649521990755504440733615375956111823212492663376700655860157617165061088749149395098258815344774683213762123164777702150038445396780848036931635555606719725708762732450213887513957753211884136505363901439708037914342807125303546138911586028381606399437194299170566147593835566521442537259377439678874996377859082822088089451971558901403771211494890914999909431986430920236086575275855023763251372937201544500855895378093741203186553664373701022864930118886535464491467298019264485714534503614953575639128350036908530930317593907039907803410225784907022996063822502708745324141216412344860173541177403611348655395270886985373292053579885474292824526706951575534801514697971066574073974935747189433307285682737796782745124380421618150717191959453686675511565326875580082215576222082696487424146493845158308292044155875454061122414186693235816352161740715596743001486412634453448061920537539914419827683590628752133022377900805017894962648975856988720865077900407124374720247058197781216423368301467255232340272008774954318905634432383803050825224486553441986425209643214545209074662859010822141806161609192939581928069368162243490542789339566411841598655335506766861763551539606264838052894655425330208899602826638879073022813345218791363812942256087255389423367697539555618166030282336239105221465902155073361109752504092889630618877150742265744068554606283382472111251584633326996645673833392632022049637958100384188263164874878005836904903202689968878823476277912468856669156690103107387447325703050535257520373480700630319978623663585119519565028774527575943976401659946914132165301506854050872831580995719562965114502982313776648795501085643773960305821841901399606161467936421827140698034247653035728386137802794834538876188170807606597405354990697634705274552573917003088913580341837931902997344746045978999976653803322125680985678109409511106062644920522590663129617762769311244846251547276930999830153165483699505095811931194449911159481306476633121355905810250655873810615773947887591644741451775556111830361490229550963215190887646628707847472816099377144862454012411537908740246810646548839642926907432250771967604626892156092916429267394258074569524442781956406162588759398600185098444624823293315966637258948197297472987883978888525706957877913694617123759419288679183024285206003104856062341485464139829777385973838567877479560341592107370819775819350646025955956020130891671795677311162622676809948332639798656442243237368835780996218880535823665061837147834076143907949881728609030890719878685587612438043681389999933058691317058742781175832486047321096450658633398775577289348661957037547236422723157582867193986344174361328290457457662971952922927616158816499122601116825932579064207127618167837663403800069085616345212893524490964292938930500917962069692964851982435762946597852052766682849840367382128170446297871046268722720156869931155244922890582159993483792153053342371866963175416697384628286388154889040705504181038361992374190562868118537742218568553535528485899515578328342230244933189339124530057032101120048878577983728473261559753290520727872322758048752618718951151493738979571823576232102287904598290307577701472990091227883492933979035252175501693134905039672824483845600466595973760941955335428678220693725512380897331349745830716216368282944567373198480528467767348212674265047070466399091483995289203662629436402572843937270307718651611687681596735531861381620457225663098553206530998474092495002885226366297808707508988870441754812048257340135359887151059525114524796538429422425798075361103653593378928309899288531123856311150104854384865308271607025565713718603024587894941517881439673607645887097486403950347578241309865991925689062119648773005206252430631573436860873898117739034106038436185339409779855475243440723500615599382586214739581229493724616435836226008833145643178843508134334939489588709474204391482301437062577117068468238733981886380319954857594360204472131877224062279613785623913247704241146655640102261525310092895878909059320180939103235029629359790597626229625569510030852850830501387514340021946692503206048056259802438026253143162410215542188355880317525571367865525848065869397447963799610420628789791024320990400423598975036724968773964131153153791023939095773319604153427869672366104580398604657899674984066290044631092036582632591438164896537939539589798899006489227291930697380459082717920889580754303148113109300296915753236975766422172434113040246044537697106767972800191856120235458895004985109409987741769401075010055592225844510613411821466089281310390188240051489733933799163845731068044914226898696537198320106916279493453980953049028210830544593563029751732118814702270192937574924916995974179113089273443096056426700802062271632451971559894346164290650680468237806762288632867143022206269124925744687586118308645859825870195502904741465988924695056677307150782627109929203401170419134046666666529300556395861197723121670896829341905430337652136229222807928643933727224006840176302051853104281942472903801964212828411986075747779402280960380336336191133014188555055553512521075968069284630464133560797327632088022425757537440632355845402377048617180281454755576898016106922972055060601921352030431492342256426255192709675647572099588661278631991880996733547954450098711663672211369498827609602931343708079288984975265724151339025200299146065026773004854738724586736353581053851442748687310847405057714189340349598795133477771244089274229821567760358614027864731223946949369040512769409089596854827611919619493406553632589460969148615213759287233816884869730917302316843194680374593049622235357784918245735709375904631904405671375252731206129574001534924010501934046243977334263711819892862922184513878787294002583848574907363277156105033978181361151558244941921888318372634300716184904557760546982581089909244817840814817722788767978204725239224717827084668470069114383407912785876271621230187820851975307424834615578857176766222014395353022428873871209910297755105813292237653357668836994356143710343556882589898733272018112135667981015353147904743043214996522309808574720771348630429678373895059430117060386334841010517867298357637388221523883979300104976259600644442394463462849359559316933334642864237573132580170690393891100789258562059475008085716629577614461333451111155754997627453092039411904134256735750492709526870175653729534343901090968702956004474449565753036081197954645668639306669118472326693479216452983062657026245789401263282437200010693402901475721027197400491705866216391379359511522312686878924739096193897308043324530035446104635594059457184711735442088049372721200493680470194843525010068837457084717573731396989385440522810619298203736325917407051841989806989125591221228740081375473747590734590235069793641903624231311128178636034762838366913271078054596948030963992403509740383432250358977132114112597770174771450895263990044116524978414131666258451724381621873591134061651140821348517862599152524473454286562680615246128972313379928926786567009610319765741576523959082071366169835111058995965715867513860173587212160653521722501657650941192478890344967091123364969642605309416378700894660139651553867026043582661363522410735879068577721421797464324225947862556625985217597902106177466225329250654036947299372318985017865468614403542353965258440240770754189629507739617476545555807195937468014392529627454686487464519605652282741343517272720760724726764851132265740987676640546809349896722092731951561972761185484499889272940043419013864419532847329482521784185867536193899131157771351632105845699671158187361693255354309294192333083201584886917327173068510257691139697370525778202084114231475633011954113087440408194375986916733302018404865960577712673254701287370255778473008779551619634510634165493661938171916958286509896257398097482177465262974622179668023889992674812401662563196512330686608736292263335366857157099399999733948480484346565599419530446901016807163216824075904588039565645435082689156751459004430899925066804216811514923577919788410850070711041638246212734286482369286179205203295321287551901205468814346474014754071108825854639055339970440361657790536825729506975169566125077056810493976781894414153283664569052440728731060971635939764898305871235843820038454740520889297768870350616165157095957808041976646873083697112154593463735157801117476851951802622508581364167991144495602437301156030083030206123685006887174472951344888816005227277496994608610417006741519853658978142038835516619740334941918473357924819859518372842979643565502203928932605671212119107099229779453097119813775290078822773434588635764401366845181118984822155246597480791005178293121737850461542782242928885038367450832855981767460918488201435888746129374734864321385643683813574092296710691690458425049802759413569283172171461222936393727992935307268768922076086036123737905914271003501684512523902344987756119908698234864928893664375427131042521531954201341799493582680111259715204946641980045087312576151681170512519281355366950119870365932543244814996966703447811302367393492909983116612113745557856610239418625900405761529048884886097936516467188907013660134842430008188672897303924450606267829972056969620077651733462852687354345911883531289020059915691572949380778551199539406531642152027080972949640416856887999474007647549302799219572037446170512309941390802885862316992027359377039691524460695468569030379840829170675241654812298749770002962244647095221661541777050252417127581428341361635510172354706023670969885208548234184412643972069924861353032893813938164232589924734336080815673229930292415163736191008166792105514385575642887059307950508769046018761089959601841801214409280511486234972731697377434602014455113332787090049340514620803062400755661870243513088210301959192105122053999513027785089838801927973525999405013130844067506267168606445799196611484521971318590623857801259039501433223390833878752900339924917513131409070118808356634744455024085487694956954524691717550679619885483904827674777978809075017592470408599775738017077675765798683454969325935031194981270739355520885176962179218460455462475711218562043964828953289426511207960472553676881891890821277254418585503336749390488590705322183781208025303758555222981602898213107686581449511638414427777553328278180525049098963654247437037619530665329907057632424147479488413826021922375081808123090146406812336667907323181837486326663649549256062430240025841400519261124855028598846356074926950768312393687366274149777675175357386458674004047082200998680504368246478758920193595665490050361610795194895462399847364168301885415625386271889679639724683373677216207256496321343860144793344169533660866520117838714404900225854133843216611913856981250625761090601430985217605885664187317798135520744879624255318731758731481529965971274941936444151417235192716271084107842914082772161417573892681692575144273223996531235320015041224109021493103031770405607232868462384881410171911869778831270550893736436000838198092868716146627709855656890827822843566798626663604248448980287136321955912250825075829988758179267447647948942897740750488462115145523249292817434798069473705884662464563406722687619571623321049933106095597751336944544713438696196382227831245259616081218323582898790725224444326951550541165380433264333826635614246821843294271350953800212536650776677140159337467657112513182224905868595685112954641541831400176305689493563871362463474217128610600276802614462799912114202699429789487605491287234659399230886710799952897620952539708127192249120959815665614986184706735777546962353317882009788092011162557652223069393393179835891458989321239965072523627349432307197372276334563791425251317264329533954883857467167618859943279377649145632191835611011086781948428400763740833734651853650088731543477899055637209941933121183600321878994657190439819832716649243780027810258592779304853474832274661592064669909159661554258777941697147305722433866405891656276630582260301529962444505640040379005260306373309385606608497624527246024821066730052081317696470745117070426795032833440178944322162063830233949700650803136481081685639496201457184432283518202250616203307452948914111243501401665697906874292627687015792745911642026253911922356774985410700082551631708845480952535012360010160006640408030089970874601283027849256152671520650927150813962274254634768053941382591160251261853252289619190884892881327960499503632081327999812833079867564722785404225294801865880063851764858413639093641821108700948559025471372467600978852965593656466990357312246980548920497504028265993021745981528087578319214837474865189013970383029375078134009301041742378972006889751586563313763247291485855637025605546323595979717259953033247571243208492258321795960655781989866172586292434691932381732852305506478101966548708561943396938107057966752124270531174637333353427780903520212933511374291737130714851631993864340708798383464847191488707189850926226429234470799594292088659270875119652485983179172316399011557795876600701331280114240727824175764925457856187589420516481027230363333206427580132515209590068927904412428381802542854152842187753560241620954946660015824358584288222365671385073627905446918705054329886614353632594477036368027707518333409336545820178530865934898293117356299548585719856427501986000552330720527374893411994526931188232308896663315097125251007883197968163654012538026941482231725266149243749464532370039056772833935152678545924373830711989453393692382700846791892378713480314385646821501511082522983608741305901773487910158343829818625965735382226514428168952160740816900308050233397131263091814368509265433397378742817699067348965779781323198231270079866721562830888323264608796831147077005469277046615678924784109119393971175551509514579289465962961893261868748214606164507884316707188336175022342060669825292288351192138985848769780135921616697621343685229250028419775509471010216170606840569318480177794164278492170237305012188554667491446118259508839732092983214856801857228943714145433474369726430988467181289982635465240720172178622025889452335629820669021237986256464621699928502233786283832367982379538149313470404947811640908097260050418166963639524312271115911404731628150919448538310605413441232846953479860582471320021444410761037642531348830972557074332132232583182851213116584954918789580969538203806170008799985500319839529450835103582560098735085639397570997197064059243162964134927452364133552584104300580876012921096595046122271850162126238428525642669452250898830886430633511633180519893564700440614742899283463639228087265300354363286572708343537424972652718343042395660638352026559431713395952946128652729733859115436410798934362676772648746774707099084952892276673693007790460605651690190588275224686655878753214002575420177051944940309214377862782989642138518758790611500953258392472018675357571782090820915508981262159988148545538522889934589618279628074565084562595258534584452773293239719637356956652504219469585117779068546116751733748147205768325427332017028551975843360242107246041265289310791197882628906334054284219703037987061628266553728809179627007705448671137612250218552962638354182616376153480250810288133269766167094989092216737041200683156219581330776712809829726670056634437176204815276470958322480429607046674673419530404049288586681203192986568581347632075657129148404447597701526888191572691326530576361510707300990861819076913679048525612798689234934027248231753170590708445833350678065197087201946488584224407368630224076114459231295182056344674492909311150907207042068471046878815618358929246770825140779940966296118940796432567844232533226243187961389501016618034224794182338124440923395711708436192960327429767674970013056717417986205416344057240151231860161244925533492462883817314503732705743914001667919778741988752536366827885331050411810969658091776489895778166910611145531826157742060384863571922193301305189896906414993608176133547392752877390996071579469905946724710791268172117556227164375438983028806713233686013178121081617915877361212986136004652390012448800092915130626946095441371872544672191349811057032896738405182849284894691002959668740261247382285711358501145511444842995794953077113849119667737531944602797546452491729269813870546607207124147691989051946094501611668213568288538357861540641102481687905079675061508017149556277905045025652189777134829177071306980538146306491126779259439104668824789353049221803369401793373021966070643623010297702417709907368365517285411357251388545310149618061219686596311364120920362804606781270742011385148668761062303352823821153463504481506023021452074638591825175211858130432369542965259882969703711846943621772596531759990867360411633429338581289756822362319760903435046521116298223890069460540879982862429878132318127819824150387773785303382205182662859399247293137586717228975898369804385535745017042461919401435755069001060939620588136921579518773624964613285840975556025844793556282394223087253736187546329132217696717960669399818690443624691293353633451749727098927394672768454794405347597031422702265389076329868090227382915181595861604535831498004494460148662299394107118391817945883841215785208678232372470838903167089530403006881921521963713323620667981466358535859198266273881597365871816639873120211363928384977854582791500106776836724998902338971910872982173535676280028472292931497560455611559427945702399187180360580261791564042614250011051605487303384948558444357209483156211354263832174872295359857878103538554950068916884117977716313235733514193203151722287214958703755142888954964073615771661448759486251480559113721728425704700000693012142720117069226886753558245414944776554603695096390423475008167200531530407314895229401117891353517371432234341916301335319161203420300379750106524436912588107313728488764853145751838959473481340311072445736426044140443926782058546862566881756827712376461044921804282724412489819163103862727082175302114207184315323137996331584370773295348524006164612677871588519267678209664740719716161481851342929165190019261541631752702341849659247450612512404795361460244601119347818963383226229548101212244775864655822165328199998572972975214001469931288106912041308594824444221762477655115710366275415237895515632594627814767657987954483431198846098438468150169379884890356828509087009337960701809414948939048081825975110598178544559557266965087740362681344612424683366801282052019303301365839979955744980235388167559330326635700276196879885140535920340757147645333057215793159091048516405619004853095457436092259831342968533213755672368518123728021242520129171966665432284022738595028839272683200066399855975377849575121832176520012600879557350116862692551621234900977695406748050699165763761790700701184611449050466070134114892625189669383770553519471895588307328491940016594376297929726551946554844399615066751462284535117616037110112761841286774880157120456259174000800711756152514562610668054810670095831609353653272468609608238565095613940549829430300331905459888631482579032177172510733712117024502072588641929811591799158185614003695661646276085326985391056403714965051105811691073109513673424146578191152964319157362412095833518560086697938348076497536455838135598953273961975772297882111774750260028552101941167700669366011059067988903410819267534362339832761169276835781767239628726981508084793752532589948408594863256962046942455486140579239736529220545220181632850112883675051861467854597387573447429993965755600478299217875584225627146800706594676730759785760526047241843923947333003386459828581243368466489530950237636116793216515161651934610791716343491470679996386222255035109716970734569887222931950470938197755023235387565351725305146288771737707541182199021430764852138467107356344583779807192294403148295962358809365581416295812584916611287636080847461856670686789071822144132657878281299258312555607765509275828325333067090969353171540748950435205238668552445390308162207397388029324507362550746697194052240625495827410972778688065884821022882355003786570879042481650880305744807993457780285447119031992162126499141493200389135898990805920161181473273448840715147819928893888611346016171541153995857994800382368513404008911791110853380705226594630847034485240422377112095196885777610191551066281229861674985212987495272881027344404197688812231136629289397287539499758369981387159589571463497923261799715848973442419847473938618339083402682791888783537969260538264063407912234137093381370099400957355144247855985912056850133394820377437974721375330599188758138933144612418085997745087024303413428794293888654349708241420869713703875209570855116268507125357053821484105617277573194384496846772122102889628190006941583224512814674814243747410729619558290088311816533127776354656008648217045565498208184617441074163821568069672738206585539640395892993766944521006386411935987870118749533522428931378289712060847844884829963473404423182590393194122401605799791643067612289421288405662879556857325280715778814485933171144075785984121415404094707353525570941907990563421009113174991399284313159600646723949862075336385874535568992860550858420268913484369502668006820994128605783209540476438879890606090980643016188180218152475842089610007330208334999717742822515095182698122406040545628719462120023768984178118817129024594515037875054211493019497258727874461250867960442008104544471066028092410142473472106946459682346015397349102797664157665610429669494844056342079639550874482416960883040856826410037031677940247903633318421858136959958891314016425399915104990914997456791837028981121867408013042905208126462969164344360104837237772179786451171460789396820982052698764310577914120839944969059040240941047519832171169528329151478233974651992063367701315964184931559382903037042937783635420883347359441384650491041184325892211444044827318811478168647245364005693912167921817324815646663793554636025314494477213611097950925655530426179216507217379188754892861412400692054007770545376499515921318034986109656864074318072447679545853875587316874232575391799330955644769918064988470881335131260374368339278739581629570514352057381992749034072861546507073111340188543187395328144917643526903982534762530296711025850235649793521189999835758054695288916858663173243775521493808992560737342791178832816562342769651130422692563815516442641466746737912579707854629614938835253624223663360277933634924757809117673274403869986162440532927207346909999959354283450325807339782937977488457094049648332466185218943771348126695986201309912395469293707158495517216568703547779309966595330186269799444384780339964765702586483570117757547269115819652645362142841745540445445415300235970102153679402433183761790241321878201826689585565889735843270130358745855886818272855352430011751979556926831931778121419782224031180392433690808121337676848523852759142160791946439554891362872497249803026574383970959126224390513579573476775676386319776864482307109857648470409039034148240889269971421578181282513480304402074000117042134680806168637538154759388344660946448866256224278065611847476506813334827814464451777378290433014845424590493554839417936307492746294019102123105331435700507302343757273466577472391667641731314480716429849109206393403552298035104385434840699655851346148910027919643348067187281771426871396335280130506452878211994640667675442950379667867262784689829828161075208646535676362921900112019972162658230010397229505961068094544953508175482463411257245517415253265745305621738260821350135448512362865404816526180198444760679631319746068817406858725733180143590138672225000924901850033197481418355623510956839356497429397818811145902474996765450987584736629581833752949880333678874355002656927369942551610316178895422607794095785466445776609511926288587189514367051700058490733013762338155101554977325149548032295816487742634572659004213395713697055682275783891248642626282661199443122277522984611496896356737987771550904769106687288611651856201838018144151114664160147535061162920821690442114451584634776696388606508187677187235600323909597037520731758727317156308598242411119451618779212498235598050906495759729757145494671597825509534344577755813109670016406518308746576862842842710871999479529241170419276662443308506997054756425339172661269026449333074174514012150519961580527548011818580210319657604420745596076615378870905393421694208616687975405653156371305525190930733195596207073748523183340361366768764234044955663311407480921896924059908885956728185776386119106711605852221048888000763102485588457376475774020972771596371465451249423148209249793377455958435245202494776729156970286124537933505563993083145591370203497943251289515888956634176263604082530103311864488999739363179140031673989761942000329838930098397808702455323303897805838675066097348877941544052376281837596899494482756321975519344178375821702209057606802687222942201890329543930978200472896393994313643138417400822594945820396076570976059739762581366663256836389374173825021719650368296745625061941054500688837075875146994062964732874329218496885444193429488513751085943822474404938652418332240439998127421188724472322534086528939350027352156580006124134101598729741271813998911434770787978644092040281228452797713676326645412048402936914682181266352073215953842520228951439164501146959718313948274570053423877189012066289689750759596980611638547664137854126502668702150036608495631926365340940664662918146352445912981272155886628410142520214088779413912050143270876523328881088378944925808506681522411665771370101411463479741800242803336663324031065119299207161958908326799457890530844161267047670670027815340470493797549484250247149216250016089764848757713902809344913895890528225950838385257371429082951389745521028242355205489812084721496908649688305755404859021973971857767970866832034976617801336832837893880863848850686945415837218672163659512600764602693208337423335293949942860923052999944250325257576868262837503499988360930339223741505222431632929018435356250039339854534983747180454523460986913485887301772824469822919733072212488818458814376699431706439698595729256760315636857066742884138481993411767710107228339626806144661283922437850787076749355536859737811686631822188007039757577459230478060920990390833216426840874837036311425947340877453290549116140614448790603660533425182691155066995101126068847950271942657719922318303094687522796497658110022450922599988666407338300514842266566930514724010648111956578527821071240941518259195598386491290691300334245289773848460105706891526796823424694151988933538495124591495790647860698660646534906538380055832850208965709978715483022871335477158806758221707006003783981546669924236159919012810132576385245772577033225959065378397209004672035450849622203409222824878157488384769095088942075470472321137891194204728674562325928209486848223789356909364802504808909001387585127758848717948526321019136620426282531552809904266001449860321067603315448335913538160564913146958125094209221474975214011106888395537999995949908538706879082030241240736183706150230894457226086877090034034899881077465980387143778419259421510436734082086032067226033511285889998116780501107438883936386094473532249837970414170462126779871705453368159435677621485428056273367383660825018692630424201220324417727468578711869312043134887107183128499610936037186640375185246851234717298960643126968722364099099572755900259126288984155208405646698882730187413817661266104926314601704714941707036151057812462806510376070159946270147660456919495365363716053707053118235495287273930966554448455261932584304431361390826773860846337631124464868518938283953069307076251462740678675082706035172211828690047172477092756883327526666007325465708214098978786061402015215462362946343965031195536876200352738829767249599650614856350950197094302731700579335551778401046079570540286802991126677672574424978674138550888792619986820233729087366136327167176385151704231034523916129183534784987426426217944305563802378542504392841751101456355318129487453833983747345498932049855428676915373147005104478953277501997447698401325038869470075072001105970573288496225235684337712163345537502032005408323297007706144649928583189720340700478753731089531767711265136209926473079586137624435343451677048629089006259459593391630294562355623787886257289486871665677356479862190316323683142823102814101669871371274247031263994433645543325508204552446471489124240002854363388295065183475061714714392809252606726202566649275412094053905228848026788725537580726158721545972911717829281374831368711769856535154178594831382815889527403680197565769557188656658308171448463734709980566351085955204673074762838319136200292905505824535008722452345198429347417881593767267925307637112760432928469439026046319820692763516812503605256251783067207965737203148112079705613658289440167377776722140991983565877363070168269278204571064839034219516818923014255815550248756952599938321858033214197081139669579367801383524513804931287027020483414518815506665559162317147974656786718579442206168421149610975730308486011321628207046158869315726705296669385721402488949864053030043400189009047377793215220754025098445716726063935181063627756083573710162469961656305797770083843074293653264798130574590726916915625038457078894156975388066309721203125068845904775512443455477826588811435214098966569973541516551650934344226532597695023890047192486869845882798998669492196898701079551690736352048378617890018768959091796952363195223170600505166718158648350184618606460188799607845558597810465956932946631502987636154098408845013829753217228611465327851734064903703368552278406129374317244835740829800109259002033234515105871526446484672807847450158408463763820345402735928655395400352403128187321022897839712273604058846162107564406215694046481599693311684134739021066468273855067303580382641301312391761764220014270400361220016859152366677798403829379580945943693704768428050286723355588199056805517995448913277614755160145769885361397369231167022322565635414109032223519972017720435735913860568724236234111078961069190553734820008874425276288181382708366285026549094229354006287268950520862683511951731516016207302380015042754785859823772864569786441426945046435683200110102414310167707568747457795975974522601037556582720916346906059401592969553396511194250006619914897674758912299945161419864193688075141802527668908623141370410305051247039206363385466956315564527145015772818290956087727432418144147633208810943437101653950696166281257188936940102079710362175293979869184673123463672171560145672567758440509883991659381501863886094966866293523280547250128410465419600072706803993689023849766805824911640768845156665838072145892504107371680413019025122141203702853193991615881438197353988392486707223416374827241978087693037052336933882036058916114267221441314732182075447983679386634419474753929950937041206286451428633317521163952073916142619060156059841511450334499172249599733472048422348183193713676333495359012554444157142183753917232281828226684244742801697930679776327560852468843291859582112880448162886827855589747671796717683250514858684403479327009292298558702939448107515111079987984486303361476864924410176164362598626626355783709252026931828384893531913934727588943606109145838915753093554267598828538732801293448647079904281891414130812631669895625578682644593228848476973462901010304249967743297921211463205436315359083904102405016329155192305361335640851860985153626174883556553601565919212229799544829681781064322952593845551511357739287054848629988815351019215078123889060065922178031211395931925993622343134110959604589224831466811953174115669047170773762619267985608174770514079896935299661924567863103867730286009964109455270815041245752976137843901356241756664446443743758223672920300177644400655620143362316102483166901694614228707913436651389670622055263433025507135293004801903460896635520197008612310596013879439213238479080208583241581602113935462015091881817339972479994897980509728020911883010563147206734826482838956781449146989725181333336976271626221856148307897812050154603754570543889003862443211680999236505510264099725775890992883964909286598963776750689089628236772750750068401176574764870754128937915295224169959745375350359418921201400073525141681547684521988780177860190779423292022917563649444414015386650256279443151723043018595362474206818393164174902140526426530693557708832765873117047769819614799936345835200210304942577880625617232138303214493441582797499838159453577485333332597205887834277772899211683753629348137106397732513262078861144448261131139583426237291964163982503732575222237713868356099850707475811243921539375063977719315628843135451442221945835455706862493027815376799375149388939122294357079256433777541162344418605563546035450523764897306655742670203629577339207719977117389934267426436901614027477029981666916979122932462495272280408107062026421991543938396989214971087399010875565451627630486893850615139787568352424628358692819921104129336204468645592557869572992366621729153529876546146076121738743184224863512920096101604321435225808468330746298165422144765514838338457549796768219642170067430733703687011725671743846076881252036982786910622820329342654904227169219528392403518165605286878721709846378795010594088507581658929510889339719227101829465252477541758724026448779460366220226242001572201774590899610370504928928891486249660086713581473758325106494828946170825839858696033932423615292821908905483861259276566229782216175953911624562870455037834954072002501298604246505384805371892678355947731453164512989591188952404893255402606644700171145681874331548805892619920167965359706510143675577283795686415766461131087808806193155253493961707843765360782072223458201255056094134844039422734568335061423563206216256125848432838227235944791891372527937877483029331513827512336391491984823785108687809017998407649238274987884524399214708259232131353940481019265798180393068866835104998090119201771584784206192778025563517438514534777297782634026011001368305065377742595522365925911097696085212646654100444407892749532063343291532526794380062439139175479694320406333809676653332717889615567288780651786302237020297945066095315647248489475199422915861310214389393752338062412062003632793952621514520309609884716153152885421067914718795249735377073946887720407439882186935991272066151231451597920834447621677266984431261955638502910020679931019132663561037790440617495812768924353029908794678576065754976165819753063876951221805926845215051838681341569163629271361561577256448610124556062505585059543010642646618979036440455251758206143383323310904565297202240035968334807281327724000994536761531954420584621680737033065444066206398458341585221547179203526110915467773436421838080461201213794407469298292592283746511438045621164983519722573590761464056595560295413736051359113407856690003601536936841120653027310481997630417407410818605928067902770850358499476132878569002859762817384463191387337980887315323676917544707414227152675885199519329919949319792469011262702390826916975458623466371313027587911656962350123325324487186308431046830658416913486222409958925533097172952232750450859316494597479232104391545816150141800106760345765962792309448372167778190429862546517287631083329948657143270818707986262363254378550145318555734872207919924863365059730666888123457035298454915475775062096757962325789553066487270331993621081499872871818483906115970701172767098139138530336046244662460841944846484567429727968780580288119412135403185703313534091089190509461365936955970015467819753853852401540279290780939439965166961133509973696885105934902399876570077100757528471099027445540742954870928277571427037479186624385223819128767527050441052899619706703075847947736584866704117653968661385944817712674168463580819100085677114260412380649833040085422536065083513903427549865628351340980739294017646254087699818787380698396638923581241217213822474988589467516827460091460378365417843168243097029500585507684194489053037835983152193047979935483170604679921606651292714828978813503926418710566501689543940106653851473681426001930187991998640579227344301939310691159072224828068959380978657746436357296134083175507533371967964465537278978172234199221146091103743479464864504613641184456142315818020834348816518416151420163120214890883350450784873909653869298042993660485042637374497698472425204916337560180076414025261887825689727955328676279404820617678941877841233956456982590364531072368676815457275668281183913313443780374387265499244904145127292683371626425614497334527346724509635219538313284106679101029216418985030491803391559820215869438969452463231561941545893123994930502271315863341228916287984043574721731774127911523264196498315128050364793059413598121413053621083140495801893895141457783270738667590602261694176786005268935866353675633449616650346259900507585841907792671435265945202177005171097537021436129785706055527864782328321053944470415356494773258205311335153784712965924482902846268620722243853046914914927448845935559500775570029117764548954504534426956945040026172774435995212442457410631417207312972141986241936419891553779589288767709129704835092387634278146926553802643258627813322557764273336468476446182746018029588805941921452885307230064121945943918531386259771335217904875662585987918275905212873843970422411595985482335048259399964612142800799887106892514599186769131827643092088943748090522556756426764603981299960097315177053498572260716964149402064726171598198486391775938592491576558565717298108822136595558842988901443202545559156511356033802845447219293026896525153527772006821591138858061595597252879493177439856440339393436530140077403765238524557793784614048333188402460789425764457089957385017090883402317764345687381794472978835522570233751508114373823756677744655935623521567616135497474022939957786418996384009063877339165683393200577445158443455375691627733457556881050738055195074714790479512689525660821569680578667855302498866673304246118338612591117945616939726055599957530010818172313411748973201604547733935328987138588656168428719246959698228412674323150810145177664066705744217055778497588102695124845722741636286600994484523887312838953974267200694847551034185378912238741005179932186349321598863809917281800547655277596680290927625012895840338999832879338000759718782759845505607176286250908527909391587624377590948727272693002041253732618014639356869817839087989306583797473982265986459307220691668675630753360907352566436534322775265665397232038235129455583830728650972658509702595822032895656762124762558294289244704691047460482645988500201351729819917439484679038074791159101981064760147927205226363958098753941670465096765180153970198251648095413396511893302422627324788843961299753623650312857552336000818409771790244732249118439141607250285471263147129526130406685811791469441192381933514238392457229344265226034596610827710617477752850846836733105107687881821781718459937173932108924873706999160628643891471954914649912432271421915215619957204700648929598068141236972170457992011776441193836853920124072568298227768888094791458052140660207885873691035952742178134254966711445745544725392239362077258478298889469654890074171392012837321693180755280385933835098916126213169673722166469829114954463184148425689619303608354207318301929041566903583292319504421440198405518554592143138623117556249083636191682107421641303549415615359211234340188121484328311844027036528131421995543916944576259473584889088241761074574105840699676837282995534763552971344351362488068649533240207014758083931766542939740711225324622781043188306085741624264783416405151983172759307813785191348182453780658407302872542575260154548826569440818743712209838291424170173160034108038588590249381100635396508667786468976055357819862309601558470538564671736369077002427899240818375243168378596888311734193230651266678293577714194313627035880683414551219782179822124345491884202000330560011633064472296506159417583776311924588328284652215834701008709386169112760366697575902469277142559833901351733206713857492702313594361969313396965960104363089348378353559927427215963176040673483248069887504669913578761337618538423242144354599794695029667450729657068680477877778719741347770112073269026092438173286708856232861569296044448437770466627553535950993977892277748596457203956394560506412376704242788635065325344674846227186596584777867999513018143548215350577204021775636031825465910609584244415762564437147513333404599030000597851556067521915459547108004635390366510172503622987995153994959352163676731999786235873371993752451364631757398832497403785392498246686905278052384958921085669159059927081694622240437375856056360776047921563369728741155942305617443606470328198936268418939513894084725432912208454393896338003692741463791301520236134902573012092809823282583877993716427440138581360409914669186315899909805603304962487255709997090779282006703050808297878700478503932800297111597068548834747670794710070462795838654597820036229254160492395917961367554102288760226374701017462250309548226789100480223205241463365110177147165153480908360410662738930941576684092479484112774555190609362901694233742329656614322872891251620476019757542239703655846398152921516565438332816600604737496210098202441077986089570971464251204245856159744099823900919726995226401732986875882418527778194799058968602628280823991538552540750539443881156607222722371488360459942997801069086609792453855462134930859335208834543425647119648312653682526587845567212022577983806705209088724360770816108807091793368901637290208858858620901847501142329384680027049398286249012339054420023452802684565942975822277756373952253709944620659979923754117296367054918363049391074615283436689144283544831485204918420584990685569208496212461601698249423954350003043363130484561890582108810154992336673066233148331734427000123952482508371526613806284223654843222060097058532085458752762004049678882172562075532161236969481688296768875097948954670841902863992606779054380345059145017323721257515975764833876522116508868465668376008515159069941540342116392374234959477332693437756204643796494417349594338219415745340424592293543286863353400151389065407858875114012353573617123952350294831806977919968684388831765741501975959160215442900773877305343167375767545886019111341343667167336161913976564553386074683067228753657350327100835128559836531123785536930479578657621032647593268507478046100587322796927192024114317546002885413077584434037507219909201552719562984906870326142137612809317149746231655739837358587318374181661193191224621513103892050075962214994505851501722897743850642088931292152842006456118704567010690812221291842632750059148730561768929602915630013004619494224803986368913628144130980674174774540621549335996798863617796381444949427142986243814536125311920087581682065475656113662705422974427857409821600081440943001181977185438386648284154406733204472372662022628828753879965444401327909518972109621677525141436765901517930951617854862259746613006286213339247990393352702526858614368297366467746232590323614933516485495336155108318791425477925025837805953225682293579945419999685420990591216683157602836210837190498078264987343998057920158239048565601465469539284650457944433987481879947691114380624117185113619026243783345073301355319443406573879068694720583332383642696610489187075429396541569811116600735164351320646400112689705001523631780213064315261852938912433009928844396588327665409391544801838322684801985409451501147483032062620528194776060338246666142760645944857248203695710922116759656071409149504572698977959192210593915265469291292481769111500105733326963878248254472138631611983561930734594867226892683801463180495305624052169596278481032341151318446747747673720471081684548365367188782698397762758392028642281713196578107857369436673180850754157680032102134948641735003682016846144797038912189136119495232271589065046958103714845682064855079287728714069672267410914410313661011513144767432962463068427850160464618664302865829104900777611958617078939639874389689403194437034015441464764911233521570786787459225690751170958294441492759627056038570609396777440060131790461510644889583871262335678544573531069237799477817551270575968815457045913234331689951156939971464465887972237910288025676785938631370622128078626461639306455209973296129099072563585616970347583971591359112777484024723895145671752137789973874195554041702703937995258591669361419859224171376718317750719524317910726404488191493220723691496678227836062893880853536571226420077945566399886873568418735796890636312789563738844291182079587723457241635376268203645982116230767576367298615812331211348530809242491082381673478956282490741923543174330396700781069703004081481980910151031680936263954485401076049859775304665956586464042876567191064207468456768891050736890482173060063276912160179009908861834514356862471183814361523091312694531964280240201194467872983612027055456247865481601233577469826837967724542899363506942127384791699643001395192848241515954418179880980122507166816383030573226109848434525674865230561928949306519733360754453511821665155454812195652329281752949605489968429386306422085910493670844952355059914752057398310193330542761003681539844434147933255453362800370707650155946838274356781892070206875408094558773422647679280774331936450704688181031116474467112950176658742033918493601431635061876408604857986266425603843029880960326604235479057195478241630800197385999153110624182330761398346716370586538876476544079037850239264536780029383931129172636808441303962500503537404803581443925426782714005351047575026071477397364847716308667162622538988848448572460957010078293826803111956374266195592315189616009695381896417978950146475204673245489355344603768745519650672237129933791292735513725892676816554243977784693202158035975350178780480488567805819212555695697117696702382678089366271814051359606612948306497490355169091843021351240985073356339938188213319921697916373069937037616618079405339976545394385113428316337598604182034899772665265213740618467351404839765069364852495242149768908442464113536801495146291243546706970578587129423403437176965974253615626882730913801445804518626346382205009963569451791805854444016393636782598713094343305769754257155999779341048437572720748089976098939568599858102991142662247611699916376664767153813281774358524957046089437894985826916230715661535009076042145343532723770119294397330383715972487629497316558991463152021417439449209509947856301892701110090936623428088408112458336331405853945379488136111559573660254236829164672874027521669171325623584392563235521127863818198142419922565599637683741675560747360852292545584352515862482633507158750412695536801800306457246180265463322945176634222894448064617533329548704400468461294766498972977604200592659683254761785435312551283960784769525955266089571534336188171511088245689834777357548043558550086415738570847707784352552229942978692533429417952494322080930311074201420527367120442394438079466105083646990838919630467161816794470099268386089444392460621226496325753552348897177941872926974959499208075174863792642465139242338727673477986509479807780876977560381230036630529920102782148246259822603471571271515526842572560625312051369658354334454791230157712105686862514942771097064633424408642255532713703052769112668134780971381367904809294690129915141795276257021229799081437323320055208299295115553555111670788457095337754423524118082004265711055771036934760262721362131407645842009236867596138250566854066328406754778287745150266686831575357858846996171427274275973295775446028358035165947625571480664450855903000311827834988697045901406253470627658582671345232268389285166933722377298958244319120069776707591415282049338455127277055550723288185842140689952219976211564533293039360721583148338457857656600535074954885692391153415996720267734186234652206334546264071282690303901726375284495369507396576833331273506537801887454791037481110081550387559915425223191246826906747801301079334084647243890575595139753292771775003843614686217036411441806762080264035813353875977378587981214107277245261632577698771569747304431484332820394773296860150431499673972679984617468978050970544545969046544666629849062796931983308821385271565720168073090417709684047642653474338690978373309330783063658380455562681674479754552419267383427371508467199784809540012249035798769299018022010641437686325404475127968807273878062067465081456562678238524012829142344400819496493287426134778426019997801955705956495904698184308243489228654302031695512488070755764111384279057935919536663253910561462837061191804908175500541913822131985157044324197632695156475735552702769195735257252391229076794519517582005328154765628926928116469296826881742456965578273618142714744306696497467243848442294329003619915259463419868524635497818261775512646732263386745644168555508634146925144736099832784486459725349647305362425348354834487077622052749643474707761432958785908276251770741455929681440229560915071468101324273475040630189041098957416312355529538420603044079808428106420485848003068528068276976499293471529155807134932690874529365015355038789065356419028764469877930501266991875625156989209887856762414730109078779779985531057665836465951626950874428920650224288693672911121788983438185776309147639024661045526985934967060253972052673782001962799355537903403999421568085116462301553663321254539612539087060712662851037940467211011248876275585390811947494143730762401716929765883628553182574698990605809137503487386470455113561801551820456043462803650931314166728769658433997607504611705551714612621500975789324920967748645365915065385817582351148579647827781786971082704981074908248740841038761700712150563479207924149518454751328458739211374143051556161478917097482422755749015474818348731943758027905013394005739082072725959583873940742635394085306591736979927162726879003309862832847280630629765707299716973936375583251430880012181307369918377233864004075261687906043468712740313695349774453159649484832739037594998500667590009953121200533021780043429325037338846300948755840795870921044700846093076908978580415866146338596931538150098489378856065961620111085539186992636683223636373687704817630364425322121013067967738252607530887596614410712384948095297547487249705951030038466544783824428322089654257828928616920013060578009874922001979073664495574337689221724748388770274397076513471240790426080218863748107139802731123627933427921659103933006390024750217457367137084890728283996162790886499323167269970181341830845316688797030112360918845928029049224248761503095737204188911472565655270298164509319314019091586983872484626083800086124074438284445977205129289655030876177470050716849844513006333768896644785185755391534554633779187632697422036164082666453392195991220010823718318277799496657727098255663228201180950000987671813449926143225233882538873850785511775813273920667541943349399636422248127025579475354808843564215320765805711864895808137087315959777260968684478146850749208499366093466081894118876119843554710052007419826616978008289544397943914606287499325904034257506784450786440786121102722271328476776361089771532295046324613166928064079735540107997839853594320868639241463157523958977521265792801337246016875448143707208914290020651185624308560018841665736533852373903817644597399658584257557060290653109643005083416858728573046235055388154604998549786542294760386223283443357455778861617749708762113738352972824438955652338420063575729879984836250782088723851389941662302268968835109299821655530826329704748714713036699342969479970694551991163905574650341668677599316853870067751902634034103389089407239052154620795229157453998312597392455712844079569076969185675120866492990172794250785733318560998060997299060164417026462882288343921231766307633775530806200523742061675703498958164056566656407806306004233466397677591924154017027000490730749150513421054425507606104227950728096200761078426185766570214561469133903590899624652396649970896460528457442437455564171523961664119322956466397774605081307470343804981400377025142922420490540447232572088290283694978885734150614547432600452741971716570376393520892939685535172976187409641296836158203384878428011258876557165849523563157562401321731280702547927789882122936594067913162655524146416309154132189817607740485376477035433929235867700697314335612160179019488094596892417589380628978375838844229460487463759186694634653843241285159577676052379031418848247203608589243312814355123880796715773692887682432028169173666425790016166488936342209752986943855304706962901590074835114119776080047579341749779312347094520921968593905369307087547524731208641323985478346055736543568908461615645814542875690799819786501611388592007602988181937088880593645339619035113912527092510889837680263677286551541120767757631959509847395314022475894640377249041857001500450791621414294677883521977113935043817793902530722723852122830061534892648155444994597146015877901459320866612715725339002156573852446304884608365709428293516091377246328757918024826100608658932698796316270637026266981985025375237894261414769521943053821411943472079606286094311163698822836170760361355943945981804887179746680203323202228610668948859144400582855290952050315735879853291309237950280333163205810825044970840785839466124462024440113407258392702993262494369202049212345614055241762577616522965294974066598909030453268927341454114671095816420622572461269633952169516833485675178698682244872532586722222482043974148981985248335673779201930867973728232601028096087171754217511433552658905621080141649917501978857861025585620325898324220871188262357200674817897257675720135712231578356927919934844394381508334792875840213096511386376009324142172403782174334766137693903218488706636468287369405991678785448183765063682786151524723484735259256101729065224198182050118211792705837948412854280275622078922041422271280321559256850558987585876567446813165631875576684413042143375168203969616934370918842250020968128102873316328367328695934412366931599507723603487207122656489208841891230218348603582630438078822025522139660495992641318022020843970549282289666466641486402961633225414000242309293257390798684872336462340098114461813956345478261025366956735245121456653450251563961484370892117911166675861612418356972994623582599165346525710499076488534940895644855493212121044943331748565804380039509253727400657723432416925413091106715094068990705180237314899705113068652951994962878368346668082642400818413990682465958984814095418830023651011260180867294445184785421984109804145215825341656109821753322297503833082684167156319198035137734813470802799459441345465353774561144056558235496939051562201324912720562665475548375339472573002662294459351219209134961481647573413464493955731944097075431529796632002844737626241324557945789869546650170060031989090436604556808980364442794553767446560205641061346649696374010534142891884399029411895396699855309155775074142058785347471088973645582947693992581530029713001574641487804000073848984951790832292732073716503428214446024844252781545133883744804496047647192784531111515588086559350099192152893856841260692958601083574162530118868649727549723502470499069346939323478679209895136304708093081611082245778908628038088455908090461077476046007914561400146343195390960416836062897125978684017934519205909906050224813166803863856919865447670501267805722497828838451163693487096696609724767795082915145907767483120847062153783705447544040824156821875315458446545486260973999567230004491055936470841973822950769533242856563528372832812994792420062745936101749114480102060740852295087159481114352957286131258733861966705080937966557127228086530023911672787675603996582388523474064215539758940909565365739401677077558780087186899213278909046944597935448169482649534471709913729409422379717709022172430822622827505900872214602957271365513882434309354362104611531788951896346191538498270761873064212736986242648660077013627913319728878998893327305350665774923200313979016244850455410681245177607615670797051740383699875145486903982981108909727203395153788420631298264806620413466622455997405719491421263179744401092579261254451186817273853176705147211140134254718527464326509474997736512272647458386352531535821867950998864904164175587306277070059909017925601524758077492914895894314592332151730209346482155687378007036128173147029064898599871502372652759863589151435137094435325756360526364735939804306529204920592989799580703846778999042393187113038339392090132877794502526169752552789962132806002552473451971829701007729618006853174558353802935097084685098685812008389491808451731940709672246074367049258477920226489593101939823111542442273700134943409996525424521918102496812219605135330685053332310058602849659303221264322834697078621727387353421703476700898602269966063344692881310797932970077956213455559013902248509573496102973872225034081745318385474197778076524754374332774467620322678442786469321997468610396727011210803547901616960671545383587810948149116224406789832407647277293721750253676715279473606058532624691702647160704088806681290029688053122621209965920530565867513752671440034937377148310730431087008267317802340556041136742724938479087790936599671617352015021712960970752712060032348174376140142771412248706802242305450577682208890648712203133753046642221213180834603453236569826512677704152793898618431919543361137207925874322818253314763746664749141214151689648702814939743933664434702590063792606238082828864169034683585842532642510657186212446436111850055702240189851644343741950006309579525490942662360953096315922014893524970549471150548248845873385904581764069792796929465308385721627217548067253094182396549462370733191005366735827539085179347913763309118750535231723935012692893931185183167700381718353115133144835219514827215841558117074023634291699100436536188223831868046174602145659855042928977705695212180276694941971044077098877805709138291988669101958231366573843755418323841175445269050721487677820923686996981213672106831628969891268378878765605302310440029393684740511131567222030816348337635347506376498760028694587433088429942235871189876370812135115739038519282517525814997483651578152230422681243805306746743063193238298400745702910004438234172706468342770299684126310141935816752097154929180498915397382320140422459748338328698660377363902759173195148923119991071158138218780729019529911912884847234582204599821520597117241898307521353546377577762982226527827915744615980516257783013137689500382596342304805916016521692078943350017392334732947557932911738501495927808796646709110640356498011756115545797627263197337487518078734761062126134222786118617403811444931053488658252252307303793233516115624753980693239868712009955550866147310932361964905596714345158645045789419467632300806518571673064069456982705294532353534406438450519797039314480888299679221194143118893730947430931992023155865607146996240718903221922234351469394138521141489037206496547984625614354347657958699622376758231242454541378534580076717491340129368905937365333284714555160705777965818019292606648989037061744697458013827292817047198489075785727930395279501738401905492670446332651366485459497291102403201228822275999988071111013102253618441007826564875514981446342074432803759810572598342112179821236525673017506595703933855805160736698471431679890939670079735149401689661371556151821486559457441223672757428396484054752800661195714614936801571172416656912369642348860946109402629506388104546519723981351656122572183202706419104216227792163249121085624705696346194548849664346665153784082047172808683592244518870691905931763227938574578073736784096253397816478621320943760472799545268205351585326917756547106807102844547499392154943456856511597973876511282191949865976073068831907417492423151131998048342365592517034665859336420964239459781778628741754724265009039021479885479978549739530513612880665406305981976687452606068115038834919386433355478432331739779632131141203798490112012505220989369428477281143922608279484885909320108123124404908793855256649772845894729648001274070540335145634369911947736858225907252106417812664706444699648487020611805836999460937736256428221052349377086441835010031118456223810677006263034751695223190699936089806771770590478055018289337204229626519844860965173791462338998820591134413681501615558978163717470485498438921557185448155897038390812576795778008225332201413663522544515515841992345687331573676880989588544686039618544880859993149986735109400598020382484982496727232074035352302940710289424021668332231220236608748550179605183280885964989453829575338033019631829898000708045805413203485921912762077579784038983971969725529895579746883949329648299025297505535783212176408142323398142734255356189282890555094499096965247357380524231850473451403281430757346786218190821655814124759225353707028842614000673198801044647768193037990455397128388082603296647034191597031880207248123742816227875218222756168662346878993056538163026266301535533355110173544957101560337000829583801341181502712370222489805580785898638627800943884177054649909466406341583395651784334751006183988401021569724159133428723879931818210019219315871579435854253177587276552076058599879590866401682384371885168299409780200869925504905733386408761768533204212825977805390987482186662058598118311733607342759678315547223120756381843088292771114236729427631627079258555146978161690142342544623717621714838327856701001089934993503330150838067701210209886104630296792755669979091863819432910699655911999374864658376804855757261407618783026245500551751401817344681521488002394736718903039861655472198771485751269997682196943878742544689910607679134872880683808981855414144329128187713957457651098132725263867933951924505989340317914267813333692574143668441145628680887406469211696981131405287407514392446836928979786368253574432299561582175185089040830399505094845385496600668040728239556735635109682392371887001514892992489271093608738057480826678241220013120297695089049707409176565600481071092319034909224635170507864695467123089667159664960529987649335618482225754675196862105347953286009031127647423019688099082255977818538461412900585348663547986102752521937912997581720834419982263637511849172447443881886841680238184062760932196125483455309609346204954981956726719997052214630011366325024230067216044113811053815861894225187519537368380968208665347997102261232313986903577745680976992629940489163726599358338184986216369667479622261924256900608917725566408812893864582978647837700862326538341565295685725833391296017863017907209995763109682652188306550184703600984513262628481738242865503618649143091185621135531526790991583298834592739141104972652296731499337550708206295592920612678703103470535039992793557846250427543750949245946633208189455154153349818276394665969765771114425247053399812778126451681231010987647689861768853600763336852546289563850385364193538587592608970174189857052167496779364348948562103511648618446210363036100462360623492838193705280078538216929102981514731781164210706275692884236039509954103540708567393696094736396729179612112703801894359080050232380257195418772822191472899504406406015784319930371696357629151228675310511423594878069072179275987864270908776001053407130053845099092747218996269990865042040743597928589385256566361977450780519966993755138886925439298218864260491306901477505451906811195018775357247956478156193315394903739549068898426151447648321460895055590695555961807060832506200757859435627601051479861436734390767901152838862325618847010698452480765515382067742085646269759876514815228250293401389666526975901783550624115538675824855630913371670701125136245413820764753272384913597867454283936052032743136494020372444475813298839024199845850165565403460099971903355880735185215542416042100305772106459729023383575841418824943626830829098628538846594701868052234137037724700321804147990137880572536384222637221972358471913900079491593616129214459993814593693341883075103765456869552105061771522334860384937002868801907097649759066479548988744845846053477204541482198074016870387445672555425125854007356597110390550775432586668411830292798150662781558540341561181784356034985222835057510366551345097876300749920624681577362583337506734981915554119456298095978388172758985021875188868278112815962497766776590082304806585129572236344147055861943003210612023046203598373563182655341003196153604357157703489255551981341307570834040286915613997522541543105979860784131537066564749594762455838342531240190119809298954699945409539744628594025207371317639528796142121971253387428015850309227993776141872262357032913643103770950611630709691469729879163629717211894985025036006066655536281248439115019995945363626488578218731084776677620882946813459401826213427154652080173863447789840285481131314683290933598777536989311196110024644786354692661495682473598916801579643414660892591608734437318696355311843007160578697770531083138811484726452145340445356768300462484880518943607107738920544395812100591986607702689586946947521838441739375387411908892078266771505936084860610119524850707149979063608232415212353221892153862782424485516157989096343004513496784975786715783988349631835431649121422634639898415460245365018215541426455487717947173065809960806738424850198421800577305963486685756815628101487868815048488206390911559142257666860918421606116734656338503171663841838026117077335604883094415214295019243815170125216369116254582898012840205433094326295972383919937533764700336418032838098148499974868363160716881027550662728397087281231197629972803598437794034743014038093844828436470818993865927774698467920762785733966142317323514815570979979513857863384853389445956910705742269837366435216563502519368785108228220631776345799288219298393871908300140984234944374525377519624854925661537187379333382546466463624865231620812900895052300472887486376971907168666426799861997166866056295644728206634417610781853313054794901051389714187449577570452617419705834595112918676520576500717218878102036437118654810390911485905359235804372080023381693943668015814155610734275201560906600528385615685409039033022985961222114068151903769761566968594294915313977868840521210569460667428108787822363855336394892605462337596548423356602813167633897046846568374819673141785473340465953286853375132879880756622754710110032337742651074559758584454851051056999588138206390576654874864767723744346005703616708116541452262036555205497089241945537126557407497831629823495640984131730733447448046157452844628256839408246566116022076793523787096368992086328008966710137952421144819475840198330569625946760422618946744306579944427858314625908346863572304919468349799850090488021154067127921367724215255122239541341240776172012272849104821434528239920737369362513111934992943489828719567081017463064328591494919905241394266532608620396030991110912130852060645312728539270080872981395742520459439270692775531768793164474749860539884769320521483111793741687580472855335532674485085618639670881104149767957981206961400177136384414146183507361748992451338607513355750040294816555022618658095495254327694700547659103930783331609830709224447300497133012508600668877228484511942027663091270006724011253927143802841496015467572341589733613686994071564409680157808616825771353623194502366073778000965552824887799679151053647370539054574831483288243604454850488283829404121557577575723138009351272672127722929629690834390723233251454902503136396716916587831099406442911688502877241070007899572160891275191376490678743715826041542238562888257011381716973607562318331250095913485332834338909724671017559866676895399986713558039817961438707728971599861588605400359188517240860485539420143383259754557861999024231009566157776006841327605643293015601297724522830152214932284950399281396885343193319054552647383658625320720619469165473672155381557689511481730637051703294244789681070625996937841599549222921932600619290862711395650700760953961360408488948980170113514226342793643382944691955796241165081567435876831738505923216011817476254850011305910485918582194359995201308516938598424498276422954138077816261933647110750997805997451787579744217909831510767638985423285257113338235552705532478175529619647045545629243925797564059554980971684997693626821135681458615628852456779808989220046344107016770349728365557169981054712031911674184945430634071501233306247910476938418183851522100102995146609970898694698062860740735367307359202113048456577315958448634633817960424579487967730878107110002012861640339750404784929504256100467441522183441849162516632657232318703848897925494041073065689758539772192237764333209735627471767824596887874829086687808305668594422304025958910524447144166575184551294744391070998082185626183167955831573283591704459578529504331303626375879460468172823572175921828667705069033625674820902214373629034165606132680846338105281665409104480452049969391483165669126577136431901778991976428303081960391106690835253054480081311715538665971195880595444808201743245525222967154737702799894883873264485978068383907011745662375733459089846872357330107578531149821993972243289559726831189368372593143165585574187357648354971890930241290438181994016325759868382105199963029116938783852545179861927686587029687310349798126791028892863113634381009956422516173833894169134209315300988844264420910165555824267144484122264836144260768490735064514042560524103220187334780622470168100350646500144395561649304062837741789487830187266806371925571950193949030092802676502693768833873834058768116372328090419904826686120753868709588109041250123146289135847635095705475164194863755273794651043733058167836663938186595546532657756765111223345641385671079795362950330355169191240769846586091140116488137089215825925358558829395374738334457633055580830182717016587475796379286021156898205338958028776725917639258183717584052644159301057181416278888289207013794238579180112641802356897478875898669469149410683885340003406502823676533788583472695144106072781721436777035214826702809982956978814781440579763912628952038810207942506887692484987419213626995120871553785227677442252700097641894728440137927713015149478554027474940661158268192204399969916278694792082824641446487515553616670541475616270095066246404640710603321101533484035747590031135447957896854892365463692688071503773034631532883917888954983742399385777076871294367408689665679020824271015751016957970011334521139535227797647933088375544000937371427646003214959416186029191322939664527459635001330108245394835763764394497757392021253571015974536862693739081293510482092823856319098906982458817427348561489448212066822921248784811739941207206969315482305833970156963077386615469513130100629626594929886210639085582863138389856897221640668038996611380626277745733636439732116503067947926286006917575179165928043825944220248391085283054223226576531246181710177454570106398721680885364600010747138491402358901324478677216625814179291335908540398671428584419145055047552610331165751752235717530917697545895927629745713668657402701060594050398359092387183697439031406945071741487322539223926568122626188558880869012797514997301746936326013895001492553610542340310763134781862932834388491459676495662743553763107182072525040423646069009845420217499551045310107574427042405500496334481906457368965706901797623765123463987326963661567270689148916393776034131637054185127228143518374874232028201146799606488156576949191372938982558894817461460839422862871222614421825831624810844133587052979489387223812843668721071746362667096046785942090024498712214808449198907859452618350595572626070405549661730184444600237317913100034912087463704159280039121786896313620544242114198944738352462985008890243001548691578707243234162292279295629830041448257799918069465149993317571178632900877931159517677598728479403156315078847848753487309886468344528820010582042850721627295767414285816703253811942349041515307501801488673722882043231970486212360826722813765679461995506410432349322772926878130638554363188101777223128166857510904785470630368266007718378952806856039095723354246693016903809048292105024783994978132845976139297609508818859069268147261691596358205134780904535443975165775465695211604893637047375825369998949646107110330425321249099236838009621465692616320440561568908364650099177124289840704529593662327808736218037006571708383546425536005160378233806240628100161293810113950200372858454130325162644114375806706166121172784093621140428416579395552494688675287881985532650652435517831976674022183345450043493356726413861456835525207274771488761026864203234471933901182188386080969839033981456454007882237730834459912426278204790521080667579806317574153173070515927711420717657264768407616584912245994517627095466927968423673997736059747680583998969592737194580929469946315928729936037282344867172932241893057009534675140079760850787917909186383109492084175400411299155805635402602255807196739650418892520033495942181524884894807615610854695239065263410196461344912662072790668897986069683822789455677791533072070747784115865056114368765607755775014377546601728844404356027601400067902978208366595711109649224590974101012488610366037902782220462136374071143880898076544695175566113760028179578945999735756123663106519750029074811219452286683078571299042597047612760024747590253967551682543812269025659876762203033925638563345948078840432499835840644638092044593778993629916046049667445534848758778160135360924430637713517974519444040175960086072834040416177259785931294816157024588209478172535050387163943889357169517513437565154982373521907846407066510175884748186242959777497553960094957525493424985624376352313064723060933323510260120158046476676831501965363720235852998021233957423447471234134633732238664176422111147828949952597450486259857041855078972879634981138217488397264896366128161100051964151077355716693333895267107025694598852993152865721438644256634392023885631351950491351975113259105301457360707445672991963138808891804770617171352032668882312622574605304077535256835744967674095539715897212765134378644875865922239249078133992328677774223345695547451574094070398713435551454076907822608047117908458719731368971792306556962829653116462883653904256391002646376276724754643517068335674745699551204182478354437900048326852830302167334950874467698959067538846658497374079934743293337270056988916205247766804572902637601331132557314305703864161008803130963536950956342450954908753746072374911139043461443836669003680331426514442873238082961607971926643664484698446380288120477570985070933284099009703351404324865566054519684797235555845038599864720436739801341942723234271984838852823868196868486130916649980747983154983741282278119260821198206202425470699265331989913393294075174017657761655491782745932385923803338671496440467576098612307883974695460948374222737079563886920055027311221557876762718465785379580324413602625558975435519310651069244484521415357689663120493252574939695017489277189153314209099555109544020599622106004857814349153574963109839365200260255423315719818314546036817738993566077223293880610108483456697064085453452003685720324468224173650981685082935335775598701904541612215899884733144681477574738782207295913387428711115379250271779508705472599726389468291245067223989687311061015220265785232266897740027611797579996166940771359346841997041577530299342189955986629796537373768917685780064687464312945763024868411926057909668207061995107862230224276182351086177794092034588992735758873782889730570543600460794174028556012807989250020238374002000885714231856484779985213297157788662764216290803963051404980728799599861120984739160358865213129943701305533240468375912116226990817996653405033026922579077165639344690107764357427267814470675539258248771535570732686531265400938777785291880179677508797090282063834736485925393288474588430241766590356185443828087856988858609432235297457224999062529998422214635982751034688319199240191443186657014083131921845475235782075368480109304331045728122155692955764447180002951052471467856750681099766626477551999195354675467497757105349377411615732704359184891479298762106450718166580787185580950955282291078631901439694533854776461677531699578721304387192876369520853631261450796069879596107222832841834454203321282958564427650964235927557260551230847641540949116751326628900795914118391593662531841409014095173835232264637528166174956550882109534467359368144553903744159441534285630784633250719799177012848593487581367205802648941038732232683155501549350118840186194067872383796440060636064901437802299802940272846721686321799813072677358637046883481099056991152047810663783320022306771583642167770390162553610909887266615029361721281014301721402719490544583085122137209036785076588741804780413175674234541845456256808335708821000916104954156844880762070862833587417198648339451018714696878818465991352813489022390985391493191338464181464961042134285490746264701608006380458951673792202961339811283016839545173248122979895224027657733238024658244282884167829327904354052412281039183831915418219986037686535317558354692808982756074299949255289800068058126528125324193951241862591238354573910145138914947419764156963902083405375554123215734696325451312858830863768883738330588547494634001742315663723868066123120318261471557817858238868230473706169855122598555809028891895761866795886909779236164942961828032214597610235057786426017050555864479346087102670497559043055529580646721935377337326682629281105262260237616845321029395289456464945643534737914008011302104239559207175918611144442425832348934767515782118165414366578665931366152381626505173019765715430232082646451162779971337502882034425934754870808444428424770706533069093157689734095802033760496199940205392460190638051899818299514397289948062082307517238173306677530477613202624649996861238089489394924230039337388411383837951932024686851904310669705324279090434045289289270173434281952255647003237291701263067146400964095263448361340840106944528510660960426227161744873344040590807473526073138978119884507296980788447894617205426852842772068690933234130127272537110496181872600902207789238899952193077057783651315340742346416587296066357191899861783908417965728841602140741900237872728032499650773007063704212429300682671675373244875093665295625392621353064941516758623366880306010871031611936759325382262972249515902765255357661904724402433594844444287544862167845184188502588517159608885669075568540834956716252844061465673614985958814482795544525672137049283450200303973644994075212002558588845137604048624094172668969948049061844063231977241698230281574110118335414867768748982284122320386669862027251305972014832732939734803158002913437806249902325183917254064074710729575401451935847246270725377920330090934433997009381798195079100109246014820846845965675365324190079386285109887001631315781024011896867256748684965611892509878681311616947828505434437942868554542637005037681380586007975589302705013187673713931947521966537624981026234059211429441567008331417950376821410388665605594596302759709356825789915534223583748525255956818323872406829489730326220241935066325411507363552331695777995071615566915604765898388885252355995071839198942323807966249587230597832124741961657516695095456984635495756449951303888051558425169061104887356617706617012493806811487116220911852354441751573218514916611442056515680380989209349177536971109404266219082237291659744512235048974542711934655035710952117823275852402040462807664747026864783697645018433604004790595348085979165100324450312381864100547272501675551270484880527469361814281844061153532374576038226156936640091778941670067429841969434557475025845489165479762655838014329301859158175838154088057557535417674411737588611997963732470868786862199320864544800004388463855234656365553728142655298456839802647630534048165576672063339937889211383712004731609819962441995696577645937406194567281626653048922586397854576810052994707790204191870627866679778001872940998138328117277268988513127115822490457098291969251329198391200627122561352640884792553990739908513699093661778748380999423913189331638700710346637089715813972371768156023450864398294704662300711804821102950132947810267171756729452863322112072955658739955038863181776251983784699549978176554143059826617619896988053518379937164876229361452941930176198808284879412313819590603287145155190764737036349854363597766517098672703285862899645430634607075844154848030312550361289320900966759998080165704323208901351662280201386116769075752568021675993424167180480171376318032134142201747098397338405363037931423016968099945651804650826319726216208179791742120176168284499597305940204541992174433012972419445520048452112386990713477103595365112951041627901800969715705942574478715123264243284769467654590757191845682105729483337891660057146929068237627181237319921848626220742127975685226599485118637530766587390942371921439103232363165936209874053691485646642456716946198706336944535318139784615388239089652963598519890047793177309724209932203246031946788109589584847459455628894710714499563472527919587413829370141039920895658988197253069902972259419010640833053610259389090671569215952425582889155475407533197797933845072660239736691731786913305807982869761242036666974829303932634033672278949906410920647883783901017201837321381060164325047129428282875015227743631258057578031393732595587321791944752529027046015861141024748428820492357060750186395290482059313327991087938276201341120364466388489837630220633136827491785169044376979309182284309799420309537971912649253075499924497660435357729612105492916775237906432622713432362682027923536882741213829522587318253571677965609605528701967829672243687914383108320438199588035879786187073011100505046458783237082354247392808250838243749763285785869706384307069661513302804829428364022408062907569867148481594473889355577975602906380065893683993099682072212704738598254717244569900571185500035931532711122728466447681898879157097722733604209159732443022467745406618776441327047406335574007249196236055450089296926006947340772885759447738265740909297265788371776434501972571429747458998469325168962568150327777429816373657067933952258528123701649543053631554876238813517416853719732758635692352350858003435378876393817115492012725887417992745814029695988352089251539655442813225696741727931622793699145546573506385165553981653205622177995631610418464630531993184278680278833051999617553809994505834761214533060701652260143330044438479583746675823181386541401172442233946480197901836248609149171487426880824055796053725036383013151959365564368784165303509846641666245947874526837565020211154374070870459000558227217045808045360154302783580136022494458253016188124973257645569447256119132247664238749044473681179399422824171140754125427661186037375284899371261001465883398723232396242267316675489863735030952271172790000741807413592967630419915011474953168139308118600881517467125457646701032123197586512811581584324514975541349817659929893534029379435057944070036350230164604401312276358655429964721826977466110416392388463103309050696151643779382429874684313085830165928759854091230938314