Skip to content

Instantly share code, notes, and snippets.

@Dark32
Created February 15, 2016 08:42
Show Gist options
  • Save Dark32/bf425916629f5e4c8d53 to your computer and use it in GitHub Desktop.
Save Dark32/bf425916629f5e4c8d53 to your computer and use it in GitHub Desktop.
67411401254990734022690651047042454376201859485326882846944915676742270700738254324012189093273958935189763096092662578499572617038706183124893135193833022989256953210196289468241672863888618038537874881666541392847226977445968742340884809089414305471324099320290445257669398812381147850679486141068777106846241963630108359641749212181836654212482724180596063317308977734704851773936716905551669397095763288202060410118527327442490158969111281996293213429770950997664449086845487573646329916443392868735675338887493854554723112388436112476590104636978314187941020601103652043810572805628594182610758661438134364867149720092052842063850921820105755778301374301998205964916102148880463083063681194356285817173546226418594070516920632907297327680323570097478938417642571727885865692342935027398978848714162873276729784189093131668670745793408545374977323158465508916526032892626526906254259330166128400105835749887758768173155506943383029908986754981937127357421172164923003694554250327792161312333652766172436993263922421016899399885845763649452253362080509025447214245672428500612695951531770432785360253958086933907681100116943381838112490587211295116716223029017652065954748779742419300116255216482281889966373028747892712796158690669966955587079443293754806236075083016367242305256384792482230426363358691719842831820829207158932930021504008852164041213766200225261006950931936673737557253895708176689277639463387517958773679148394862131424477607285693053663259886202521405848528000032783666291876143128660030397185195935291633337062619065579939012234397495776456618585143279684076962027825152384571771693502567415959578442577397844003855375507064004944356361215611172483786700621821785141224782963893842135934371473308916338075426882924162385698649840720461388046149956635915295874330321524024378919719756149351017192694963321575924193986921492943605114707580969287199709983935495221932512654984121896243741418349356369531260781703677811592873330905957561792449648554548772091176208089364223879004129760881620764801386606949356348657286541114326671891468998485707716706076635502209862236901849291353056601826098119212333538696876483987923594058328608342357871308731342694437099070439401885007646069690038121000399782409616430461926271333687531701298368493821829710655007722331597879160556885198213612011853413049423129890368795882945632471658859121769134313611535091753921075726383289976750950399409590176010991767220603171087095022662660433013852538267777537689880065001962419026303960529912587744473869022585652073585170485140583343226859679060399190806440271748594563418203425568948869461672432521707120110586528917612399814140573513128889930296635497641579767220921226620995785751651388355740888260593114448676989730712525821622898568252357623946119256426723661840388532550385984751855205166174055295037851492996836668643086443699866515805692968650377512360698671280183305223679064842904290352860296829938814724073307306094270718810073293756910214606530922800117334992978281440809169954328672762489360312311412759941247682464332583246008369784904882868714995634645645258634340145749555016026307519443660186503070778746116387336645030531444024382755004974685243621795950109200094726261937019848202317367348630304559626749766706997934559996877734337925772707482302711630349703523565257969022494257441043608410248116761444171448196693645389271046543110123304883699568733284646085827357059014214640025141924124073297618353280228921658850882819157812760610806605819174513992500116869740144998890325925420226964457485745658576994448260655519490739766856608058616158400326840047831228433860126486722722791810785933691515413833268292977513406839731086082979400289609790092497208155282339212131525420789160975441011036093272819710249984206614199536565437034029298355490837382501333691403538452189416363032112410486563934554550437898071165125442342522333284440977784935636194885661506037935066993730673935750338989017218773032238966780552940307007383731541759462498591563858914233107080820638279330140457187139801440359962728908016469432681120888039951014566868382349270074913822093555197869638310843085802728758622200698208523850146556007893612489080427886345497182760258304239706281709511603140000274534768836003832770732551794846447747241134662110837855190320630893010612860417174488571419685974306494659077695275567687526962933215453909461674463898420516984739922432526232119440106969965973453556225740462973769508912435026585329017690548893430493065671589592984196862514536232706064673886996798936226302912677517340795353342773522236128408650790099409300411384989265139872032395896748162155386136235786709463708960031173876029800168466293837678511302870315974638434206357462290535124592514510935718217564997136843089926303414199332774262157832880565575316575826937443043158463008897509181247861220796556840756122297153977642321547549507149629093990095770989953965668814879097406074022836802130558692462293543776334792960962328513292711172625642475080135995892956896379389888774609457099571970416204022213100366115750029526902158067032069913001294141624718022164995533396898105364739320640913628734546654043451922564887972741809607651794427711756524555846360615552044508977350766156617298229400984253006995819847461027478517971658395980628251714361788945026093505753799983797299827003801272844658561929680005400557183843377278518861321083424522391685720245216130544877001026209329846886302020771712761394885263897909766861450032893893002793147875408345725444321327385024357979119772952015945701681563137923784567690535674880913079525224101393732332633623308877258325224938399318672933597272890954694741907028307225132881177931724657770719624389493807282241248657920871304522019537127329799587847066870659168158266003484305671700739124557667346394153259147755422638208362405182399065672144649630319631333204060535763974761521215466072650667059061930464637282272561008925934202636032795231532021691174797521621814502738780773262053802917875081039980245681289843184596990500495149516793829209575010553452867586336965788174691967726568486127123551251080991980345577392676151709448181729982391271182803633149592107411739104437716546284540849138068700635561702220152563153617797703884693647220423001267651085548249166061855419898756301248623030418277519331251647860858125504775959211923255256792604654485437364685045816639043763867626621890030278080705221834656536021441474779877734407372117796769578672746133569516637624223125629835536683866164369757679225258348902213788219240658176854472426278974714478531821380658170817574371293273805534269370824023828601553467317947400165585087842128718522929491117872899274993631585880447275475510466998363720953100795627194827038004935332035857158294002586246067500792334787407455541118189670396637250200687874935336965096901198709124331553151556514679444728889642764226814805537566350838660422395345045060365466768316158737599130282411982695257152066528972487130281399843671997229684146299524795407999069248513317314895642705039253476036385772528541906594888566057634439262851357346961554442977037597697064179821244737703612892283248017727818355658306750525934328252099969929654539373597430352322351448495056044326880454598126334647928894430102176966259453553475112257921315165810561046614026379282847448593157564002981001060991479601038890430987918075233056798678923363248910531188392321231321000682259044622457695447443559020413783586927368072284841353639422915783139149260879854627907829093853467074360376958108521179250667721685739994168347966367879863108343333511001573068230016385785974752512432941288888627236929704612370035040841301007682514484803241239485437969800402912338616168007824275136389377446944017939021391972579459907314598299195499685117072518960415964285365462556855339375027942040968676912423088765414321477477211861819939905352434236138815337033362527782758629420322096499797385633112653019208374038178566817459770894277274319394581780161468101137708649998369121720167423527477944688679192103255265621961569562048115709619086051696306114355332682743255598311324532719382890260713242832824487924414800409415993941529793337992346968367442254626052185497065036886105545055154591030666569580520508083234013931545268545764105755832203002581114785816147554278636240894022028240744994240649897962756806625096045755596811677576003186294682411933302743787738708891950692298997208147347959547689107579530533835041816268783570118250478033715342600518073175286125241081287220069195918468610736479637539704590695342610218072552478233328459180551485488840297793163754447667789564084034819341180598332325172496374148228369881975377076553836844558941455492554800430586231801005217607222145352181935617363111627525974787154221401828923274309341959626446110281741052481350557987973159270497450397815618674733744011336906771235316561351630437528998360569710525629664086390579172969270416111673272045893921265410510445670449663188741275781672045185361651671055043508394962798392361095730354373557087959433235295662087061329943049083832843493981151532836468623526657689468192470255309673946860764961610577275826809126896429305695355821751862067081932035079437778374000747981507953013802216314972811411102019226563870957489988161101148365957692825970899051988261194127601243825334308828410160049373743529863113919333876024626614635567279394634981761234386604261187035702614501909437431370314994967745723382305404632616699766705833429937896929633886567639158189935677887928910914645598235737157354882346254187214685483894865160261468376678308631181418367724766617153356227490082311346165926939130812906879226329812561098309190858389140525585470375175773847308395486506112346596504267748847064761577117950893245065835781358047335755020415001979951123914625569666922111457767999740150042416407842675117889281817521315699796594663349338889891017857593004033853884486972738932322142648736573733670170521971599332549957280976703020155691943963922958830930547747657462558911736921658634879021691512695658310564936631874688758649005758380590796406723017615397230606685878601169286416891667113891121070363855304951994248442954174384277438296998881714127095651824902697297097544951271609190591265225359996632764379577437634456420351360687688440045809155910003146294493222408345199320352068597312293042411610086070340115736590337019567254569705671311983883996351950782293362414490330101014323939573995031581681383748804632223617792038532333310448182780869133324223157901821644097076854149375468924745488470476253981518933983058576755093066378604600682097819130581803927717716810924225008325070197840315162300463559926756135552814483431985452991251746627741007075557366700701498760624475936591777847169710008751419687199211376807221202752734227612921464785841832233131821017076620605553734143809782145648773481960443723020331321360846512986456739724157737781392410527376206681335406772862747312352403988704722653361201184377586353223033007942071630914867223778404451691217913333205504693366399351647589905930693808534020858269794259090469965629192281856657281434952729587811166590382429276613044571761017475613210862883879001600139483133250497675691502765588420145871550020859607948518550791326301708582701232920174823486689040760363153899737179037220983310234253822527550480180260953618407846567244436918775283993266967894105066660655366889232976671355696907588018734069699086151508058010540578040795533962967336730512697129541717354570202485692524119009780413634503462162981666393974656095850626905420158152561925319578062251711670543725958415988745287492484618328679483095361394187989184631658141051321442018344765361001760285576939233151575519156660022956987666585905422397225288257618981308494473539512645869709442492462916232826798231945395737481735557150043378455619408800238965200347141898187901343238672335372533546974673682569135426285611812092140808758819094757178388639913786705407192885606811974342388796858754434961261757048231080536102441101283550407202651066807267154489935909045368305871144740335337539910302618673210025885790458555400399400975496655469717510520253534930504958855654208901221084243443404849535668530265526638980884204320667546142024433397680566013986307923624941592714389524232698292826861127326867237010196154475466381129368352107260987629056595044587022661252168857672092065552331339400301708820815682648035176371034406891928449655443916396855175390476416343754033334577408160453820065289521727206843910522647445907470690536692854484266849630278063674256908328356075079739672773445763493698165816192131500101983657947090414159859904708609391401228968825838732756567253216384238008055519226428380643999497655765955040491522617503489615401650580976881771179406359858842315023318354511273026362686623979219398978971818812043988402333356297016740317820861692055656726887427198427948409346971142312637576012321643263645563741521461438967406795626694402034443533097422577504736885869767458141704129863088873759258103977370103358215681744587149654089017329858081854374880560488432814620478529944835547720755090503644913547115643934138067592734335738563797931003938298104821408163072873724844023296914698290750224614361548279165588099780549437171721278724979439983937993621432751413010841334198312819372589547576241521001460127729698995178559804637751250975660701441542464098762953889655877160625638750663595094248313304573632193924987792432115499615324906067058036620103644639503148521339371589283065958487128579587625119126826927519488036527489951668370162821558445245194791937987477365968327459683544097938012434676564451533909003984462069775024125920304092422092855081880834085869906704316421648675614989730190526031512632965817094007472769164940137885686932471248357987798597233729319976950774154390542081695611687364436680655185842909795007397363640777633905454944723879464999089403438217344238637519266597299162275720568100776440843754214089575537397953456032331870754414136168258392907065497409341445476158969810763976593470753282251964007437658357772319494254104325390604743674350948854199593471957158566624106144699662232300228410577283956648909467940354381819920406988786856837236317165858740621263444529235275713497951057789693873253807241674025880100704324862993385536980380754453073894055530414502828617990674967729444957742159058329258910008535160477197134447953497188212988369810122628225556748108699334226726102628750867165778008131955234241095956095998384417283479570721695731303315905190579088887079906073713074210538248426185522485630464134955003127667744498718727606120144146538966933359636240463346837228318591102327415908359298735890593440467040219405773969826344484786228355691100480042517342474022023822090484481983250784861135544997123845468468474496607275440209343567745077844807234204777392980070509907654177979050016412916046381241630813930616942092866607483546269579307462411111241143603711603359723902441476344101059878641777336322768572501817639711790824265335266753786780922641585436896891151600981687960006519410197283783514390182798711805548953953989094282476781368349221748580357477051079984131776934817232396176919199529721533151652159631270804494777976559913821602364788950600644476002783290423500870825456765580733728358579989184895850134588990812660974932949329591558962997360501019716175778724298246028335096119115465887937545334045797185815333053919608974529653634276798538664563220134843998541220540828260364031721242090531450054863923369706395412370450395196037914026288888988328387569551291315271897167868250167149135024062175820093724294251973107471381507444430891970356703624141192138806019311013767019897610931115957301608485974156232374988549710715115884788382495026801924550140009556904681602563804943209498763394070664450837623994861351204229841936593983006370229415610679060995360756995482725105404161036173445305294922671471059719444178035821503256887230679074938704168502344836976755909363584928017822666963304796528007375996705310655598052245597013503266131177473300447639117947731817701774301032892360490791720898386064968202587112202287950823003470072454851081833156303824480369772647892787084019636499376690322776034560263441189350321591722262454147195313264794558785930187612207972313392105168110954539322359737468096261675243772087066058751268797067946723455319773281319814284001475769713468485066447919683967712449497980687362393119303581585832614919508263446400277605496719037266308709630969568648771355016920905285575437032604995124913368122909643585049865855967592270323725092458052285152479080200175535917709869003179621362820706891215330575538198907734449877549443474310707246258467682574679902923617372710728248190364988985560938376904809989552360509011637279554027637961582695347992492213101578868598365836515143407122381740760648804547696424394051601924439956582965903552608667836390809040624643459109397422615550520757605165435975997379906765347706468122865958922711261493926771117870917276825946671194403406147025353358361600240866015335681334152256193944186914481597306339068452244632723556744751014991148656195224504351763579753446664356075411149991278860174897200525326303034536235326135498203669988953445251210255487327118244564524144367741689742418284591492595579380049577827609639269877496616031553006805602751364301107396041423390670452049337054933565461772884863373377060945986963362373443950938032030112888657803298529011197945337331357818473129114735700370376516709332978233570703026136852200998167001400703476746772227820961829674690690982016133374533643548217149284597246347536814713964374863784070287128286025790354489917271875171839597921298225354821649002603235644261245544525307650210478276834548418276145530492986003330100723722000148467874314349286682987992877028834568351644986514298575022698790637251690852961499731840478946468677211883576414283781593684143026288011721470146682185994891682264687447775888344217890713403256095644477121270513080335111056263773098333244584922467138274755662738678928312817565851315951520627776930902263632107297059451158390431447997622782129559368123981743991209607598198658469633653690358636866886518085459899023142709495130875979771337300936716315260028356927220222024878425282637098319563168673288972826998555276442088767810317655904779220680562914090118303031316063264831447684366649480556542565477164383225712317335102215181411959086964728551449600232670001215268629849144244110035624809981466236664903817695094456659814258913366885321948813730881276852980351363351608440840759645929415941497116231795155403841775013915872890153895350047803279434051275908464464332827921380018330862338760673735035876487292795880527546846154813393393628668352547067073611518003219046855417991108479418867289782811754884374762544570320458002430867311470958668789756453550764757531203023579140062821259442785312918046920064121249459660948298880399313070070899976192092922572630375600536265770038676122930207440489962630734644344301426476844606117520346564842993597156539267542751777703254125063221667746366200319967554559701401844782686854715356100495610256187198130183864686149349942876039798289523291878194773294205911350502456133350213066239349387099118827800541875707359404630876899814891074505681519230896311120129868280403475647141598457324654968344004578838229154299408703439178389056005641889350921868173957294315774836779421830689344039804402979199713970132397338157145224381557731638629325459344291411381222221438629003430746109311118701025879867588756685518833590076443182543301443588990952446213670337797972775656004544433513074193149056117346425366675992534527724944204694674806347419708190646193770951749924849642349211606850837910893267059251789780206367415559316081079066756153496856325090792156355876282933971657962131100148766905077950800476107677801220667633502620055661954007374414880463033157948738134959835583066244783445074369402454458971558001323615744642003772524640126723637741372100566890537156730888058990187641223632805846739396127465789487529791856802370752298077988741258764435801748425432679823121122128075309898714628761947843890663127080336984766053225204273638144525682159080489690240459929869843631405206072902457502608353985130998932237809769524567772227198341592633460222334493486256778203590537271612707850526459415060422325255741570684611550288100925598418273871504908063620312628398629336389324598237144543735488374440996345341624249582772479647511978477912097068675203635771283928237481622117393596741547403492479795117779635052248250523794566331298830565762427389998144835565739277759230769432044022375400734422848275637650756051245479684613863767854520342838366353923422246292547890255202984131122589458729375024967764458887331425049776850804407995522261953067354189174321385836938557773390738744585307655502790370412524936255784287119852028980585732930776090700964213924512718681624430575194533580512427517546907496568358903980984738197353445069696795563767069696694840874260841664342818366019011166965009672410542483011466716515188160948749899299426915892344161767637048345647626332945121145180031129075725662331773250917525206858051626518373959283058957265543393743560267297992538080141073088585748446659809316121630665319237452167496384020418171487513659598826646847020845737943063513841214028666761873230156301352701481948888462035183728390284182476691458020172697708400935729087277484049857139136659457477387119216966900405445870407953489972583843288772382984785971366445457109857565352476052069579337722525443777446525451691164351245970673032880805240649154617936894332320935690475940267819336305580504181760053586638998963303588585640921274515507445566748636118007085026187728656396972665118990736423560511066065662881094885989668904812132651967134524426528517266708344485816087386298153500389702711102505761064290707091266465018272824600192332104242495378784135536648542641067497045335312101149265241872989681159532820487922864805544553840252576187344056569263633192997691155029968847255181294239836784177255831672033564644926379307818960244439126375897926668438513800499921618108207744241886737778409174801255583468428596951757664165521625068149630497510242170756840622563848145634304532960552095888322260231672398683373100668132090259111062461762950631706240804900720442090883736193737202417349816366851985894666880638610500751264933733892978946214449190720878486031527185403142303783523143734095866237808627021398463590081348781643222519494437691124552836229544617480262982077491315432953501442617022092664302555433083188681041378750946112589534819267534253950501063769206797508668467062900837296385075515057045018566972210727410883263430177791525897499270777814148617508436118615677026669223358759709971971991490648532156867940697391044150627884841132148962458237912792510948627917216218695051843353146561143191017075607368014170101105289739277848558788749129452031436419903230317284222438005573495031566479780200487157330596314045959295972826073892539873373691030194350976438850139997926226928767656730523406308235388235252198293288329242909243060056814109270449472012754392618153690850401211745584803914462551556504830265125161543529249770389318656518828820101944223397505360745816732925755890246676198051935950435339111721150309169017075410132717465622545350580206377379487284764087847374453275759748355921574858871975646781155104881811094870618031023582533226577710885819945324404052598876016094738654345733495424950384117098177403831354211948556996451487185953719099312246420892880505277252089766008604295017731158273983182501726316566996078554904131364435845473239311449167004228804792641431266130929731688815098417793010266329449876434529811991978623687371843583651382486294447492281634766843591971621598842925818175811249235862294669503853861571962417016769417348591421798942984199920535930114541782437364931666727306356552577037363930145004336079150137819249758410385736854110497216217838004532464933961462395425452399945745983310251304484888339797576008678762219584938152054969797295410540003079395265188697524407676871651193081421519089055922513766628734028092566343813060252675776167296661547355775381008272086865661491587163850883651040616668808736314431600485037334328935525692961289225376282254853178063537992046380576267770603049056351889266775030023564750660027199766346094292986619800213397950755423496917143554817982939389146967734506038484862073519687342613264759145220253414981789001244870070296795316413300363721914592744341846103132763119025823297428991140999496995558173302383339590605379460281594816694924563787790471096871504062057438822227534410591613308199596122412637756680718319642591616781577960510035030404316437511271825463896265787493325185915685192331528946958985195858405975994403506342494274129236879148248746792876057001185190554045479829715024395299705829078927821452367264931090865676980780261140955956433127196148695511281241914457165840638048367411923001149856023252109061859562978274103067930727479185826713845426110480599437713197484408200316930291409715083755153115764249836272029869757908514748114503450253457688373702574449694479151102007254487486813619703585716457352363491193696937062772750750173793133583100704596468514790806538227690498740150104363593638734243491666871523312039094802017222563842835570100543257290553803541679810732712567216093974543587170567280333818830202030019007912502625906483144716675021824790123866714382254989536254862635333790431460166598290586018740525736324109784831132880766612780887634088328073623646880458290615459090354123135828605527548741160403459004545651142167351299578844622287585382468440461477508951219008617540278585996244043174632652386504290227078407600224503125492429710843162507680701915057769648266300641678882760513232429699023103451511898719339285344126398684909215519051689136884523375856346571761927076033765342828538150307869392800376026277483955810206763630468599731989789932933567462512538319240577386589975045754855631156639828965102133740942664915727374665397579051367977438727916257369726412005967452440749983723438049679972396753560005381908611667015434510146523954786141814164963791134311451836345317120711268473331071687879692482296761392503301460607859070644688150141765418071675211485728600620815273257148551620988474445820378666849320084534875116958751541279496927789172924556715181074330615428279441113601473575410784293457564305104167415565464703973469903602669590992875782849768587175971590018937614504506700967725876097249824054984654767042340365433876735653071123812060194056815980974221061080015740529949383365125232237117067248395165293829582745527987072809761894598367493617488076791179522782579952815014940448246968534327435073552571454424657728390481848858452100271086712858548053869363581899157428283963443484813859524529225767249520704087515910278270294198651935120480620222616354870548963303072152360278566667800437986240162921386494740472230952901263691425025313149497943294207567214444449287193714281741416054958563014030023686946298211298347556305898327509419954576884454867002378177245946538812394055775976752620851999818700681370938960340161353328570575174016992481464461240468080413461746449685531770697705695173278838777130996267634148557365012409200187264171185630509453632051794773780537592718779200297376084065697828477312808620478040097832882220131902107880025851513121994203218150112063505812683941217180369708196123880740039214024105583104957512561644173647041392385674411967311431830313508507741226217564561025986011911546104405497137374479907792818308647404892209021690986527208052837985438452731409195351261975108696531133342625051873981258938581226215465418448366291869693134953582841780652315453347812253977187301502369085783699065434640341170986022810100322518153342873656706636148193632267549627459655203546415359719815798128645055851476924998253941123971927521688171649602267931141193075825355019476604562856911322708838860602812216400698891275557804185725355656123127618445285478310666642096027417710416998398960644672526474084960010989656137373170608466424123244058088667093925339499756196423730748834553537735338603031518603581047378031885804704599457386618756743471786537687967516082726395015755499550198746396812499167310645386769222432233839460827047926796075058339464218462166822233904990711275825630404652201821932230778726272844135036848176945604409166260981325417692586850923356116173629758697343428119097350285975345374304652398410973251533955270760034600066732233352996072745031521380471706860159408067948597901197366517358814975505136983384169453262535488427206149337743474587313781568820497091157242438207655422341938849706107403612830185795261864722504371965592164323513731190413176723189335411048221452904371703378782687535903780379799294713533153603347116466144633516808956504478367200133477043941949384213835606996690648795642869808932046140868517940624624901205949060309321470341051080504254688722320319608027435029822085502929649090712597842240904354168650778500967619507160918105241251427395412829784215658020272741173536600620787152753046083600237437248184959656190347604463192075684777256010090047755497877362726008205075495591459057567165745544857160037161427275618735822077063161960242624175884168633644850316305038717239331272943564277481662075723768986440258658068256802285611402786885407986366883527356544586007852208826059548218362940972080888872885946129207746698712832698137490817242919438440616859595776944110441414196099073478398176092231656963169543088212123605512148230412722967253854753307549522800767472559803403085528682774049020527991139645239728833682155344096296050630636113718284441231096001112583687895546585303600429075683528801854858698311529013643602762703410459882582057851994679450786640926543890073828651869090532033953211115147664613188492676155240071592266267352371882175404838143045891950509956122004975179388439328020260853738630981269529565799236140100357106873767789971088495090027123513424596361352998992957308862844830914382726349348979369067437042932630963441716424602914248122331099883721313826556070669342918523269616260708802383389906754243739986237611508688393869627357859111165308084165811473280340511018586420054304674063006733262251311979247670268740562785001209886492098266504659063507364174252194798607826812916011678164300909199736838848500754625676076479142640904449929223873163467618773365926706246281441540369171529887406233187596638348992189267232693900003187034658852313977342469464475974717301638542362477606866541701899305335235954451799422309666572151025049517815281407691401175865981344960814460974733554345865938167036214253779076210112518539410209216989122672717887117042866636841577928807081264315711655484864963045654912537020101401721011684105574538715267737845366725936980777654983041153998032161146191626749598428944645172267296348718656417114156664160505063166327701634998452844823132186057266144403102262050846908089068612267026746208050858477966227716201820605525104548923526431291476758142274985698276120833873978883598480475629103241845706677359752870594513144082677897916354267098111346102373783973264265840917404896947921066276959086104019911932382117475302211779244922234162982166634823061786186496126463634368406711084463422003258272078346005366314688390390718684999654136940706294153282492513128436614663872267035069483126985193978097851961579340055917439199343747828271086464944386622432227941968620979412907434445299145399202676068837237817329850909710562842862093414340024684446690465369068161223200586694045555770503626272547616175908127440966495301085651778049685419667143430264138671014251659434957976980847970104642111228458661085270299043692735777759639571054052340499463847388435146629940233280349069227104960918097504327581606140957698208519077574503074500948520278134509969758321290589353059142664382300962196244283443142810101623752478694973653237988661335837509178882778123985882179061600908233220369265367616690051492277020479407030654664968484481385380628924477207587057049641709065775819732995689094797887761658556992629286771763011900798696978915319826365575170257595270015080360652677321727455974448830706517214603005713017754189944878293053078452864385717700001595476513750769928266105633762786054896078526672006021598426954675866978544177315949442196054394494075053868396181649879113118420685938959916683174554980153501536658894792168457532989410480571691684073835859588020691749681890564017091077245209910833183893757508892472450973442292816920041390449792708662280550966509092467150691126904945482895226699180050978214971660386820975514694933897753937815590775329089958728964810543928572991986318689171668591420501058358504580741146695776835010725642300057797674009103378899967772825938851769206639220212025727659398007407646712078003996691082292333241913468361979232934657298026795489990947777185699784761476066737009339159127040700239875756746306056057245899403457466838510892841478297299874750072593792256388062712512316964976170936052225574546184572399454891568626620027344566462083609410055982228008694148626722555486980279178085456536193715708534104817591121823538124665494078909421366004534080729192496044275229218352078272999651196288087097291834168578098900914103324277829532611765170215380455529681276853284203680341142484047279657919160162087510392025667416067391123910284652838459452023876446234194104447175644981700887222355520010263603960567454407272145906503441125386249742662871034334753491092703860686760134729242119835297409710478300672877339758275083970792682847358369311943857686521794850120215413952065612747003350582518699541713445277710029600371895230504981204858184204766895369762291775423096188142687634684229962661007213642601166816825529494571637275249848656866015659381534335876212714421959204765746142832641602258833025170083390569025030632666668287378066124168321732997328775714259775283228983501913072015100385386783242846889111073414168837317958808447008144725720311856774570554958518112994402076756917177114321902105858614518222265546984977778584491141594950317120164107513841427540714678784332569962882568246221172094162220610430333058449087038179919200292832367353408764291465417595739075277880116108273859932140033276841633180806816042045126548293907580584360027404893503972676048949330883366717481295104580324190146258922461215952328723027867266839689157893010972927840658290215500022000939049410522141151684075012540214883049846484948062351235910672805249068414024580091666818526634844758498448529783493282281927422685443850836689110004582287890133270173179477681430899460867512841801412492875072723628582029460691538542672678823955793983941538317240504255567292154110818305567394369014469013135093539186307965631091224851438102936689277022954570313773306559103705615101562529073889063538347125448923768074162000153237065581969470800715442611760067215149720569211224028933407274079215354103646584117628092862865160850032537593182248779891375054368213287650245066675587532674840877918630503751095543180417165159325082443881332767466605926282108992917274406115236934438099833313584036678380496679669350678656808226978743798106878667647632245882570532480869754950596529345571070337347305023818528994228500328348836937913086250014635226668851394148626130270753943518633817313551804571114585082435855627726049363799145142722493003352434051430279866909668888616776152606139273932060800667954266520467686309219047022136936360860308345845882236059603078136532326958276828541425122991844593361158737602914859798236334833594467834324926434114260330175569887079846209535640632669428138387264339587875743354046160376714255354576856780905015794375665813809916436299758048851536107445451128249858669498617516560213970301661968839415913837849151012079870482232264112605058669601763683568817533993491010112266282014826792675267151681414496320777502762737152993042614716667151974623120794097190066771056979930575332850480831896104509164581100322794459386235376634429559099949550847173505566783526785285822020670610295772560886028528372440932400707545751197861235420496219837088386373094444166550053735990696170704760159611631477762192100658536212589657144060534816014668277284550975367016048731727138560369894617730736755083815691992259183069442359027187168475614451849379639010473255305891963119383689167982326028425621819714038116595663352854420101130055409088001739624566658481806685547717342870672056477186435359125094307222662684500463749591852972304200844774085043372391537802181127029547561361070512200831696747629307202157112529375143290649857819245467747010061980115006016934662847658019686671612438485427533019826405797169425790095480130920286635950076231514045363520391925908499435907706782450120891601983819564951562574309277726048970620857350500972440485173940283996216238116478874161731785776094962870387504141495544324769627947937486186388364218492592053872511186666549560608231665935054076157125926144267464988451605661082777138955042994344049909047210793241563293897493377960356462116813223440376716740821602046658298767480239336928747595074116590812625485005340018646365745089770945656803562717933971342565960053471673352353838006155607341434349355861033398514218385142197198388752671327058240734603811228056452353784542429157970829120705532732056042995585506302903076149833893267688114032847301997017567979937962746347427520787155107099862296495665256364342817871823263754972620781777434433637085851598784088367253160427587268150521632004755365171096707754704444575544258785058354331890193437339321608706381208675328606542175160683799141477152966031999647614610669823891961501763491981416135484190024089200061825004196268539164993658701968271125897855506815292821713756446736677836999112206954843276314236577226188325098109868309311735194724844885699859690362804348119591560792322826356710027447332037869067826202160230826814437184080822125683667586724858396560908417306139249474591434754423935878122001341822461407906797370849868010520216364784340877988620141967568680373383338421643884236318269709152859272536523020856902094323003819759043996665746214730623476321931930639852304619974685735240643002089311373563935385561172750710987163999697193176790525819144925794232668228748795230625935732605763675715751666452849594420659108411108814039721440407692345990439377470297968160002204380558797533094381264190420814856213512511106231318841234148163369944222629465251720339707058728319863890407012043712084279894848244866057274319458654889091451667346210915149874249490544728926221199554109698662442630232478304051079785434291971948144938538254206809187031020960958799893175939820603449069339786451526312685407733782335738620322196865337294354499547119549715343489171066491001093559359124763727674066758779609033433610045851494187666861197161914400487267361305936010325448533429754684064172198176271554620044930843891748079835483846390579995585247612892426850853776133143057849642667999468490638499359086013161876725902857483832444078234019510688864496413271557732814290654868739978109420990666100955615364418213331163798547581075237397028637483827336963356822503681466430194454365247623658124586550854587689905076021833373843869997687852722574108793901220431741059053687983619906519008754752145801474352983545913287772789044275444360182660966508068947354431858647314212733358823951887646845631411830442658869626803203901493361514685553823000893595085507533565100070967656772703749629345559166843478964156476284628447066495154229430324885242719232757532674711378236110392289729994710409717660976627065820689600530220238626314829503025623135940734464128856009306889711647079570573023413945193409006427942349201759793151977086387893544918320943891237571261663557236872182827689377404657239621703800805666740788386950733252586425791680897904662217617958737469262784970304317697163931053904555384278418209156144871661576354570594313979737026251059974164861218215730577133599734570563973110888322013952518983564180706140119617723391963443206964698357158030582681570016907141719240861768314363753327757322340178193293507507315119886448142326447894001494813441214188253964699110489623310848823234412553203326964098633198091213163382133087216752719396998082106004656323644558222616751456946372964732718723617442775440913194640365831078124049021074441691678640502896931895937409458520834919040861337224227827325389954597285709194166834354754553176903620498774859412906637695803748460693679023245076183601491613762821954359293843492167430073047929972656041879568971825060991701374674347641974030350685971719649858510843122451599362985533464591120297721659067564686889870947876878732810695398531678396174436596056871535101741664282681373716847970612771688472285022871516564233232897823226961654418056314907864308076336234485753507439365996469362242388663442534731583260710801346403971647210298701603074750524908530975860498915404473022195135277095274201535311237698777251729659631406119553080694798867553264853572787311154440883372516423204536938795767847763115132690462699299810745122069289377275928048498843654630853151197634321590082715387742429152845248858327350968489086975239450672587343622524118704808339399906365396760527301082188365264934141348643886718118661801110301801511790106780030155873644423351946312578430772022898454962670856311321510790526050428351023946948597788759008096584346567533625948439368510807360246529239675664594640448145806523054837849263190468163773016701323098022992312396985576814388699102359974738644229797644751650212509764579884716720963604526952500948512617108976004527048398138574684816260823970874287118030014178867214088788838642113909868045910896937669679921747351135577211299752376744807966020231425080144826098959746607140234248558038489849437886127493409979658074612500258401430110353466706057410010326990700861252499253708482184334575845429843368918342791656181360344894577926664008033088134966118354829086893468188220520673469405468934291662743654327707159551734930940693890810604410514721068196331794010246957938819206563307661781897402939828303576516301092241888539925222931955310505502612236435941151335047137113805482226046886046532121399993747296908363197105218644589557481679502878809059915795397282948784523623255895276569497725113160095933936954074493128274933855862886319928402329920988846042942314004604839982893660859731171735747547846894663069791500150538694961371592772537553498897580046610258874156506672222883189977322321539298233818482073701611401837663760616283847848820742377008522774214571529847614773496260829805782222287492479215719637480529130575455576140079394355162686297322156596128872674726385661011208935676516565208656010105456320743019739196934515975466258705619764053609479899743316916457334605206308652375575988282987364800101083576119631819327520736786188703952694015626610550082392024017745653875686540340772024279914487754049407013125701212345491047616826152110649162943720430263619869628942778169280137691140325025803582392082392397772393688771199845981144944089067998202633058300141063703429931172643783406839784836381456014191519409639290078939676763475100637383097876377579767936825871674895502431253521523821079709044435580056385287273005335502206566691590887063758084424640312964159905821119988054080362973157317370795301239947593918773855140324223567717788372634385166943197197467220667100381784760962628815837217682606014569235406783962226173960525533025574513845522582719165579926078972339367280791264942826642954149535941668214057402906116173277073257221677166610097271239155672792952809732703283532116354968975743565906721775484550325590563083997011236592133752173122930410645383575246783424978006220715800324520355128293836395509694736859267052783843249524686523893657594107956339752540908261785896817274758657008828360762628430763504662385865043673003953807181705683345893438241079511584503322271406822255730675078221785078762509210892636485386526041591412936028345410289123439014200327663175974777513385142660469075846384356802770271566941223912218378114662923394005137938305326284899754087356577927532380050538461509086357219830574457283091232248149923264506078332932509682520627857529560777141190804742456855724399227884526234417762183064800226588728387803695696052196539888257671204810733957108211843700830403742524233010426592193867006686738483284574842788682485874559449401073455559276947463330695278127987992495359381507955137739093891033286372300278455794087777984543643384688193572585560443011644178776743964216550217457005079656727650193343726913836939845417841622827746442340284746513716405370262280680437256699654721178762906886134898762858260939162443521131389058053724938268158551971269384638215583050945314349987969337695814741301678462186921737030118738503104520850288955938069025053609606946119572597453408549660374981773436588476163670742745946348223235588918174393190800445255190763851802674828516387239540558372478162197438229099957335513964434222508775212488722569105444797308999400984002985996142549681243297258861741347309866873060733499461599310364658099616180990323088364739272267611424043901776881106584384778622995061409027623214540476460430262069423370261862767679097257748176064475147740734134468445602552470405250152552250531580270546784311693232599275666416630548596447979701206447043374727468868718371989914885694819672437241532873956872656407295840751666740009057649837470741442397782097993225064373916568701031295824705831168363703479342703889199332070772398439945762479816374149804664886247439962461806087288931669450233934794279377845808807741442767492247173242299028682128704431040180891188591973975977670174897347361800399293922584938808953835933365375072606787225666957538489612208277918209897925558661332190232060532198280567543944486728974861479374897606747449262777803177169098206043839197877660539995959039562803174491642673197628437118218303424847910017647776159611814153594929718751248753924490951068726992463294716666097374301738786133877103916723574905800183308033653235383367715032097337257271444153594084135376664535169236774362051322529713471591367516609859921019850497800290907142529674695049890160228151457695248682174427263677675408918913962902365062181121342088066279749917796449269933706843755953147482953691756305623320893114022310475170623793916819950967867501524981484260159307618524788156115987310062292507375101081864156387328180061482135450377222323729541946921769603609466172948862315226542698114640722084133385417378847861076124286127000611387134948917561197060726655500707359930104534513930386285740795621754029744537752525925897366375786874528598001500332895656448921714477042281626671704307551220288040823210565491818558337592063439782701522718247702782557474916816000580930758979132778945370813855893406317919412387795675653996262931989107219301059955093346943840642786100628990965845903334968569434839602437326292164347003553006674018873355022456378855960723762335263025213785969289628808915361435088404745969395473471308638753720985037603325766487899021747959003749576304361080876081180256817357599230737423765472213478523105963613223328147340870206141120091830651071312341081600485947037812574033541715155363063587215773177006880205446968135712700983404956076757901354312537387613290421868876962719843452063899286830975043073670553481830114995164805952094459762518109275325584093195804684679693957717244245892160448109002626686778813205726231024848165846039798547643951012156324412316625380110676033201501671462699322799348845643093481442216394797954727076309236564308038788731866817970158991337203297551216041732736925083457478294147624250513809667679156267130444164004068966003013379806853799534538215307563805551091675457726092607226506776679643907143549524275691776150443223431038331695772163790039772260772089023222637876563359132823836166498626256029584383882734991723460214218015316511050560465377389698796999835562167921171113172672087565734290604707972124804405398973422372880902066998669333501121330539501105519802852203808645188369913743410684667712742919230166622176498124025608384354149395229955902518478034978095423028055754989409738891164898977415740593410566837056262679133502581152565915503597787480141420863485284061874641575875362950088103659472326565445213435067565883584911925725910771766510541735655610242154494033869641430144776258771987789402227247554411965589386547626750585625671829499166371456457170924321391653156800265405025051044207011203984166668436181314656088321679766726937056178062013941204163097563716540845934340212596243222197519874537984554565173840814090211406597261688840322902904879218115109484308966110396379956111293711473126253889594936960566701445342433888256199159207676070396240696424770303813729079972168245426635702984793487401647943728474902495149094137194810124378112279395637623460079810706179196430214782871031912347725607614996063884158360710583849750744422440434063024607621601420246671959540684348722848483571747265808486573880252735304749350316479749902707036909667818119260147432488635845608853718847500312857534208150036473759472470938224628426154067275651260623375445659712527638523519936274947289139486207899214173655848209539603238619073497987850221831085094274571228305724580456458496868312524699776239722107848074549418539303485066664321794133256116592822603485029555911948274261509048077277192312404091742734636183115223385331613968691211402184831705728144016906321397741187011297773547469519529061201888409284320659457063496044722042804077871715620877131101772768999669461957255784703489160160485958610893670513959012526779588765526992278247284478860774430766778466523374034490003539238822109748897179984924765358271586131844465570450888264819290076118463723279051150953554457749440344767183529154373296516143324952657699758538627908268322849019526192090936318029929132129856960063006751626407016187267391997599052714222838311272582737710148888442069447808165213140776141720329145598670252344040339510421088575593361776451579936152739049765817378655913850980677270923094595817234644350700320413504636288507979768449209758816678875642149605846197242554157830168603289660616434076885253131959766317808387293763467256274284666857265247226443494857310231123953930613488190444813218227399476243472775022609072252445658761974281742259738756255034588312338844790987702211083537682841562804877171925622581937028652388272714747801651259065644171526146669587436929925277609540250991862543381958782900301406124504236827398981729013919829425049841415080100361995813609226019787050131761640903375533705567691332997902695449440718708188338346534918791007229744321315007019389903335448419262834456438959871571294885796413104965747238904489114798177404749263444130506459759948396729936913584585953045657888604315608607120483508294744198446743323924466984559545455729083258120572565904895092213885817202756090640957658734412987438636001052348321661321571619324544377143056374053173406528809686608844518277031112791781961394296365187797825116610504219584149707088104972526465760420971502247599773085762559448973558005437723992231088425841532264131386811092734327834064797577710190637211984635457153823536147466813556868670148202759327279303383849651158924544778543895068455394977455978071390681337546637988653120908524088377561855016732250909544442177762005400637358715061613232966420026752595022622950910735284125107025048949351281231560057355480102837687756049354899950795169942271035098093057584307260480926570246821636204262646446261551134506105974902516307431616737425196600926051439753011799306188809592051196969208124526730320666219081505718084273000383675707157786668923440491355291199084721585689504762195538407484833714960155503657892842282922485215959177713263411702917600445466830433235620486940732716619441843612542412452879731192138961644963058044847921222195483985257164826461616379183479214859254565115179677206439574256908781402238912320836160411021488146296383295135043312535665714354377580934128548701988252192154895301875219888778067437992151635724941925343364812370689451613806404277642713783577871411954338096235369291944275820242700314572497055107368555689908696070335451247746467821966605375849828450932044299245305564707074854826608305124546743726019252903198463640606729304696266890860103079358983153873765417370130542684073364483905751327442744135415111737316406031157878166670802455071551365796336449807827473119966634986413173823777588151578518976451601197110869470364669188011230365940076799843287987038313705776212537605113137251088437130741329464997504171667989747557300368022662109352690565534104717563785466976893271459795482771078413303241686456778908318885021852318379560336450651241384244165799157409553649333012293209652562248640985402832685320125636189178640341949012431254643932713751076745021535872078466168454008405361777001530264049973999130950843932138314715822492893957660986899875973637461124748633086239929791588577628236600516492730367350354234075552811213292426070872899228310206444642603213798023065260502918562188414933917443003681182196159978578031258656608976992169700585800797109400377386985747988036578457570197916943963555730803237642472495482640223604896992705779224003431081912090178826804902983999678186164762596561595283025491597981945882073442125541985590054829311153640554497330882736961650738309330616941609674074407403662832881502818575644909178191648776081624006484547135407993944998853697065884984681344536529722161733036888776333450852547679546785650852443838739030032790128965376532774339386557373071352404085779180540828011939800563707409644968209463881990583871473715767637454123144053335252214914321465446588721136336699835547786932705629158797571010921981206915714688769627289348745623788681329924613819772236260672159566997577398628869579285475872661773956606771776995165860857876325965083625736888292463049779344688511249350761977423988783754078652469462299190347739489514040481354331141804094022476127913165199700666816914952830651026162152371246887091260597999136317977156250183683473242822090673250598241016299640332843892800140666715349962176626957481688780569839701921005258953978250807926514403330338718428479654592183006421580586248660277777547771707680406001401456176411664647634273108044131350753253866770033290552541710490477472353859566069280321459508973761048378912981795694587659838094848345027490434337247875507035204860092284256530224832587092020348685956976418939520706858230077407821974882946704151415009587283428936421695300289051178734764792091038910668222596868004016142510149426262138616327951242564319303026208300888984454514016442086674265166497801438939347925881304989312354514180083444879190957655055106574867486581758472235530955241459491405750226078200798152312115245042247178534518697877012112440820782059423308229217865421825704920759032948724141160990124214158198920692366982008771144596662828045274935769871155662478562115970375614403013484420696165554602043074375055476776020274575842317121217511453502130748344690868470825461366923972322131707344559943148655012669634298327292167959481490349995688576773691491555573994443465155025757009378391946207115684183548850721495712527725766446548215566135751038421366984297183018599888096231792138568747581611578737485201810474474087432624746320950820999726861102558409409361258565632867861362099959581591779410939572109605406710068838902471984625838167067380349538636234439601083447440985705903847256934338809775023665464583160380105419089965057587237701738301902789845763158887441194101383322589812450323907416696948074818139927382856807979202671052069963351708063257762585622438925613771757924026376515556015340626884157863278610851993509542471039880528759428365328078797081255001386844971081193483869309980913548342448820178472601131722794955606021169278525027871859475886694107217648492159946666375936401382827329067446411435113696448129414889594808354193050882569996629453609920229549363244686981399860612128067665367197789755803860733740243875365383130903124448379712417496070335865632598927652051343581336689002101859891581035511841709768577024649111143394613220567742309574067772446553993981211515084334852735153830406662322525230301822693751010923570152971371289420525426244741825918061883431351846507606717458387490057255285953692657573336394831021878416374220472698938799915049947198075176262649240582894389125464270528925862875785087452038293608587776953139111954239575153275303492585341083829302301760737986197680897796388484127287771457047846657262716058917947777912601478001981018114946339390736365090126525965605379895169510403994671031747618200784808045688930889391550473028804233082130012256915773261829156730764895661331386116067444319205388829867540671743885634940530387186500651557544526543825474888779421506473262610343154868803922084818768536510419639046172972175375296377062167009162682108184772264868316787518103755047782865253303923253986188430508299527822204562605257235524023917707725255532715169957901213765531516092660535292289706330374919861509363124006590660660948562113216517259395241026384026561645362871507327687475451462483530028192157756152654887527948408495980744487339966481696234355174989123929398439972792869942426698425910334214322051501480044300584675727362003606258564164941114728945146782573403817767630765586556626706785690074603937022795212201966351794285048893747765924753757353187056005919773154709278410896584959714438897100029712290579698174437779772185786525761481462304971618482472684138479373420080014952284977163501571043301818856930838316062225550736405268193117262946550377984131293552479727998900501397785734023240717591385345860776784014745123394571859292764763803150949966363144425462463487583918505218771966474736874662958129763982215177409560536106243180468007618046420051572843333721975905776599324836280123154223668904321039445026484706158609914267088038012677408184827075073417130494118520214953314897170062506977353612399817833928999502468521276903406109070791417608250168342786857561623957690667037936137707457298969991136796461496324573131975427247107359631119668152207144192223573364111392235236808309345379181580361997111225082937865893458354021861022049584539093127058345065939121092782695983454343177132918836132991022656267330730647807743490786311486857116378247303988542760479571622203433982756884646393232363718691928948167670241739526588701492193751485051268859757992666302418070646535258939846618946221181916877045284027881370673868301382337782036397952728116495037206405260364058217256784417269540527677628109158679239835136778728300489293705722789767310068777328750193433233760048415918459571485653497320231883894201023721681292215165088273847422941478746994971453618627357363410934348740337610891128979898501742546677968267242041266696835650624819779234920008276253664169107597173431719211077434036553210330038002921092998011852106146417433756212867021156658334349846591852053373796073336711702441938962685689468320848320762228792747257440326940304059071440061562767091417409109030962095499516624443624389054253176054444463448937138776587018332799096543851853664355281624961204509626528075928195790748391257630605937758064051415463343634802642336994883250041905879782634445478402161511590745030767611522324609279999119954089418380023442282416985912335793577768609698715775485698765881997431410705960008301216447854410675278250832401111037026648245215711814325481062941813201488561199046938116145690016262583578234348306459466076431853984769746316926378864481883772283328251554772576888716363534030060379154380809415560989244851133420323575037385105155018592946744146194269762434641910506820832590665962289135671450709718694273378670632981881983382142796751070062063611142923042391177941906557532709174414839700894144411230985078866816267413894722244831687480601431162437936404392800785409130416944001559653594540189712533615211775798295173947816171395044161594277318436712074848932221483303931166499549952100075032202325725790515638508015025030170930902292720806969736559162557971798416458094802648713968056748366349941961296771240875685959722260548189923473757626282262310516237103136670493192955088161501338666114447887825674306468124561972669541041633051096475120652949506881551853049248088904627503645918601771846730503950015020452544699514389203459868524284139331006906715897414575698719476642751210317483243600202161506955341419510076871053254836286610144891232158658991537713537552539805625442433252291041209820698980281179839531151656390420896039748419698903518806401770152274215663300441643326861787415461312663998215708161934913003712119937423949322914692509920498131596412692199123863651868262471613352793570466036330802699883804607285425633482402469570850029770385866792070264405449532063579654401780821907774093045449723475081733718748405709777529672244009367202660660613278176155131657800858148970763206505250646234770460269942724565999433665973711245059737278652513872722674148539250985402784767912156130406093591363426132697060359161898726977470748907091181929082764468486144422575127968571435790016811802942393314014036824342129176879161273454952645599447953224316046621990113294471583198012414546395451151944731296169251532700387103410650851648826861449347103579783111149583361044126515907567335271873864690269831229199747103055869257867605511087965407800295213864104395621498574694954793698544586219806239743553448581124715466133814229576316236708056174904875329093965175340881094470474088259815930434458407065622265476193263189016153191032470899042361828789935570015149521654633576302217210307306432344298058513756125168069716186322314311539135723355791639784461618754373330699694480805418055748421208721971527131127497552208281429579443165411994633208131002886433526148939164213943278242833124756805051965062685490330445507295342415127432978469596850122501312327876108124892295293692719169808546373714512223344659220824469277229485812807529343685644625268766972690784588268153042821433570471482698244526648492365670937177166009412576887602782740438914708293939487038735651851418889905035239647165176805183174937702556493804365825281438479303355720829720027996418408859798278878662990611449172908557496165247457400737821297706360966650098427361127340142695220303086976120305280890373784645979605290850078859439008240460265760790997197767436956658568315779479788398262039547057101237310866057497148533947557121081387380214526629444308386613842636025100191634713336554876933316351133280331341302946493091297043420824229529299146175049421550560767596843876185266867637553297395616928692716021431240452603488993095927935287108496892897096944509072585182817324852092415896392292395752684289513621514489707256510683390328899825234651089789662988060673082582786789184262396407487090363586084201770377913862138916162091997814470482275497552229940674943536588320306083988480369483015392122863801282564643192735982931542903136379154684329095341941093139840783806772801490626862545531560614833828715272351602759505177462481601139432857528682257023457117252623725131335784031524272522303031135049613139568058465037365548564773620504727943839670730460845414080642405256403070460373905907472372614377703691799333653885896450213452027424469391090582959839173723634092387549428286554129180991372898040766885174610426308677905314847651929008846445297673376601551314018876066482028691599609157004526361017825611385984810748734429885382438355502451716254288959144902392009289674168785680712854867602920631425756312682152097586313617122029520492514118083439137755790449397046691430409830948814467287299753029728220267435233760498602855660491203295375104212740883559751064538199216769496206974542214349245077397916856337477716965305561068093644440878744521078092907333636243131639429268252425922199106551203236664553513515201479013991608750416571330172663652884120517478126605481244343231410778118945360773266312698487185107195672370297934405468671099384008671820704679842040638177922186735463214473503288964678419337700399714848885195860109303593252179965798512765681643924677298574580160003773995505484771538978832201762734438256358675825192892126749871527621743762678457994585176397614829215769409079751279518421509989654984884758844018318596552133361736275413546035194715758287209747881872391328321973129265392790935560246934647063807953645198393378671893386227134845190215244963653682300367874305429336983432052171418647900168432105241145758874706364269579242608662766878588526801794643038726314412749144489025850921378431145074468940242328332111931070554905420687425614737586564617549456973575446464886795664731886171771906435872509199968462898839464883676423221989022802022709309264750108882401753133799025462154674487097516477024000527234280657411864752108501379108392453372751935100148233090148203023473403350637743670086537943779972121202105139970604395933337601031051886774487376509725904728656415134090679240917079251095923562115859535488640865475780203133171121804034152951206528499019699625488013365642555537194314057404814054837338686528348619046333421667579974032752005128450205395774034569230441399313286584191419547345518537230799601333489557219370683313411181867160778133991952233413170366657161272200987837947728178135747408986534817495052233502279524475747383049026613807674473951039401456863462067719795616457123160967708069406820672234733081380599704235299058090651995502491582606285789615049914781624825599680308226695292074439647743237968970486971308254653830220472271248735450377059111359368209945427860514517534942749124088366198773023469235781430211738994607847218771963000154471851570695735143458349429293991238442538666762014054531704592140826597463566145874525072484495463706445856514552271179968348235324803499571463691850183803400236396584326834451549285629765496871846400576837652054879371876280460901625979180758626209267110484801838178646870343360867962512210321008706042632896534983192066000938454255580046122894914162347971539294562179510640294445835734027781429909650019273678090455155068323612275899523720433372860203514322337834913979141591052354063832660265910051961969744192971442157619084613599997266423671712098471652771280533592430982935051384530030931041897404620417772061745073914503848340280631284645084054060675277368227530704800751726032887723537662869164215451134470158692065283077226874227280894942638019934343284745158268271551366240019796029813795177675115841638833680157582795661024621205282662902974639953258467156721692733998624084885925660560799024952151138780648367835850231063685207231216369159998444991475600874287493191433860466334070237684243683024023930467440454787033001697173437200602347530644232734519881674409079743472658460166165339988779798458058763820063433562339596869914529173073091472157792906501287775062494731452813444621769402419792324272837246351637308163980127776020186156480242851224581789154105493564444158420166961909893861158821223852920486143779256189903407151032512658619012094734487866473434055961533697040413226262864102400726423434373328908551088180942919646891773947327219072258279646387394842304477545824710107469711840762889706003586097435241720786988094315612035338164065836781700189278113729422834582847635528239818638617095786659170808178145215626864433009270910217066584900185462599240621766775430843636569973417353720798607924991862231603447305431350929550062939880731025381277559284623825361857154707274745138858249162861901132948241511536249186815401758564557138185240589878709666111160467174411615566281741275766514993135133878764724783602781535968175192963725092450435502835305719726037469035850211756187932903270644780730138806770501571839556425865782787409343569660760491325249159615149178823755191357426642547161966004409342960099147545243937695104112625347068038631655107514662328881162125920876479125447536610698506484512601863631524908981520793574008566135317044125316708980808975620666992366164955365969230540800189995267114283108762328603132621590132358551314997346359452093845376531689905441706689397550245912088836946620510031945547039495593379934393785227773664132811390358550189030077956682991784462480066137125215556230656033856572668164568646420829972923255943712004813210793941466198002844388988707423212253077676808320599968546147467695559597972178480272316636138889242551980075105303490684249728582201086542093498455075323732323380763758360306283982386615783468702560837176868784778308041786759357317321759810841392677718384491928021975559889402241778755584512515263528849736405893937909022730656816982126101593086272743202453328089609934839726037444393502982116432884699626910054896793595277135033759997305272473874024769817832637897215367300378939096492242013586646710991954501572253026799204474580112316999120034424533442011525764773371219039340080377226155008209385311181652180796507276199210020149657662413850450573853751852658077182448856228112471203118515941114629913353911697938601442302276430738880287585042956559956828454795760185346092149752709080727119100515053400242992238896159221483867465870538447153478366869271228517982984433614027962010884455541279074379609726003097990974824376806225981336443102470862180320593035388151735370513247612418120658012043713244405459073513981727967651012920787815400762668662979389909319835084712759719625564395583617711784901464458571542549551625020248991626674348893709316500736865554443610762551396346869554499175916475882966143241150744712266483623726474712732460336933521368554355298078134048735897396917147394496497719537657161600183583253335756076185273166599470648137774751927502727002138756454320610506876953278851190692876480471200168451151876386765047619459869894921344912605083652088624379273200515250007825203249027962911424218476491607669126981800085791415754478225842604736948099964617567644131643410080231197462488586965089679082288018003855552531003159179108628939256779039596302618124908661774851882832488122062338531335511280657062037503532453876700516793564456927580576271373520412643239368376038494704779821404062794658198160804532726104787201697990373056117572028280245830834113693569367156210921554112244613431824126687333070947440059061475709828321681381826990439121061832660245096857006919934532061235417422176964617514203052952432554299980802705643897383839117192035630924598633207362903648713138672317519276641307059393883678622687867906502663271301517399288459400700175102056944410769742205996811565926307547071561142146372655625318615420063795871087037526500399604656699230662408369570479854366476711899347544040693394290359975566810744462721859479210151110979098817002327344693439943602494579349227204877986750055104530980445871017557228095167550696183327530410400434437368351286175314627155216919678090990167959298149411439611964731493244534811040724987575521057402712947269937881005584648995975239056949935386347442995996161116105849843701882130031667533296187454609078287252227527148578039404884987297086518631294903914911872462179245509228200139922742577953912766728244112162265448628381073792352520917200905380096654834098714379104415018912225187642592989129047380620913912298715915526056656289591510559288337809603656364654443166028213727205519385838986870191498963795666606179937886366703672520681726603256078660768974793413709714415153517095730762978335588611982434389216433211277539102709220644449441763631717594391989173316115241033291151176427164693617812509700222724962530785564425503530039588843880435953161070573499362415515771553172724180547415279311987704568905318454578883520317430669509663679789745414355827948208115749141436433701864643005859263458442963901214911388260442298274981048518818648245535812086267978540867425522275135906744037854258469613463451271173585499453700717813770316517168032906347894389777276764967146131163366517237146969483592716314948237374210162232442906520218139500903944225912441711598416431098700945226678234987607776675729307129392164037293257169225688119723739039648244378844707494890429686493118063854203155663398941579751311905221701613126501955506934703441277888894934452563908579860813414897757945602236235571376154979290128142422213594448728748399495262390269908816054948530612297224533378207545689133272771798302850319683034568143868166982545131058077478163983786469719870313091591785460192209318830765746354169695626667360894842303351272434755396023413108242797323689551033658530238524370918981686768832534468211516306387246842979136946407739747634604313151855139791150258181012045870805018110958348009249280957110828957507816226479338568980192015835824068832940912849423339202627184347701579253477869130789686530005704480884976340295741221806686152949268912323113321864679341400448226575790266880625257194906245333171586225967479395393264172313623038726459106598937706822249689398048110769697204046171962931951134219774516913397751135173692213322780716205401071055845872479861193966657213160251425623147403566465294600932017450065959198470354205369873467098196241837407625830101564562747153023153202291497757667269009029295700374629579806416080178468440374974729613284118469102355732262673005668080488977289084245704956822019846980669430184434902250081921270283283913951631541824395737201252036787277847147033994955317485774464706018101480557395894652220937565867408249296811582886966067263190525881222111012096983804396536403860448584187708093239520009944925124992645075630071196534245502813682278254153076224618971316158265627592317295019728636181128187152770644961893110904675772554861342922094937329720860353996227879077329869889337333817576613390872776251879915893080391056580234467510897245008300359982903751466313021238126797441588016405724525977463444860721188346018233600641975930741794314556653047421929871986567800459964309782494932904759185961280895973714138001597267597208560044140208839337373813996727919264239570766922466325682620779596621075227692016167575439540393045860602509872478567641547730898330528149604334287561273258031360029214213269043432894857631507613583335496287132774925731044863693421962274318426900753663745532976755088381499831906419861446555587313550688369078548035165036409803013108637101056631526439540203264071973470596927668253414505366760499029411304081239455172958372095286231778665311687612753153583193681140286408697730196599398001985868584852453190503190482455399320172764084247027813725044335104073352161052403997782120212198907196708232927612959765662715897933374695552070206984014162846872816339013246738342291823188787893032479174264791553615180280289028532599120360379092297571530018362097990456749127064268318288767530080251705698263233559967233361890078352873695787304193712874740890101161874006416604598254847210203314772752449260956063336712337418677846004894452607468541377656731154989696993138171111304288086535121310131590000235183891085396678905409061853955912171910750260760464387111766526915384661096485886806634886575602581467330583271376399392446683993750375712073703683091720393953969615556033083212641232935109056270797290140772027209070036194161198857135421462891859209003963482338599712180093435798415090988971887347306429572005240297140490999787589099880825873366670811645718750225248851629367732606547989037461092389087764799633715524805996802020179506659208188882824676706067245945393657160130939659454683999467949611890865825712803321150893103612227070067914730122043395637181917414947884772198232642873765028854966937440720744612515470341066852843329488817622614130119406452475637088009860109918464088106322674048284828197091428618773407240102246646768038278541213157506978701668257410626213751852595452200711005943213536555610758204973445771909687588801508402096446327292702176456158322310731915381828619521234700221575896942047556374942014836480285806580872152821798570421318767117266523776571283255456247361673150355678813598688503536224741321352633309684667735828700657436104033874997630965679645392420896210232143895789110469340545382971311701974309695303670050727690073217917012081145927791645218809639653168116428467774476051374056000495133715078335966414444528106371945293287940583826894048658618383354857723684931846701953114645747330768728606035355252359358015888257889775891398430478764095487068196750218723672335648044263662863777030896752790006794905503878473298181341863850428179225197185938155988598766047408262003043025484210386639826018297976817146686287105294729220412339935705641125032038361585557662313905956165750274828380247768379306103899562731242141030272324790717940832439695460503843078026625912256360912362845111277585213250891007221614191566223625060921694984075488968451658836695389885081210207928746944050623690992405368727799891044706808802380340090035661211503931472763112353468830641793681461956947593826358635552186881346552886833759590322561094115298566710761542777992112351540823141273329838413671755515653652249889529361451502706514274639036293472145460876980973750310893227147420485997894812900321666606794618677498424382568675946134430037512598828928130741919075370466122759044737521967495170717650202960607973323922688265374917908423945627864940419839948950361994833626550306538374002744477079128015667789651275361433783494017746351748227262208415078588161391371095149237184535669622078159477120801144913870080709754911408198912602445639339105187750825906710696333028422830444310385382994986677399887666410926014689598093706374368292836190599121091179566749064323610591003639800210651589538395552297259048043503894527118278050232179619128110149659968800729837940132068656833757286038301461461563213507692195726240080732538075807501585408949220924172934842933168450174709384358262443888763467123229923567883598303873744421522970274662370007899278337252521931350363455920793302205909468758506602435288059834721494311063764936641416847233391518806640916153231769036261771204703166314549755048585383704217577589203147875985750785657742400817041194288917548423349171100662810529535634831704769209529375532489091930197452378578522115982655965888878242830846594799536870666173625761114016698928368836912109006439263485532849140775219343190428377253029513255335086461222499540906872229102127707349403222326155278001570152804132038602015217716315908951667458773186406293843234345781616214087536327530662207093340659028864051759734155870932216908045309709123804627963908695058257116228846173088469665734127668152076172958308619933973434159967298314993407992624168478541029793343294206613490260408775157103593069846918463099722044718059119869966403831923655089833089726669963713895786119707238708541525822835542388951619693883749208943667015568715759677403425298640868396227141080544340520918732965334501583742088443008629442169662750372963748359932134885871225094020469662278334670624803910544972013648273898188872182149007139596897803630599726649719795730845709978992484054143035863080809382372433439060209716600832429767415618081636274804930529880515916309755456638099955238863046507234594727357099773128454411156490355855017842182884383015517499462126192633454138634357358093527069305737492363974933848173928704925019820386273537345997322868052966439522575969076095257571465275109395898028534232116003345772470629932407246476481705405795000227334769324795542001493024084067158418016512605271581231321918175927749009873368393023240522030611414896631928250129576900706943072912998239386417025879114250153418062700951916436521791245940058751209239098640127721992630276096650113827904125314733124292412475528026186456081568746215086952775292638498461683206032932597804190802709391815773838109708029043648874866297167462038861168695976050204529052171949285773769053614876624934895185035510129320162496773163521232680195197129814603505745563883071849087076758823892775064414994832792128562088311827830953058679482535326208744514044615069045612485220688951982246185248844352967016220550625498432973835334589651554015592983719516564528109505088158513253094982141914128972921208810747951985109534288561007231046426143889303677079557048090012101255311360194052355379845016275676066539404596894149620451072854972255840581908412607615369558814522140758291022998551143283235325631622919451519549523298914574640970320582792343834602085559147492530203615105519955764019126594866511977639059567782660720180227353192842225671793612882723734468561505217108111639339554626969960251692763568894928629074200505005044915643378813280153648978029796585504504186636582356394143459669352084655327643520379699466239466970642755791813953604113718846153728292611337581498476234694996436242448526705711609550844062588600015022350215850524503578273002606083834819301039966385346159770244054325614969366856428956654977727750716631633853799542915851300662236756258536606652747293666008946697893677120226108549240596219478006786269212930010977326381146569873588388976650662270237217913076405210897795250602697752991939909486706780646514284246213529575831491401276183129237782500865941401462138176616638504951262367492208849856486675018875549049076025825819205443636721683621316545264528341356663151307203878966600810138140055178592220558467169462885928313510683505735820507513095410958769006347947000122951910543021067069985565117367793747949427816945397829900310880869295397943697217504031435769808543915611675492175569712484010017226413279670777804947915463200477940595970350654308891922535579247960842661539694577271136409380577787740056640846457976434183805613901145597586096636974204368595197223100050634976462354359925991158937672838109281016758648770410628776243461007167499568468615237984103471097944453078759728849554010779021675635999040084182933756322740721533813348707023863094892978410245631946308511289874601427741681930918741849065903268649549368215214372766529259351766266716564483495107602014673572143915571677198216692169906107198348058361075508210298630427460024747508512835724751242970868340602058472253196754586143723354434174306178653642470885078522796062212976258048767940916481820247596441670174111035151253087774465392538124892708882183360685235994041191872716279315930589780165658587372265131100472567210123563131963109757664429616921962999666798374060075465476545027304374676792438582681708785652667368559896704436569623671310794810566767245107099203320381193019564966121486499004643689970728886957582385940816364215605034766095361068322105825522961443012395323679317268390892400177842704140282697861403548988640423949912417867942072124881850242924783690245015430502971117233462350585377261765685908880278610938786359346755298713393218892820395486867999170857207585017879646705083349733543319228106102327830330785001789522641540177928885692230338614874801781994449565492212274582467325504855224837104522154621598230203427505089721498372187348619903944372559865458277510163518913707777238563180077463458732688132437802415197810390142370787717350483557747526133125039327508780228452822925447082835398041837381077246550486037616128832397751615666704975834094287142729538249790044320663821289109200324351792084850188220182428918113592096174938401025687829475914741095543241698073973825231379497453029163895909862791879786895610547654321255223136582778193358117916988032388851611207838698156938329206201371896581658765495089270649738343021069770685801913588247198758530348370937181409020039424357799664290021326244106578534232426406385413722808886659398436133250276144231748803878484571615833054601360521822665108917464871457214458860793192281963908110071810432525554616119454332203575512464011727360607241048260508099765049402641414926885855227627860402017736233615550610937839509538971639755242889645263055992333766136996578541527686498526774411079580576391665472713976170142826318607873399389783660351251033545491671243796035931660019105395771847523573093069998946396441668162295543757459110816150063888865039615632853979427248957904486409523941441131355304236793316807819237459077330430299468266283755544197219866580141248566939957792904933963228816112025750156890990146591209231559960917623285421336693582065563966118397184636015210898626096549881545190433017911388601424652884376659353350283436616533653312458000868410246826980434199294777588145745715286879329356431038564060875650542879309305611632576304761545964540147076365039317067452430125557872061771108210066582022681717351857232660746681672176889915112114084384848505082048968246697349124232191168045374151968104908887570905752564419709801814060796616961133754221484160699730714561822872057574490664419958179319626850807898585022946403602877354206734128309855927473978565251086426860318617312215600894103028048040176544297530321688905221542806232798471203305101664717381589019693602330880670299987920162326338861561559171054384258039166708419114544097295992161856246360608844242428225791709066195305063542181244346085224958667218916495990331757119488375691359633896827592278574405718023578105795957223959349928036929901889631902582463310568449536523098226764809417864833637339485484975600466267581372268594992038634355800948769501916488559544403992560805577486082194712608830379374852829363409136870132175740403327450255129046966853669535492934786021420394041380642818658396675874895947883588074786362779962297540943775606851967751526820002856021117451527075424444522139541172267240606010039967599303199825006905698303979490838186535437741265716526956417644937399439581873523902543960300806755785223794478737639671335323575037735468978271991063305946517525980427238414416723120828827320884909890633806189621728686190552229624201588413474150510078922271851806792674845154153328069222274247300381930970045630131861635229793947012353482660960838068303302017834727879515566801287302026032961348332036333176934366299271814703187685572624745874135510595594427833514045293797954766474171898734833178354014411350153639446381427325822609772867779151945309303199524657441800894834568671053028101393071333776612879283735745384576351226949931453426299442312755618742443856461818747898826640327142689928609289544773276998101477501089002391597673160390015537334205730959061107324554433590269597903738446386433672832901106097171191896827073519932611383671279341563354972277730066899249060519223706877423981702940916966919884834492939349381105986429529345083281204581606019834164272954943085369708748520257402244068956413155089973541968134165918203463729741426569796390020879569316080448269476623776494885457750532789188010529778110188962398161286305425039545667639451382673391885223732189470485791276780062649127007538051890564858614077667586517442327125673273248949303892917264231690513639214586526884190549480976055753033597968381692078700438667219620847316012924885186042836087743852963915879570078395748465487780356468051864249164463568946421547627207250541857581008253135679005945686031068873277335764845965500088568622763069771090455994754921527726915844722543915913517857856436654920813845896140533103957065088158558554193942968286915668190619557479666353067931000753068279808550523683484185667016426552966571506060138618722138405466756082898706168337248851525415987492498930124515391206995117572027510308756756938133220407715148771323803406002018537382886860835466531826460246915998655247838723173002922962198727878217823656978627284632756790894297758289920154782391789078426552787045034697828377378421052273959069241790583892527689080709168882193398742758477110637372864093850938807687802244438671821326046032015932575917789577286169758826003993820777199229145638252756052020704509349688010192911059926090984781347183840069274820599725641292526826250509743939092831967440113921871666393614674633865444650515609881681080246662577531099922595156813677158504857447515774420351673141385411747433569128174860293847457458800485203966803168155617797576091843392638391287301157820608388614383632124412011199072964567356719449003889037615742839003911662858585079165157147615001884905841491375375509154551801476065720393640444485591044833965883788418044932475561251400231824445548047003034087215322048275776711999218995566383845301518753537618421311956258483294084600628290713273270848492903240561754724451179070420265480156668439001586998385268865892828875149805199031098309344115020108112351769016101028459765800479209617270326808805550564030343123616973945084797455507868835193232486193592185464454472491688357283381119330359493815391161878426605595962322132353459221740819326544103686208777700775538325221866088414209179335878365369018071389014671396261091741870139041501902091082605703715273917817976380042535267468366242122636672927958957479490422758449301485890381083485013062276345022381595559509984498134074580335304276207517821032012914844960341504533745716705271083635457288174784307531318988245468871849534294365380146498950481849147638605299209114046713716955027544534836301175581029743249025721055485052935334062668890976214978476747252042508650760434701283833017420377954516660033044622307230422900185153796439465385998346652211114774034046625733559282849122084112352847600767042439107544510210567158691239754250890321252323083285506210106687979358555374939906736558125743493031450090339225756534009789331078278902183790104658975835992925368546296479148560991915187586532197192023201884501767115065124385009898855781445649537963091623865445014763631162583205499852409518678369750203482244848935676963514484643572844389361815703509391505831244577915205997635548850515093616309919782707765269516497309498683765704720192688306817185036447943437329164726649019455720333024613805231079873258503763280765695350560422644698463000050662870169697764285095020174188033528719582965167240448145859077479341556692383143492197624696057657671027134035074529879276214492108645811655784356045808013248270091311972072145102367196855816073899508588255613647995339413142593796319226771264881548968879850513648063413549577765346442957344349298563664801579901450848675601376304922149001613367347601845638866805735252968364611348098328141116351191239556694011432239454413613051553087406320629626656217152825693311391450843543072844684708933339432534684409254359981221593345755644328248989843732598758020598687621208265694953173710592092295151638581895565788915540738149966761437854256030595375388327052412752368246983093484728152393314294325789096102777853951479369712803705508471131938054220609422856222394554249830468488048778099592130658157476573672535005251247697694087356931758365279403272052930888621236548795187452841585838638629046058777198658460672862902155430171534162291453509604865850171595747711023020620983256668363089461440903018045433344603647514366288402444547949750401330010326971406651934266473046494565753498233290952106068448257193493152345010897771343991107375471972452147443002922933266362813929938583931861930409320730738370672317493670872040911029991302279878124626117696982572599032297319099108779966743200402895987643330108119175688171100128300962906403780128591943820556259742083378001853044738002958133275934295137104622921244248140209053260080004893888843996748198788319774976649574115603220708028378174905540432972122554000600180716608379671464902866809579272978047332808450555692718268617712279582072515683693469007194522341912106915083374428666848738584322843294537940899185077394034528596231453976467909414594087010790175761957561001643949996439910390625293825002170316827117443915348090460614983930551690581315124840338151386564868158185705855408669366036423462494533945685962185593645411143715323274571774476918570168389859344457422606512569061443885669446352672506325657731406076391060607286460573282265381773327443324642664079313621764961519071536903069258773284512802427396070381355753540954102855007476576242220323636870852359155720525968254068926698294121436698255417907428899306554105400185978292326120706950709953386967985114215758375033557651535907792973844965807807028466862317491735947291471176728744509481144706708948469718828001401377237316557230536602780752314819161395123016224828911737505994527187620298090202091281550124273431745423379550268860886554234186920521360056168698644757549733277658907045616562225417671382864226500981535171323039963885289371209435365850946497625615668838480753707555712416907019322858270427402376392966654193650121962770635773514353019341153654611624404397713438256060725607705731883118719279639095764947161216707648516656398586015318794181520049309268368017203154708496152004686403954108952838423036396947273717271996716596740514503157387981751308514786556433139925238836415622439372185687369801168555740352583626223299167810387392133863680106533032528730818808383295081892718658807250401657490111741572140707318862022297025537431467168969179114373671477526501522520299827789221993625141554502941849029991296182835873791100756053586599050574107596880063765662118208495810695833263232045099363483866913533321089954610488111196860667189365882108918421859748543021028958089571634790882222321232005377607331810450975618995996896490859915236788012330053385690869298328253568615390725741470343095914205687887207938777947006282738609911742306856607448965577454647434270350937332071530135891603605436879887148264721632819226566272747585200423786536499097071057635262142579708023224559497117282913949366419125464229103049906008605579495277927228969588526808132984402628745504007186324706550328141565538959100361829634123691542882081578512269012848151785106320803321841531779415652182391154864465776287772571540314373085420396473370548773617678378946407808386808823385772585883099226947265530632964213094570279587186690373219582497190121986948770175186443338954694031898997341419602591529169821348678892371518281764274403733221576330116173494409171243377333100363998450713259949821399689052440109504927733937580789813454068633629913791942257479322974449429549155251433157864162801116525552227941897620143798595862776458153832230894200978172093283611694795819885666303084356249993842695884120345149408894516615567914231862929671972977709518191858010085484736209761033217143161357111930878772771669918002667299375163211254044732619435481158006898021679823201879466379708023881051299340774879568413516309767955751942718444008718547884985772307719658901354446957979078890477022682700149469128197325896353244651446447694021689619815451750016336715639670963171499814887465830268252082240255098198574623898765155408223925180448320886776311880605855616369896750890674580864341858175338694018829692880124315226170616173866308539991155780063454638834598849508305276375573103539288182889046755888511612661882743615581023591721901681306161641674284104896404269953442572094239240130716670957817669041419089206842319746078017235208612123225333856999778884169388145458589890902430978197540336000429484547176272764583111608362276885594421964480498279634481577411467999988338769989066465720166927490109613848624267139720437394768536378582659362908470369637131299040684386940413365522394927670628272229332162515013733809912117587692393221362554281719078897318852725738413595823578999840326464228444438677571270024281202380785957391243375851674381354845362033986526561959665933042300184357604398888169699219947271030580687731623457652104133226924244234659435511349897360958856805711538722051324054031847297510559090894907001468829373178524344329685063949051779297648998495599888813001143229878087804826696545229370194789720113371287089734493245369962450107593229411731938043452847204974827862648144887446294198822305103459872258232560607208523037770224340564622778834709706563869941599025010242792231565184559694776615596708975250810374843562859400927920522169983751335385733328562388229168467828241381640844098323481359699880570400526270826086000101196981910497708069533298283530324013990572049859385624781916093496071310290963181024569674013227040718462337959139623959368733460217417936923986514909439700844970158590597617124593425285639854605005701010196121262931195566548977487800777303801502822600646059757831947783826489965435623941695332927847539872543943267527740423847595722132016538391162128197533767100122815205132598628158946392913841203497173441910721733362760553107997265095821526101970166563520513320401453933940499143831237983762715062034039185965212296731570879538245992359192606477128785997693845415857384916683746556374021483305971458746715734101229327703021877987665882362156365000219386630292324633080527847227912310928602856666110893447652533245418424771835502871190586007511101831153407159106728594599834273796019755418418751137620695938984436227997950916826488295941916586203174884646744488988757191506592101219908853247808223103754016130458807643937203050058271674133084653415847127682965460489150133420392823156827198595934628791684307876986059372060732164731242404229128348866160085982220957618288227351592551777089723272359323944713063546714036698346103551316605838213447986743545515923693714909834113198702388026360263005378219695039409743057026516488275640382316628392971483677086879033090826314142628133454033744738646818499705950565742802015686155729065792399639541667647138016822754384953611603391034629358474562565593191106265353878556264712570592677927886516650199780030413726485795807560241704941916476120937307458610652794058005581539635394758657804962702729806857550713182830063560859245242057651386409559950206026246138845818925886773061060536635108241163256370192769889738858712743538766657702592000570273800363304980035607041691590382620513460946065659693604189764577717106885027201768461228603914532487517078108174463003789801051479270922756034248257834014736839578942223748595361334141775694770692776580210411592720311372067048793380006476025540043084929102681238253891677758413660779072423853180736836942926326870761465597105214804087787937970355622395326414456278556062191187398937191256235224070035234258355729284278562327506179543763542912188863026649476569729594479750546352970002022115012605453896159777496373155966435118440680211690119291099350822691535068181748249820660261710034967795416458733117539437658044309245745789547654440645856791772357014219327320024115527417751847134330374554882095099789749947932037100615898779540884647858110457920438979518611323959643536967585328872876893007756646728577422481421730511702795020624798681124944499168864363620813345367422608130510955370776820245514497321759851034676895596214035962849722426641191980151410517833800894535240809159944889710433044625789057102687387859153607845316874619678307129143638144773741679009438915351090396265249556683890873199510898370285353219241425716403904784869416694837416121493271333909802829933749999125543083580280635604539456669014606051490549534186474446351552250944789540219710323644060620612172836104692571097064399847647132972028720464050781564266453143860614566550637314929871033189238639302695471608717849162665698127125466105850009835636953851798424826264890611077026204890690857745121989904007507800888317529041841975577212026285061275645495573060151913692579321744338846232920728521427465091980810298129982162374535781437600115660786538190927858105784759476722491505857560287179650690723459801598561957682061686058795242630809744867052533965512217807809649891554301574059158137836997453436771548734700420584558298839745048021029148366557328368853438287385831410625885979873282304003831289756271325545104225454779975969694453410104565354859430801528319982472237161304097920501081602302205295895940990306525285835656342620624086446658349829105099141275791780781756231046809459963492071264259911898950753033043332411088365722981476504613762613768297391263619127600652042466967154385254061299066022977378990137503962381703839084681778379440772586704136928648804465432374896409319939316122456704803124893117168499970531558815089994614369891728372867536451966269269489538147934308411389574818517140642688733465991900898582733328589077887710351161608652073324609815252080223037575267900339446692995434700722909349463093234991889415866816567311710230062944422790751528550931052461219110656822343230078278040810054288572763883726635966614843826263327554366712904562567852514106544692050400721940706062104392426671457543161402995194215463562539371849969552863580935310467443849188775803471873094437273654562290000509231743203697735066053897021847156317546445688344716988472829096149027902227759444355310827976913693978177990780858740960735641632838766070720307273355926633070573303329830969645484737187078374367999627801911222893566631685473945746085511288242664337156649116663542317715646348594463724670490397730009799219352198853827774554556563388101087413932371248587542433042489524659883068884922731746013595887370450434913223939962685834191110056933229742952132727978010135735450885689816464672437753250025970341798552670553454422810866920281077747409062791536354596995428556794197501019985449567615087481220987912663850266225011708192888756078531620808522014288425460213648890413149868040180872600763258733986242664242007411497992785435014262827394502353145338570366446501480420162539924940102470767039736929571368405333076062478685964707164891861830590169435565646588136177122482330837691918138237440712612477118819419684851059748506481344265417221726591233613793628446285116437827327440603801617592490616176745951682208418683375230447185906077095019012465310779939401218608248189898351091499692000275480323675848315852385626228460617281067711607605103015194048100495118699222139132068484792517092632400033337318676665371261135207017067345666086494361513543727776794951216278383542913847359981728440356878678717084309370150282680376030940259472719230911330187324357141300691734746714023627511306001150493968021987219326505885470329285425758978451366662601226491790092827180466774639017667899033620574954527418527752802244132558933730206300311149797617796855114378586828335756943478409527367150875458881836136576945093260818218500704796168723655218399548174142594152259423141105945914186086220874484945264754600121756983800811021206887450097258108795362419934850148653039422727150156689221551608932461290969696209104540960652050623913086097514316996961543902363474840745954430691239901989074985279970448650912366141848718757142875056215199325422630554743674410859576760463693436423382219374630059081390887218363423731809749984677969787698065510241495237208050688668135789486559512752936067612014945416193214434318190634435652634418149456938398001246586689151594344322642808744407542128973496858725796855350440617128067683686860722526800362360095841584828384392338953661425274409830430656020936652675238623743952713848410082677348893675896354301963479978907960983298851497668476852753624870284548329371928234331862204327380238194145057062033692594206757237984461256514651301639223372627294435750767396180008540321321789723429544306406102449178189287966592650531399145978222247113289598282363882191331096358555998238616783256828000952872671794414543296741766337546918587609364074444920339676274235313110180250793632017691439340533575242902906202303685110620703498353209360660559382663432762264945196871241518144636893230242746156879914948223133547477228093183769836103591528283767354539018109293139170833673422846621422710204040816672084651430474394899845437624516648283020618888261150627143262587521871587884416075788391772035820443828656494703861103159396511336878630881066230352348675450165458904750159500957820771444978351698495649236377761157413041964853256559926422946502445400338131737272795766563391984870076298943271221902743828816767393903347462485866018729462505816735163101879653149493975039216785989475580360214276550387019472606101384419346709873278939533334409212616052947072951640549418978327159643794347877950030772448251449338293825425671124007203015186247748341799111218556853662754524694631628388574210430789555089574327465630481382849795150755943726683415857098105433389945777259732977995589703270031668490484503563876868649695705759271187537143477857560228233588097894180495998562281226521593888407973441537009092834129993456645579933191451570906635691380921000127204194717340675460756949097951484171380531682841241236909980712415078328489929889293081772602438311205386757305049746755532992074513134346140375620420044617650738874353512024627644383643703406712881646521889725014481102248382663151187985021386509185125868288040225695264676711092671064585720896054657844674746752664509386827186334140089494289472840176521659313344248316556325296857655859456274524222115887531936646530988064944233280058721190766588400292145589648192196341018280914353966535399671153765517872174026873512390037858193471464619466367299229076087984527597436729065382464579518060797449794837085469701577071271215618057794975187155655957144713045381004132305028155772688728138330804146878319782801318986634844406786833632374436141659914909803337276029019957087339314763099160067233668784915761658967529886314050828017310001225305076242123024767146059180101121564408138379463438879967848087271047303788821688316434180619717556922414973928168856385155019652954746606668620519146118767878448444833155937514775888214403135718651906652254317770845798468619822826291896122207624459937433260276355762080518526653138995020248279227560665200033013232953964676612565531356401833800582048784470946401675693619914950432142545680126809605694843398564531847485829573928771411411077691231543221026439736548584201096829494392440766395753623734630142063136276262699514645642461023255620009299597625906924801006940510190024645830951702591346227597367146784826907611876561446631713312075488129492762684645353584900425878032180877790891528427255830789064159009383208323322461358212631590781507475873744101344515996996854469633020991838895256605808223122966252339326715388190505653574357523441497759180860890636574688660154824505632670927963293448991214158390229452504817099464157468197904777747400353308140490437725954020317974319241800961013260928229701629276335535837723024519209102788630999085328617700570324231914763853645970158234405141947475563480786084345347451625431158443222644889793733330818855206659393722824486377083628857175896144652762897370943034046624716999678789747528594194998341440207641876945915196963352065662083383985486966867554548836377763108313975560686656146960378948849575267499580521532128238442194520549624631491281109674142734215617472341514143788623247398258130246402118676503676429170215612275046833276924685624152530758757192393147154752544676169659895821687085001509508668933137179150181816427621265096162927469384497520710269491001355936784490547061716337308898460373005389027748648048316793685903782904320859729190467056753404930897877058370881049738629153922625052594140134759711646047546582577913550839559844581307300504792719056581618405736185134708515543653403751835900728390318458942791589370847083454072745030424992507463758716216580272504592024864273229788430948812904499044134354983357340909118105450632053156998112388544625204053218508930286276614283997594551236549926872236225491589214128110168871997809925173959976083907629525306519493110938916691449972748529525323489393830025014553279980135877387932236367162999872639049089248189188524774517614104677485425594310031939452030692132011037649770180084291404620714792919500860250817958339163857522374305767196103379235827990066330610916454537970371523002105768363523790675907791101178187820907086335392495349113642224834463510316565142405731691438243988906475036223074915687312811207474096094789063494931580109845828082460272364388086435140263742346706970427019049692863661177991413243722134106385334672369835369831976760254362899889887336117135783633672083832186107835982367257233291233256012804235399856669587038507457755335529221513052725721482914238311637851548318541187617393802225667026225632780592356345654637899760835409356601899894243875419179159151844622100849829251570742199319632286202376951098181270014875647702049303490838808276525564200732628677606481422506691413675835363891642095005824965967577080521647413129444060801865506370299419596999639827447905721769944076942109433659476326364473350380423365378081940580459854176066478140295804585871163651481440181944313167263013137518973382675058154295978108430847002257195555956817719115229399882095959490582287224880056389235000054692498766396462170926272725156597616971129668541823468151579893742939641959711110194296202705658192191360823447295168292698868272118622479012770064154561042831533389267935355035193904423167897618762849574243797641649066885287515579121773850543791088795601859664493421622898231222832570016649575323045959713807689546255225091674266564879515920019445564783203606164427570584480882285125807755285036537513476660471631911391516957313693033764430259011473692877121621284315930127583880225121586260396862170461586246262703941517554146965019583771753584472588696943530562579375281257709689398061277463232919436280546277384547813463972005871156114274883091341490205257354886284842455569223346519384667704444921089797875858458916651220243552502406627054296883098360706829472600137917100242136922586405257800511418978607002845164842708139029317373555488223435388031986838319224798944281087637947703223049345654667362293740747216253035963357319806047444370302911151508289486819376591525458520653364842609914515455134626248092529248981798803376626975698459273737197832171543427023559994082785596410171206066301359894942821551121428865677552851868665794420132557307755442314932869061101432725704118334444483926858669005431108749718603350941755318238262731871173531243337026528244384501844869644760970446887401221001155917569390656490709123452148063245419103805768967558898998985426906461212586323049523219736429253546188539869097161393610513943081721486509656133028356333025732116960632292368008931920356102982716157911241972603739377391043855506768020741464539531729021138686313350637237063705962344186714330661176906459306788857469572295601111097665083007632364199655708100748079739774988475431908153420660754276173883414225288054611779643022513155594137840229874557258220007697136592581262462641587626569182752637246303135948547675808458744380432728651632131403285694912707428831293198428111492845183367839754828779853480954766305924570448815773669741006739876530487421290227459424826962251367909048520775515676573994931956743807081095603088393496503415607427128608906463300638919231515492878742228992031232839911981090126946321097797907022040563711383247674841963473135412206615401699014687833916393447731385528799864644453993485271326528236297073252141173427144710438236107363949292195638466583904838038637769257613350499412308334912584479912176932950043096672539900702560603194173991837564472221606487112798049208919742089521580547201750222067829982823704390096530611292256549490436567768666036207380272142436700646574065860042488019461088908284949703859198184731222692817513818672862718182693112801407189831012751233945106271804968685928886881362203554065482442069047950251701272279856696597110624683564144254085348881554927486606347793545789303585320871992845564944732737508730593378490905122340618482288463936821435277534204651281037018164195788866622294771974176964811571324536663521233575285829653470656412271548894414860027551646994191716246979127763950183403996682826820857886018883097434438598289999893661050344408675544191517774143611035406194518272663023047248392534945272028363167971277272248785793044792102582974600778058186846929765254459735521444135582561652922347857607294584439840806917422040717197313893627839109798448702567158063270159319839965193582274301460059916547296640221778451319536407658590160272389824982614384699188266731246379672466667913956304917277614920173618253239459143409733225720847224014982968348451812283500934705272623886407018873075699894790764453821556209418876567156442094978055185310006775841425999497851062380833751920967920793222819161087994870995800439500393965977523961743340011925725896924358407765027241475111316364233663743049671733859919342470905324678315200851543394366056171686443828336243114031939975733219191391655775296890930470945670303764473651937831808602331169661637796975413545572039484797397752331315938577450949940796506994138992040692457718603023459382771013057825191031052450932888559851071532094137635025146269263897239745493694541912372178613333504497458290003923615643717953127035105963453865246038261563189269546728674756380051276931052816456597636932712204031336744844877282676709840121668388298663518182238337863482223735222814476556154413830651662226285707052426262214227806214367825381358100187247359613600048999187350461349999156538831424762340942958468556088116105636530359965672309279697248555382771054520949962872561574836593541941001916488687813874976312275397423579112134446508106612708860923878380325418134175730126244596234127798199937366135678071327267257199410610398438006462994146479135605710262563876790316690314007623884320215348070129963249635732299422537723506162547835617079159217741710402203348243113655915922596117175339413712303481768266228800718046441091531638131682452497137110565636541943558097049646995092695575346911062376320924652334176932253554143983076732746599639628356101779570787172207565283548677217472093687452163385718967329868183521303577971681377363118651104173073104677740027365575519216425903069215853707631039381830055216681350526837730058708540631910813718951506393154292524432981705942248226799928892238063998213863432670422893216192848547716094213435981883594027490156364829926258715754709758850754888839661864351833136435130270998480724305394390323288715351412722485633293337743584743369044711280407312326772795873310998838953604720012082180521968844915234425173017167112955722346687722821743118738091390201800925747592247150588651508451686254218863454760429436064715743612337543739808408855545216735704233625995815417229202538223114247091153839670252512706660899444452763403210483241362082474531766905060759629149321812490190164491645979319440624791609698872099868783489407247878177626202145786132042318540070200179353128820698185504353606975584758841027392057411386782530606283090248650295891247649697197039565099347831891358835447359490052438433459389724385805901810083949725756691581351025167950527935408861091991354183698472288302789244505989088025571462020158491142348219168311948202430944539085352067963822378529085311645576354654173635689229918808497104457306301759505363045379558953447988805157616023686502870211554044750830307406890587905447543936290279726916522313936253417355782392054021970706697495513490388254751714868003654414993877752559595846775122809403588621568555879967625268797300384017729565661202604106013773234990592781830181273277714961375207615385663966382992484562144171664245792500661529973599039420680755984460758571871235607192666889186186266332788209818979542380177754547650360117617294767804894237593257190709285663161857083901393470032876818584757765723519212142937184947679546583577955309109149725163037859149656183648094655237802715173470372213431251989020769928622274724664282716197830860856258160795653265970315461381788976616647150789134635145233228949181193055254182730773623661942517607365286947432740557796915277891010541472645003455373966864002304188336197040017718004704943892870530750616064371419299441780264366312074293942570749455325523242680729674924020675176129229701777940703089981336234609523046996859974693657862101636632983341280407346856501621061757369359125481023678097989110361027546805736449263754289878168436045003771031337296798727007311480105607858320778013758088954384680125651195050887211505236538251199674333792353038432818710255561827412309393267395358371838527884104150704225533824409300738714533270861928045126030918968911671797345720334660929771208498561353523943637657795560440563265479577862268664842245788422019674464122952710132403214720372656492351589805498375202895126604442651782262721181670475065147279523994598505532494549237377907882681697023492797841316513774100874608041524461662595617739032062189849149393737187496176367848699142753160407788052360730071717495569768768009821648119188570761853045086676843976711681959515679185102507182871852631308075188503371472898718724608302133934559581178990738583543037182594048522566960553238843750724863406859567999577457894252338540835297005549793602335477441674210066937342536646242366642277604145995290029655496191602666253768859539479409472051081490548684210330985042447557212411875395691200366780062754110075001162954863921538307281289213537949202824460743864179466316895344703233570450498328098645722320854588045974134928014182092204193326356822955540702738446986275514010188904888430014952510693633451647975172983922694495720872968126886557070495789191733571024139029108470195853359968929785148784519981505229291979154718111131479061301313272419499187466389356001338499982516680254657143711653859138724879392562093237568872895505133783257178493267429787082480554328767727599380646152633253763337796471751650125320053163608404811112670269552871629352336986401286851734983819441268453993393430436442203879468570456393893237068681829399195173426611130465908087740759983212089492091211004585771254767601042740076001807242738189373342567615026126365820660794442784009988787759259112127065272172540310584980360117879522976546962500210555991453354723444568481243309472493383361291142075692915637515698976073603500265329239846702039661511806242014054412705241156726995079299342476491377531594288262120690421875937587903761439870409201265972316065524061251079530946211669846236509235798514362430410606903519549095593152143854663639905010262210387237920038723265404726297415405301843450959489619923061128175161060729580124190163494070251667177758572941045890087171269751629435020865616848671589088146756719696412086419465219631103574492007374799818044832149067549670777888991993035613445805019935525361376275850076496091672637689381478980859556205391058102778021093585219691424920148810874610183552941181408579905975689745895791686810539375890975450857568223506870737590330102057681327612510250244824745214092515516521030298599654497224371709453666954081000977081877119812089754882207213652750789459493931469090156773417074977561061693483031741406253254155091359514456440043379358429912231070098712921347587237382505445352628284480768964081509323844012184881568093016438366325757822757969815055391857981902379087121751651701738979188497527059046059416528704867056348858159685476153806210235130695850353637041702042433334253896640453943714363525934023481347514274017394562342331972742938524666610967090984792066822894524565508157096741658343003728016612407020847168154251776630510442317885811876372820920186210470156832214997291795901413272104620424377174071002662565804256003127146221161338996182847108731038362506333795853106614163211162596719535753642915767292172786303940501455873253634751761971045513627601733852734699999980338426440720307287289884149683946009794002608214930504533687278547976442360606739648323858873712062983163642009652671346610505853065448480969902115580398188325669639520636290247160743521543630839413431234015667799257741860735865538026894432086172769756507155243486675499761717072704436274069215913428981424150169655783959235547460294657552339366494962161203517767441599119126621943722780230995464775864995428521651679781899045921243581266316233585536216129022353374498758448884617325595945983658729957586423939334614869306477645266882872041598455552316706095119735444828043999037538324145691978333027046888849328695197712515848878639767109059198732018965571118297159516335890355637290634986861034489936300291924222789672255360236572072518112784581803368243559678771447813439383254719796837319064490724890766850648936552813684807455688672057573330184635348154972777608669264777500575495777909647196468226219950125534576504304092495590275108950122729586927857060294250067575958249413429514179963041800180749960530350828111644905393973757100390614278934518245362956762820255966638383362706798571958710307922049259844998018641805124951701565824539433397600680849115491089145478898133441361963100175192255988579772813514776963810781738883028540188747400307835429989039118656929798162404694309740879279476735519179801589044929202334606832742570285324606240779744520497671051500488840527347589286443302501076679918114570194770066633569409552751825013164776331660805205444505992090420989009774804643457913885148533471551034047963462334728364691439540476479426490002793565837477355869092411317179267134516729658800792778748122055786034903289944969965750708991690450796286761432669629673146741841072632380426326019251212567629303057128623481209319561176304851827367682925132425599744995045936617150829258300477138610475115131305617596317254129208441640383941145929323336887161839273714537686241748671753793943858057821238431568670948386204828293107105897670855578633733257393769753122867836610575108138334556468951643932345481499664689188265447380451564908507981618712519444428404009857783556639990889460617969754364254214619115829011246729864014993885972606090101790884939977476416778461605695140039037480632160980766006107213678529103139374360480336972891970202832836814593710941523171994124791460629796942715303371715781802424553164632739910002977738370509905080922986336947487615099815064320676799428917163553429009738076144556937365512782859310384591697328469198530145231740005672545430395632774060746382983875771879204968234942160086463423257209931883912374574870350956638491438593656686103475802678558796876571851149489210170552212400569746789463105315563001282007428969943132005744470316461855953874589149196507878235026043608509617760008518796174997340312876319171123591719240905381558762282343370259667239761867452011897649735814364311694874515535443114716325464749371107853784248869438548052594678890942981723500638533638860905453248077329853436358710504271563343013917814823121418391308379935263812970758750775220062640290967304923811163405175510167841981118627900319880983568504827441477476369056407343425280038732767619751253590156825343718875564310090688254859898680984489510107754244977047240660361529613621228376169745651818826701563924742702417772091763495705599406284114477530810072208701431155425936881459435429483538058356005029626242250261804638450708762422776469576403344011647034050155671481411441355391007933423519935434894429962416113058529624085151046788815907810655215549346079195549315079225251929650690162111109941465390534128024137498366631484970561316794908419883136667913203850316875714464100780725587624376189379484460490839241612323208821576838974057516404331711837011958937921704888750331163556832402061666325129455594062015739831299446483077097362577621736724162938296771816698763182190925088945118618138046811224106199329184674534501983900876865161699235913950487824602779275421414505897050539417516209571515575335222024958772263105749997867260722917782355490947178146891367643565959593352070589411052057591656689230106840236182047238384421307475239352406412778113180198395939318422970832143757317652663255720409024546346352373823572676764997597965894854273298578394726226398506846385907451410848800935809065955744834833557108757151642659501086402673521296345064571819751530463030328822207562813186698850606717704586002048314756358674461574287384523170219045691072580872406671500009291848957784970200314333220429224100111792321064554844172134913373212786584938173185300090132890485972428708341919174027057759952006825138337136437479029128285503907447558228779620788511760259840654611235011190007039629263740996877639279007296138041730938144920924155091606007865706151817798898920459983093102545219687345394227600834977340547316960099647936308630854132372324079308844429341596755324959999877877217442595402608827765855474764603495835849720748941793900241679992000885755226254963727868274765565455086297846589158380890246170152910798776069759039749905358189396991895411729296830650816778184014673396041524868744155663094552407168513297281294219962477939178119470847150713325815530363600153081828744304806191736397351327906065441506328857824037659955856714548033011855954029600753477169304970612029415839644060372059188927438223837391725297419323662151019199321481971137713967488028709068472968633935467011137493058720587744795791680585013988580184671913450751968006937403955799410470591142368244649923115695342051270520311936123788580948984688407020707022391824470156082156319852761465393337295370647749518317895475672346670749189658180907435080708005820252764656980176189766902372660961267236318054964948260313499214115799760599881541245519787221099825101745816560104304253945235558234096695407067919911942926021556341492191278714292862800084817923580847771258998241898854538005155821565880744185804747437787492303169139249830118501229963921905237185705539562772637331434122838058255009706529374995394762850159002431703775615509610850875039250772983396644609845325173064196634949754027845261599168804217055730379949020088064061429823308821086458075642085432549937859005079430016418149852090882792835915151264001638147017967615669098153048273594350170423792484620941293324749019478195856224617944257500162187241922004769689368950433741685694705745860223474388629927241694884482699215322469288646872972750230897822571877171507051550629785385009969914348613713767373806255894909529037682599258716631031712351058740278852074668288815037500406850362316723424776833101788556724394486961467367457760007492428749648632131997758319579476349670507505865562565100300266049466077186635723725232344416301856669925842702594893843671317522999254076729078429620244255184640765042948781972685534215493263542401346681647837164101495210829062014988803602850171878810813824865416369999769189108830563377996184908694401801514047025034449402961374330271464147369620237490809888870919720747537089800868636885615074947677796932896842961749446983178003383141343515197871690758589428679381390598493681774817073898523530204628646544887992928072153073723774522787244381556826782278688643496521679618471456701793656565313655398266774341891692628017481119484339284187751977294244218547384596305794094599544530564646811900995705175620525214207635817548463866969737847253585153186741110007785732082962507072161695131316587305683554093615307372167202461791539154173107599743856795101187906466495121039711075487553817220587135777651230680448876357791076762298798011504863433742547815623921350318408302897524776256696281762606360954700683661608741389307910681024407073309075622092976570781980585506352102150965052321528805855557268763590805206534067402746688898808804398324300481908721676919251478171007239009226005211865429036869513897226917842585696348586594874051837518742089697162861522993104043609587077143698426547780590523175808445548084116931748592112442953852834312749400218338602790340019641449137105425778090197299311953146085556486170570097366509146718550966060630684300927952125089578682953760605821411841517672279132988186605146743223252991849851860753616368966885968285125533892288904150514103796923485594342076344250628797959602450347633268235623866759704331902149263992846723735970039948053062242171809624918040273641620595052414331932911718162076589528231667545216002596153351529641279877112164870973123809207824912651631770354304824585652653758317210038113047193693514759482378297393943888077456495738669151012154815950672867640329095521955500919573191383093534499734018393439507538461943669061858363526624515668632053529639696511279127036935872787620648139174633816450776819141387206612358716788792500756201516222519167347254960102373002128854736638333431260713845123470878645330427766206664173957325987834506032228867757432741141532309271424789372848578290251266729618384314687903721779135523811308283991367470228957770434765642398518919189696625082153264738974042269698152223360355817835674956753577469245120374843608892245484918654749329649301787365959578469775812096338209288279742695526437917506794543059118008281894232599176942231242907032733943517372273942847781964061382111329180781701837655172453014140825941882528255078074089342045092969222237445668529787415210947938230026951298075975257526689704985210830125540509925960718157621006916573164979055686748283048696363028606553788291027453153211621382629445200497350565790956214766670885506453746499486792193921987115284502471871523186319460061707830936553700077446290197262030437471631232363767391931036637124646691518937752439991052601521955845582244455087186107201585280103597662319286004148343926593463653932009067515744672664393462747981101540303868600152756588835692917732811854874468802994526757378711062021077162869859667098950894910844384362299898447286319061441935567187679546265199897090163772692377988039313910335899195826157075948355734837725652219114857686936747578206220265081914343321366606654547793318958550296292957637652668381895138657560424952310189302793414583113200914428461293722689532146992684698312216685042853579773841956604500628630235907677557539995277734110356381722796580509924462824936846208666153641774271968607264158911988282076485821156488796700638823702053918665802488103039338622424571505644904941994610174383337356930441646546824577624018043086542707251154731895202438396613507704656655413404272416293485555430235449832276036296337116977232827110711936573970235074631414283784353447758514897149663540826594714537357824021698896894043902934500864210843364271927314970799637871365824965097821863035084120534776150887037695469646373211355441074916817388022327148977342148415458501931473015721911978401718246113190553038197825539812977765701512704785616568503627584421191019192516734813902409473013102257297721599357094784252995677395007447835447392625357807130084561288562936425146000098417778119877531821784912317731440507816554409715480135891281213280132330108182683478657860840608647478753572229902424690420577528660966054372355798441321419385454219632895119279006909636444564681839290671780924872719176783226599021725589845541224094345634382814883862909029963372333821483878282777341752465506341273365912797480609603610004635475545586714161996658130536159091510862461390871331381093930402783336912946523160577919519660304341970128918611127752315032064032026884409398547418847241533891269699536371134924835644518160107502288118788697057529755150267717788981776053883917113825046645604139948942621874925594131101181314689122667194553282370210512398352378026481088752316675030656049016058218635729910714538088227915576313703920466071817939697122349286272698178510890818447619436304424013915930441798541670231713401385340369684077328923532302804485535074779176369567679047406044434719985938797109782994250238686324593643378101542803428813536288480804172525206444630894185188518856524490655870713439464452930583709177664825838772378066712742001988812389402489613761577910382968857804774084504532356714529085788088922629928635624566238791324025299375573941683846130333423017650588285557844137683101030506044186442017228461397616153031244265525457728746655724829485180290971646899052943776660694319355640817710444107439109105019168458953221150905997100776223356982012116028857364494698333895862519661503939465386621868366319588842389535464083870883954289267353798267413239414133320095784699678710777107540271954884865500459488347147057601023105903388838576253894919733064457321432619549982557049862281615191620233546440710318332799922288505547884827149601891986593796815670962265382601701200344290061006604169386445626749977834788281082810204902975999728716243069362574458587877056857346315109865043552720509906371834795490684376060458276029694912370704179772026001388208641919690146488148100967791845810466718855834129123925536171062574177780270173088504780639660000272680444206824163508271141703654686109127397481777162284945009340704971136732900997779080674616242700661010120603051944384181566569090927288519088033986866630835297844158504285949516610552388223612702377948827441744552449765753183597901374850652383718657653069588642399553163136861916305615023877442547119969533968998357127892916444743041552481890693000629745492333438019126873971257344853601392992395360229745778778089784080334350077576694349939700128312302995572913909497304990075791254193493528359511177478607356506833310234102287216516274242580067660354988045914526715791643276063541465644204647067125490233126035432132521853248917304655157028611508324823683330289816772462947159773960897296653782545608034009388590321367770943684120686766210450135137661128792281344229821926741443484043791346964547154019071691719134019192525694757221190514331324867517725105354346812430052122126902649718884729899860231677137028664853755864303407908537534193516648737586078027649634620852704847462581295682969571922216726839193788391564273476962910372252797365055725744379617011909764135018674980330210759171447213863125904245468453415018360657493224719575460635745699703208016611700997984594496967536470524505400719305742269747155994480692117763693114779439895528529680678893765810143609635350552324201484772389996253134376243802680325787156501172535186689465331044639174924082303648004113150669961742631405029152005786452587179912396232766339578397296571440885202238455452447063811237470493808344012810128398142894257222158561794531628976512777914632442934474747009306465054897653609894247385632253519096788711305025117730215596264234356180144041667210330018475975638306697246229945807959737032204044946923139253040786359292396413253729433465371355946167651630638136515206516799198210620289412934242533803469595633141299845631514458738438167922704065969839305402439416594898052034499571736213142332951898740576596216634761524560294563120950268060937070065831285631721298437615243745828384403834924866085569248448756721516893750703463711261174138543177174368837913841932928146952883570826883817386164398204138656287529337814245846211335343757667366801683401321388623349435229810455703798457128092040636460111419384824191652132054581547671746366572109188308111005073110252891534161021927232213627153015365368458744164529219297743474980649013363529736451693083479672781387561568780805653881942167229111254925671188852350421860050922320030168584243190595012009135591289866922772739144147057853721002882390656365599414424601394742725217101235688425728327445257379742305425383136595833670963538857032999152154191762511788298438431245226658267030188486485267314536756008127674889832849633652373142396542676925189254611402782576784494776546450053281738953668683681523904971892722819714423227902869215959619711393449113906039706662774894473447272601209259207971031203614963765728501866286447458573695977195046419766945894104572858836382750332735716948392926598872637882619671804862126579258266584315360664980955409903698687167357235765273543475304671598569419768513699075123417322779659389531664446777996465560545217754250152110988117438377868304551540032449658478357179228999550637501725003262797796780230993654852900568570964356386126806364931220279659671999956144668152553184837302798626192041547543029995811305853504550512498474415013240367858447387800095141473230013948129813763065816964744849557236561170559742236558686146936917039647818605123298497068877780252796732532469861235566025301642716952151936803094874416577639549529570370392329687166782031704069482198113578645048821352267320597346292285877975767434922692392866490770636842824224883822832805676380949660134158626305168681761710842177675835592662971302013586434993958128460584388858345067259386085460887471746955817111965626684396237876158991680701115742176780747946399351289289894749012008029191669242160474175979539372436402960322793232096057607391013079736665917742459406677434119048852589571509723243680618495405750686654237550568663420779692595945552519538019739244229105052787670561710393891122720969237071249015704855269973788823757324482090182858632645810813503578755180242459348036679425232771997250134935913310666927983063525046550077443071858983094874269447024877326933442669936559139008248934751829010504457371021054130977842884572499557636108545546364364743576220110389161858663452333273147388665928164136033670041940324738228808620480947185186344845692620718260592133672348668572183358524666238894830635221447818201843210623739345838712280810903786427728341756895812764130519719863204471314285328999266199292103526721617653327405141546551016885893796579625329571997221480446125539031302961102664967479771073836525931952618151753934259836560218419940419949142642126793214148643300779309396197016879443439194227072741035746199774927592729665544534850126134894487824740088633469641808098591598030415857359289170067017061073350423685284238298599634221257487418213704314490976355346101797337133955699767615006434970868140336804013760682849468638818125773632487027486286014797929249763643030954089645420004993204566921526452299607039036989336875681047428091740874895001235587598185655918294993688923839392134360785042039825228250379691055748154834667942501894183674577617549063716326225258218149709990784469482435762434174674721018233787710843133772176233368037842025418487270730061306283363247337391624363723772342049323267731760274065927555318141790522549831024695160989370877377292746968236910336606043696742946141925282169878625170690486011438355256951414451578071700643882844173181023387231879272420275119675234794091065829108545819592283348425744833179163918237575219691658710115886968922629208127619352156727578798877984889896679012664493173644898457535816012029164107346218327578890326349578535663868938858193554115417465052761549708128550635172736508078830702492723940847760951072592923296193578953654829156674942720534487424211856546788493598476335953443882385828036251741131901976444468602562931326551267366481499273135713492882063840297087204358064724033550878572119632123831704251555251909002627974924724453867849147190122548370576848135778557837138821489414071379714917931979374105195561190402662482670796837212216278911694459335721346379836731117273238127445159250106058676519860358457087885764145172326323938556707838657567261723509432365551241590852015246063886861422119957639920602719344381540349244908755008672705387607134375989190647657552353533883468708206370924785941252231849622288009564274124342761922439980929462495454288297537385937431454425168573541049781352273818516868494272732939945549815124323369330784727763326328016005088038693220300069773485092859956420742458771640167814523268224443577743156263385341689870854787539845263023325929746621198128135265093097047235004326282350238902555642629122549097965018446381998739210193190418009986394773868670113996746110780082020911020347630788734439401555474304163721309109786323386310137405594972323323846396577828356927348275779374791261645403434486045641934744114131517369326923631242990087249820478230441170750473763997434853921162664098655371484445022497479050639125206965388784778087571240082503512217153374082593218954465469323357059977415243720513657603401724600608674437748292364525282616180874211642516400814578452587057108574988517959591163407960249289489385169117662541143960336218217461371902637065022289424525013997235404082985586947829285352350215744015804794693942549150693650786520716405075350814962646004934230988776569605300377313334837725257689752559702704878016767678440417704971103079898488891075655772305844440191609536540088723377927892162274075585444341193975498744103310433781353382779035621822092173055914126407700123112555632415912712647553410765960308134125600302162529034361747798653117547513327652746268678499161867314236999965717765520762390771507733475699024734303343538004575415413136575978891797120818434248665415716724795034901154399439486523047194911090108186832360448980348600134329420636436143446939561664096692535295127230292141225424167776184202877677787578924007576880705749660044146039246101276137759186824926978605437414096975425674452321161595868906037697236431298729633231790838520761034306617650182508650001213099028190299965812841733297053131981444238450849925235934087358924239957056895540811074013854429446742576076581089664003031475122696834418480200771854230319414431040356337534218547516090189178386326344209009467880724636374072790128773575165707534664895297816820974647275385209539903905697329498674709997947041107273142657226435333000908476179331611211620146426230566429968273743069321902789412905272670651121116157555717153362580598792886797961502798668578012217832594397061089731870513473842627718540214598990121984181903205944622673245134737146317827235403297948751279277904957433643063092049599958652703166800065236855792684250275061501293483774414496250447856488853381355909997549273560159604462450417427750431812223916465473347953229312079356122079893087259632919723671415750761811009537317802086393254509629837956337586671382291173643329225950472274002447228763833112955114052055221456415759868031340706636256389912420096486152558017685893608906807086689789391508924709233156319246122731501117851218079156005762396340158815567239530659817607245197290767430752013858452516653510542591099323563906907521003305251085159229477407394260998945303911432502265731747370399897691419291751665194430332486816458858846383927585039945104611500390602363748790786322858507281745726864400201070426342038902236161512815465367506792266450694067292208644937080364318757500339110645911383872160487275669181707063821684634024867956104712592705580960665873478937697206134095417916453388263382129639173418615425482880310454610845864538674067592990412474676676548458189674475103335928438226886360815762376452920588063095706416819959951897760704275450133485343818260129995981677560119703656540233848977364621949287094579113607331379536733810414445127445008115788518192686380783109707938524237883984408820171055991536564861502044309408482500195650864707478317632995129857155131550247135660314373741635257040094048468924105970318814038041767608142104010835747838252958450256011568193383476415663902158600295124735936377591154887954780139614428638631648447901267307049908204319556424079400569772975762289972470610631885329762787702166077101359950781280818436938369740111078188477732401296199601324269654220542347335988305577870685336390203428002881937556905079079823914079056027834370522813343291765384366167853832843863459835095463036170645699464407871374866114132462393879232648530766611984704807634968620345698213190261201468514752405832426883325217297887821298300498183753574749531200887146181327804157700031633668151222169382988638043051208011629829212518944674309163123700546412406233339183737838612101111562015445934124442779082125633163373849985844572190748877988259931226038567689569347259902615414341622197845840875492658814701457177532052055373774184651484826417283208261501707453009157486268835498023850270682601557661336767035936273816364985467637342129627772563144597743838409957886778102691243954082674191838727664365233323624402640776031493081424041778410201068175417242367420504473690381358847111698607069961247357759698907819066310872543803526095047364016959061660304671203186366784845473822416551355099917167779487411675255340274681835672776784230814293064958120265813997829423331119042394787047720598055370839320322418719624301574163918718529748309115139121089977234702520644611255450501115614482386370336621354296056526805498035812163395490304089167328073899066670957925347910257880715600896451474558879329411665057182419815290019057156082041698882338489650424488224844843259095811533656903969123738941524055317113906554516730206208306937128355808977409156742503257398074100228993439748233920995644284225944112831572626702474988411179957199654626719863379748166296831106811367743939106965586936104270831235007050013815348552980118524396675026453216156545132558381811511208500447641729922180067270723059456610905491553306541019548076126742827937404925263583982196402709336760841598624783118404502906879878507659318800819405988894553649131128880392029686739468645354033158069201370028271653087599906433008704172847652835320532446353969860196064090174901288200893771531898494352115922478389753055183567647408966671624745362860643822021093443099999660945501201145264499466082574012966645595442830000177726100469447557359437446106031739991976523335050810692410115968904333758889100590098940729868307485211329726676334868759074092736169843889082523787841942630292387741305039634988911230281733776608237613803746114299509395147234601894638533180237107035337613429358024755734364064174749410317118831727705299229068970182770890713660269082052733569321062067187888550191665159804731424714063048502971075762895850401016060620649891173070077597932228691053183315072009707955855457804436013181528922867002237787663195079411144169220520449078025248989770658765130116862914764636925932461575613076623110966874025864794573033990576405842673770308119254143391970407927767168503395179179698075865192286812743423741014918186347464313326959555623561108927098208010432614993631977298858570181426266648677089931247938294077356237959301495827556988644305548253912747881553355516302894290048852760885893046414024586587517858632132926933519722988970383826291507654669635886778028440029856110503229744831038881435342046021690278369740437341800651218336119590290063990192086809462860553375333423405226186917965501650841947196685151316475623660075813026900808729436818260546140425120659686854895633255634951986985762524154020613979378894113933015031786740280066160365173725129547953492992175838158167285230594052465972953088589810372375358331045511335005273733288063891465246476198316243175750022183441940080041254285104081755098334363268457052008299562089961802443678948899583618156388067335825899345080447218748504285230770483404975034257452881632324903370832846264198550019832673554586019339032566905772169272354416482973062375499427894245330060787036408342340836648667009199448743945735160577044884700748367691302212608018786884190725889980221843236410493619822897832036236263916469308560257776272242346429661844120809892766562936024342810075955109917075501683143152979458272610313807542651316350672057076887179803994024381100139174534369353206235798820879964897415489948796177843494504196432322609958271504223420143921522242966376600093015028688014490707054018014666584199388871839627939504220812989381630439949166715228170431358970822238095286576122899481108492937501219023560254193663028616934902694435985539354437279613445553092127732878586870615408434925645746497218662012789942961373247805666635151249465798004279834806886653131001518625535819689527739938789130327549310028939613549767160986927890108158170296108654669469000914913397552861871465480047008993323809925855252687354641645371207625495915091193469473776234316286699721589901964245122970575616675235980552516631372730803768899276390580363539652817243491726771570545592828159687249546691462978687798669788585096370707532089904079106314052180486284219519785759535230342152851782176421900198804674589451321141181847503725700768586408835392071215907705647976846448931464215994645753518998753053240986956358147037754490912430409503068690876810117795451020782121556878714983606630983831488521194008335886029157525099699005219077808890768851663803499792862611527461344413906029243442479370440270542207896075597273516938171250215391738016303803554074181760551878501799079466277896431902227669674064156746782499559805955122274339841195255620738206069530155652525277221766176667974630615436211283209491361378654221044648581056539278450469099815250165027372736133905158480329124871956097444494033988196855597927148052217996859572044217493022524314127706205545152786351620732579379911172168123939606375564327407269397509166836179231979484780763730792560179202221379404137587397926010509310195697296960391221721097308214597359175298615176031866922872334687624843735223617829798796243790652299698634297509119443606908088466862399848130412424740263225153631441685863141352522021592067279439242931684894374004566263010691974905418495784470456027174058056251674633554088634933687182584113684398330614331444528682186127068695853605453954028039535131148824136752452250752297140840929858700856497803663567730598945962594517418148893373526644199844770076975976537571033157836319222279970277533549570768857938904339145165697897628302220283196236729875530102827614037381721336369414391960539767252351036041839924004533373390942895855519351476726861497313125398240423193887487489025811167093843199756334555358122009354207783870962950524781644001944355993926783671741886165662223538744680047672010439033376192247593645743054070203912704347156428845573882461824968082480710981576485811596337459397154950329655140935113078516613129862017329049397046255661820037911371629529383751649674879921085372963106767732988603239625178244033107672877690762639270740773960596493878111552028812264695372777222515099128442226869932407707950382678637280905609957376163368706086139423613555802131014333514222197773053055279150389076805138906254119765518538353012400563082683764030666824221062298063316779651873376202103698326078140940255467034496844966772838192200780206657060053121079683508114326704597615386105046130369939858088108868852395790015403936880639008749800550931426564420099104983825856919117313108165940465326074970754715341004966368553911223209424604177782291249796168828400827514585584695661035754300417961617914334376667932466465158753181018697860219254960304660794994238153360333345692424148310582231776958391445929437834217547977182527838168034498817687461709384218076622877432985301215671856701444525970415943425299982151287109147431355250924534157020720820334586351044505939808924111884299462619708168438017390340339871812989867206554637303544113614064770475496984510969703395259676265759394038338685939523616798941816094759443914207267198017380428063433377435982538441497136128335969697762602363624368825999704400675726857214993602248877407010275503798121321397439373044176788852116415899386186912709210192051401060227135316451493923980612551877601670820835438196897712758349156040619151719756811749191689852546699184149730068717159703035247390320829004243356503177325388506908431411224879855469231644292464503160594148929648435073840909951193273548460280136480599641296072745531822211347110721039146915334867746678376601605882915485797563683648066247809536805698445413295421903626404375597807548801993220248851381256688999952997732323231865142170542076562165323556309800783646406819986219609186539546590010184818295883811312002293955231624494764431597629343156629098139903926855666200345704793181315511353504274060052682136100384391799971342659791471759251582598137342275561883538188736607428028460920516629243015618436889615708785876261986504092790649300698153596437747167253979814047556714869134370435594156281841516001621414956382618737639358497407763069308872726498880073569363373199742097404653800547402901109271045415656530192069599272551581675621576428570100715015016344882907107477579252886593056154374786564101569603782556104988981708374388150914627278219645663348504844757575640381670537209785828968044244420263547013432765183619639281578869212735041924602907951135090575583448153205712937561359025584069335263187353037924110087213754134594250299810724127578545657856405790943506512698077454743442619762568498041497840354679529983527579804762223410109306427122528387350313887997654483107710641495495690360958765292073048092165227255581520084712867999640280880958074620909128544436929065533034309375519801488548833766082603456790631305561140695417524395673247126629098686235871163100028259061910845207406093219699858419652141317286125468048869903951325905400736843233543911867455284149359850316381626582742611504717133034349879257516421559529155308558856328353504011581143215570998759408697611346636235049704005660663496862211333693026548028085463893629173860963187188434193379177895241158830829357178438542514523583981739640369866111368059332760911061202326260366299822230604811249189708074452533066146964672690197839353814013705364840050811822215927958337153929827477833745384593636065304895414486630142488117489883664721106979570141902381507602975835249395147483641730472005594050947085486430223220991820498744573758465915538953210998846090689293944690000490584487386019489422549457464039766718163523522832726688689909146437636746586984768624680424514341974434842350732329596777557640613367843483222164455253151679065056511601261259492124758763653922684518993423537463217330417472676735045709089568918192878180142743849046292961843050029818037081192053341421127362822412542558881292602093599748911822578533514566265973751095313653002048190438372137526982150325927386119367034886072592089528525794080252853121219767228021298382387198085655338233638611781032281581138551902024560865009639105698141548734177641971194952398548071944370250868940659622120448458189634985939666302621974156465050404336996317375331220167402505756099775599646051320100849301524239353254791127740998434958798473447077769384234577642699982913908959020028053351382280592871577949151273682115661123535335379922046205752698843323405986666552880917374491097648936779519460591622491833889110254242355147811861884395663792709790475891153455829313087004374296513962611907087678799466603393999661010005612255796900327149098096160014802478162340893410954636486042065583269819284232833069641557185013734214385597169355275324145427820897497860973172886871469945754541795362033106768437916670128282010090786642283408635562441251042615333068910693663184015043593208826411405568362750612099953450879408178349081715560037470259657206714852045144875347409029305517326000638280794222569919081002044722658831422700535895715642289487082147420324383025186565685076567403887942356669216097837497535763260635488636894328897733906393249225751277143605634397304994308115016282114440825923617610196125771508337563092912752285399904039264456355052918978033103286672691739635665113435234030344504101334783912416783399733871192483747680731614876288907502298036942749257540081017968740398883533195351670803491047991717114306688321450240562241307851180171570576577814538138892658398353822757865085512873498172798972862873176713918502895731692449323813233778028418395421737090422773950772769186785226663697751804566151812518214651595986629507799883288620380680389090280574624571415562756693145797573482268233981428536729725372156306655263981102288517383802390092173999423322077630238611902127356158578911103479946012410965286017361622744073352369414846049678914243919459631201582039046460357619176034592455104571960471774812525312744219083215495131145281244928028329092308063474183862344863008246303406149218637629604677322344865617094759464007167844973545403772075273696496472533332178532634552100989712259579324739362637229952894918176693246614643194690053710255585624802198749542334517830783937179362171620880657324415420860464871588627685559136980417915505346602404276647315393200296043607329941960147888334537097835177161998501059041225435440721949464930628483032344790235875996078374543107678383579827974042938117267859356542086766691956018855758693953587766029183924442765040520582892310443862510788430680550301480602278092716891722151729328040758580929791453382866879345781640794582274271172893175378256329831023920750436979355842539787036130664408925689238442404994566237608919361814898066557227190149579830066911571025884642749519767270096385310872933728998129725814455796157611918067181164572626849057972352153160881239801932798737095420599233014787190167347801864793259987572290796211825698106927316041720585611468878943594450544101463747348052276516239551149978728279571416773614487735031721948951694778691437814834195133583094161641674121279249184256843095194907077480622463832974066720266124986005970082557300713279297744873823579281696770287055682621581167812529633091257182525622813961341162823836989909987972056390976132007478309434499840708311690393889245720095481670870768623741066269179300365418679984493318421193804051042494379479818390480755308993150163905648938246617340930223240285455861367634456410728621599521319493628882570476005177319260936556555419886724260505311460295026096342624631609780517266373119591077041409589276948073468265664549197666892268399134589469940477055181160419371130145505354822712259615109626797718464998141531011260919099121499862857657614463374143673255460962454185045746311360184097519634935245267276793868539390800957921021137699979360325163547862750469235354351380192769178562889130450543494532512847148927353036962935501660957712377752414800104096736792351896289238484791231816173817493316295286490356556668607836040333004864634492594363437749674936842036757029875995003640528490999225498767140254907290135312128897318640283623965267519698409720412919759426005431504714001362591664084558712185779123852880850240226259800293840025084405780312440118804807561245326523404226308608738761977262905306798376251470947262660626476923116997768030097466366478628389242784037459961081259053715534152199819138742175242265511260748057600957808093987520979214449993716318726860706579590586631321575824656572693103772644070804753621215430923010005451371420126212629193211541133936636559558215579367125037904250048619850036602080313211489508988867860144961831588695816936835713438133139636903764713690488604220692645101559347126839504945842200975133308498817817136910320834131929655390128950296776694635529944591053576583753250394414060056523385525802557693185177090062162435521315352606664530717050901197235911580709322163324102162895375229125023058754910716068387047173052020469932308849953319107894813092967186867675704062105566803335001357673611493737158331143724785351255928216404542478861610013277459970345243921535445692480284366667981017529627978753807210978174097721651537348858180909725015514240646663191523831960111026879718668046749848363207627299686662487103145181845509338468165249699920161224971422763468304057709288489420912483780867409502856612724069739968984820776932790003241927882917477623784359306954883296651567089027682748941169470506919757199218389023637105103428639543307823201074582000007736258799021259779773136390672566237753928464889652915189554325349665292271872371475681233698510001821194810510920021725525508839294153318106214399802510084061122794145206021775186369362603782117326497683601576089013494357702509826623569690743493593705651438686826512201534196332288957902813839622916889784916037597221551998691835819408633395308550246630205715696888206574318193158727619581120786967796298752772603846569253655132001858168466766405996994973194582548200149411334269074098603773652973671425808559442476574893020278892131254875353210163565332248305505010778626362030111249784439315873516685684900386704450762850107447909200030534845840851974686505815744499696244797270338136301741351013073596252380946765644763662358817127438973715576860065934543972505847422533411058953247208559914341066383350439364251554898734386545586303813085839214179585690115177350157113729720188834990393936663721501027515519457546401990906171101958327677422750772929435573936079294819559982788489626726805271668355186107682448931834943992447905496197245444528881353446632977389930348936455555888045718114190322789226305950276523628872695490290263600099636629668310891209491581087360276824955843205030947050795892820812240703550866766286906454658104481739024065845217374944922388935790200969850656771623964960524401281002630967670140269177798438678281994967744241940270115781175240877049516841472668363728944187970888934396490084607069638746023570613671934551273158271452038950871869035875951856896554619997537381991983831302374893846056527305296655807628567316525106913400834912142798780381155769970332883369359714409053911607580925005637324436895747762715441868591376216290570830529129135157231446290977785945698409670496029466307470792058555300974126267270997722280090708669090132976592648001254345902439246808074272896578072886596747659640271541442993645842083699821493539865378291207259337535437124254947890810191140444325716078485021858567849100109486243992343980653149925981491547041990354389984509382316981259003744366139142062330759854324264340398878263362589422865177910870988697953252742744813234770460935079798976227063930330297964374076361781050218605472204511171974348079028615565503902908170166165622542909705674344497115179931578537194044162953280876224592964255188839069210967476210827395189400465542049101627182442935894110958338825171124171911322301162619327197177661504809624407803825331594721142867494454297865245767389834560022987342401365026061639226855468547776773713696746558399866626430365135340030637551685999829291332397470954556973022143450006764544994143773153436212008920601731269155076917937353373784159276218479176743111950015804921251122326876020558213275409623790363183620493810319746311377616165115331154849502968121942691278963307044967943027046165167184588462096996585339378513041910463854180404623847526111912780472898974286297309631419103935336085833932949880868705297102167597176855280909748946508337474753407943496051801289416791315385002223292962282632883150660716760308300397985625736759987289164843140470289888339041809215670437972328167616988138102169806462828282872475116160103185474683730514914125635241404877593948862544600499470386536224880183704257453343404579181527374364333132684561629487147135183559561243372808515967090998530635495346663230261259900926945165761597839789118063034511365607131877932684742845351993870924307735390704028280679334175371258911166190544438917405238206134300457288516510886668916790126721366335262555351228552265240288693720843458612728310291325865903769043895398955715837651975744013307251548393187624897331386534173866881787615457737091636283011976570103880565405767174961641377774033461300627855892298568287379973804784122645094211249757700873793112916888980398335809333149924816224713332779759933372194670947045528072026697182274404277606234822352591263695318675960877743378973918646802942922609914163707097188304041694487157475578788758127076680904043022319237116456915086002734852920648194883995481524263317427821038665072722546369678022161333805093982528530497909748305900584089236551404949596878106848509696204048539223414571981155580023573621683265512084457941264763844018290650081885531025408554489372490460448372524079353893439199540509856788187095157781811455176507343618554197951630294157508386589049884659941188522587888447444833938268088612261131750947838724239964527152219807340057761720585577521484248602558488382324644574917952816518280377378409915843011487626688065513800908371251464427921341349070582197438972242943465793543925208598662585410529182924548269885142603747579609189235383638000591669408239954328286415822749285930947443514966021237989288777202418086208500217694519658292226118543166555218450364031564038992128642662517970015431200343239475663497689012528974568491977206597434459157539876867078392471318284192584524258113847913086795964827518546429690315493639375556454717279609064574315196092008903984021774008537120330529943389460087891220740862277152899832669173774599016511750560355202363886181065628227697936538776093040807876443866816562033814418900925706425507442459755943604050048738048834886347230363871913245070810164117710630964468851750642722625310615055705007750937489219904498504993652466003252503264847945917838991151671113087298849108688546493497065297184686195824210368068572852121103572381889800697017397469380536753865102818044465206848029853220205690394039788827620886666761719811431952171297078777837649380049111225820861361870178738758637305166903975974182874069928772104017795226070806292226030875886548979119233017582695885623850979674005577774175439839348109119356343157749367946034886645486988273242679967632786043597489167353332136110647960917327687023503729687793661236294058425122176573577734803439316928003035837658172777450650776323822508839613722650115836352118716981000854799622461766253426358651138493181931025986895445931352340837592711286382113626348537859581086434375328273892075367278690005325847928511838201759493065885164848994253401150420696767437504234752146910036491828576757835031561223013657835716618999564382631042322829489867809029451422359044154242799600603034431318594493571846524785463738589797860414033301258395374873744757080832192824900045607426109117611895304754262380802953539679980002788051237039661567104134236401219015470341712036509684684453963384378309416036638619917957259065868208025538852175876186460672430413892841320549504826380587640256029877293702018192447710999649995826303817883104037649423207912885875834264454816488108423218902792978057696385979785003215143125597969004400211358699888865888010769148972613955930474799462963650258284271103516713199185475193453553207308448333447311374230704603377558903847529780151562496437155290379117308209315550357180710638778645367011319279342205928481582395684709633816063480042154521867716504784881648609083586459196114832746933214150691458331254712006211847924220744784618596781071395864997234690378858609014928008481528766311594077069974447761149783634500180948317629296129320635127658687446777867797423176252598558227344557092345239952310585470782509316305826600522018222577072146292188549125831553614625769250711231108234182744663406454380690691164133937957337609241122716358856863461413209344427504735706249720913927789996454572502516838818946366450970784469944875782900462794553757368555196806287345149401999610486711938414664686190163492113108792446833640894209924428709175253002138700792885322996497280375863827474518411281037147405540186669642116854704352207946656360960748699225916193047806099628082296637577948481121092865267346667236290527885295551380031323509837925105896238151051068414434348616998901630710027367613414214248414217493151382529962129801770805208877727964684374325450423991786856549135815506052307815818771424549945125860669859890033104885494560439704549189624752305118003992669363547795096652139285322854775357846000693671796319203386126413513280536940114271019757947388168809859592935780984374045377791414191294072491303227127174490397088496889548505299114122979305575754506375931325491424065521659812007040760046608536432777206460066070346081850212417285928894905466196381560562184077569973200178294029224664166518800987579391361936728415682618366522513577903808456880469903495675243284547731426191418343329987704120826905636989079075044818737216234633192508177614759036964344276781167341868980439748556217122043627198621033144960062136946168464431423389152429932479739305478216201211605837415999516576106115837534275330572497142784494744920000474111819746373886879716000794022894766624898107299123123776990752242883409471992511047287403129045645897753582070475673734480521168050105101418097799282997413195278877643592695114476209156867301463334088895270728573249462858879063178960159356823786676171864501388144493361943889298967226564794915218216414368840187231335843091818870899776620935473096382935287630888532768270083357675589553236029245325136541427598345320930128977282178544166933684666042325011260786098676505366782203414280843900772432317877892424511573281125629179761036685567804015068718421547157565185593485380699257894653126659648299484306269506608238184727943709269211986766837072485313052106272772076566458895176204364181391416081884426371355381045209399031808630567949610644716493191145034967205356588185459661104663858935697301943244837670604123676615250717215152568400472113344355064821731318150348637284893374847744538650526727891672770663040446966677351703485991517460845196446556804698615156611484087045191802864528223956080927194163758781415088397477168462020552103586736618536328528722876152102622371786554405175703032489506977297467952822160430776485941404411929139637321603647491829929278329947138304620073637762600785514369400347990114432911162660031227843813378782476039076013000248386973417423081938089164730691486928844435617824159548139442213285833205448433592643585951341405256675097087689828540886906138851270094222784260491431496649645880940614967997021712533225354690830554587587471194164196056299151452517832594728316493663564072920597141090690422999198249187439377722429181816791671884779093888769083840510269509777500708971973633859576092448530894921684529301460843977306400730502381316909222624576329070911675178573878391533050765908655809181713391293767705647383329141138550376780777445064487394392792779989589139582693950159612505090752026763174027163817387459460807367910544136796230938095093204491658143988435847203680251940248955293489020279386117474075678458013831373371506346557605179091119363364579977035348790657229643082538595872198098115650722483858272592637421919811509748317896240235617297418786429649908125121448202744335573474548336190001082744733077405761656838256957591922013586894106563545136353969938406205355335403990471109721593429258049493767468200955283394976756771171624557722347684694738382079880036798525323406308937195676194294675629413331916980570790908684200041856648378402215101274335704762404359281612464510947265029516225941438955507422995521943378703452658512189917721851905122812120254320113389204860997756006366415934809387105746992310336790057141540453865261279138824094503903880277928638775077686419499310593929508294917315939764069357466437180356384505347801717890657702900768469888207679460442798135023928043826712362497270422260585132689719308961375797976956502913724356567659993635853586172492785820305119412299660785551458596398380659240294416348459105260949476965823197854336426428527312837017811379292026785764699025532000374401055177807098220286836843492851699218259024274394498920109952468019291243631993579761871647040120106286291754430755642360374289746371731300026690433615210585061049556913087097127509212182031968038694477534722859928644828712251111609741142117423247123234633791362649028422231099915359538131876554230663210745051623665024849376634592190404744305900450846503042077723496062023272385393194239116938099840143473584340662577108333265283791278047988818666037049272591617309595200776728418404517170035240142903566758002561612939362679109604927853574233058140324678570551298796487354714785658314223909574078433538481126325558221208951466499829254350942885572050120001911002170737823177518183554355968381758201255921375547937713471566561769863754190580761278251961349251463116652656759303114686064267815898623360056822522942643498577857672232811296640265069149980791859658451042770808454579554317849370730840090942716633657192965869845582174456220961045763417784279523481795230424495544173523516732356273227433775516276488658575319013082726097219067131065460544593694931441894479571207940532855903715607676421704560462208942682172183051153305618580883510529228695116040656571141893400983802888357575801948121044909497580186795873856290805940161254694864276868800147925128112918134585026634246412492248691536947831008654992954037230765628460853761133638842454771167548975794886069654850381549760323177481788955790969049390250443729703479912298023036769771529973501682139531350141749548552966447830860365520942910496508295581342533883034420657428000090471837918283015940246152317031371698446486425653466420518264855600002871669456083660535182108045737792361411673474248085054962762334671148742813124905394014735429587073845615959620540612318250901573606378541747491328284025738062987511048307807718863923663649786562255096444649799587013145049418196958470842446438764737593937058608225514964059481548481525735773861364419299756514230864000993321701438891036339390635198905087008552389948651188592440792055728158947653032142910839285362831202533826844927557946758837062388507784099973332751732530703163674413517558629343240753606017684111620767561571475656211700337618533759771418108754015029714387100126521111751829570647600541559764625598769607020726458948694693630325547949516444749951299971227259749055844162563517217573118343480669083284930169676969700726874344588942770206398829263596565619022142954272998818301214466426079333370524701126195488050429439226175818424685192227728601997964090737274089856156620776088241497730675502543725424003323238926773374978796498789399824278073177842236283132365662608047573387634878299085250275256917832170118289458996511791979924366733710796828415566990011005145290956710591589725324570257553807089937873492348023180966490736700354941767831623556330862348605493916135676113610996383619345484093703848012581756216553913879631293363799896818607914385659064708026049623083075689927740093216607686388063198332169234473446564499205781772642231952170185494734282278390777740197229159669556463087534836246196624039083507878612750634060111855013711283982033904972755163374910711422557559003155848286567906123780529820019223978740820299352919695366564434789376064761772607271117700261549487091140527017708661371271061910272420404910741035696239064065439316776775493989005372849688623769520626943222307736409225800791126847472228288719795441386333730520153628745368541458778637329728418723262667238001897688086561454819189638353264840472097268676196759231519164638551110479135066794503217979179258081220842088986511692732032095100389575496491578810810461245424582026196781802408566138344585477890129475720469486848045912421872003726831501960980981755453698206603760407500113191986184733974095921530668318877043187098805569695858374642556433077058500871440975810393013545584501967193494477305040146535442113541158963486084329638802469243316375476815576441505405441081846262432641053193052349721381624210522346348579650879510162341103221552312854246531048876193625893800995458185581536832381972591202007172475056379794250174510429436888971026876579514885586780729589080506308786666431985262924623720600485346842996076335831276077612697342511180373203518761492213287459893038365042388582370851175598375540096154090296135168035977401258126099757327981071693722232305630235560423881469871148102862812079923608653724410212438352320980763851617850309040277582407417675515532999108014294159624911592899503853496584603827783127676614580859821257310082110854577925136330353779002056599216797584415637829774734422215999509238391235426298729422593738551043797624472677325254270405790783901832377220134318440705292708314165724282770551170024828354074753416424312003819444028906817410517467937531407140629578463431213007556362467323985433904871756483250205274940141383089273592139829213068389256417682277877285231660555040706599047607020991747337064171187226602058111247603862146823785532558996522148996991847367427740595646743273454191258566784222584092682296752614205991201254826013653565144191310037869579796103296930235373037882860652066296680803827730948392762947328140523919394977914496697736349118541004133899671162375043087278477255601109755686792063751946481495407703685689200577849392382164992723235003324228670488534930487997992639060367798735823010225134104452181265626825099477412643926149706568069010405035624997184845629687639525175018323681633524804649139347960002657784492906256271967332211363392736585619171180081168270571694061231652767115060687144267337091422573708125459802786984905591094261045935934137987345565859165731359816479229858080184815714395024862103066371835347132133457812587445939047106457926227408805669891739443519213122855933585457391985003069592668021528919478731236815118522905982016823491481748488035284500215993158642526802195771261522978717018501936481045590793172490394545111746387489704945392134341090050719618610686485085259463432689278074092217103818923430275776076760748451931942741301342091399176177730406560381689604506195066113561528432951774666107908176472801743501540092694568396608339678305207999778911079917550268855238745494900644224071684148046383276572562282806477342815478653151978497048562345095054555584544344167215710507415997338521901609528380951465013727195552790159817995578082780741947300973723215312056745699037064578011273966574206036041778717594602053251483336023158814687128816427683970833007353299968777702934684646302950810294464598398290209759046722641307997063707741605312285286281338348711957067070426424103414971062578855311068893588272704882218989766074120662195455400297083359594191620607487140569140293562762913595074307036586471483806765112444529565733776858426849085120344277293555672652609755750898202500663201755801764323671982143378591591075366227275784752161521670596440278796160980657516516984311390881834688634325994349609125615110757801189723547654649306425656808355749436288191750382992306643493221071685003500780264042055424057235561930430256094649153463739931788182340126702169604126149270743330900085973889780460432936519486056583273401038376839803586157895221382512519113246745681512406817004956926975905318615857167666798983017926964891039671259567356826600523883225884606859060510361989129418025589554215702199807510247291246176724876131791193441520842998096640856493864066180972760146009702723067368997101146474690129389061780580899880016224246886379419981008104444936797485771793750392161681022227983240615564712832646077470871967813840771901874018547846574171596177510971127442574529256779733473187814877569572816215079126629857730168858892802386399363296292279935002536359777148807583525002269242522515467575037417119220735004943010892313056078734934881151281229081032957476629567727701769935983829708803675440855067207346972049213335202743763946439830925072765335500926936471871971020898561737459186004769946052017350571404230306715896359231267782945765203839595790519749637225347714161130364425326624141117790239775117544256973133369993272604864891692597316602933411182097882696127970310839839170162794077767214743723678350870787542926297370195158669943311147819653272326989410731697266307887304483487671997376846696720331853750773377516489069189225887342961349624204135868950549228176705361112022568827459103109209554006582741033083894058836357613204532299934524605425457275492661260461823417665627418863031419485444080741241393911052715847140392180335995172617730302987584658618405190178123294685048503146524930401153156185930922147052737799971293658560069104075030054133398563537163443692940240997354010371449225275713360984242170316599547147860314621903044939787876076977138490976120921421103656611312506969416725675135104524864846203617422188393495593325626951069376500130098027761209168910644142896588709750006888932627796726484712950691048535322190636128751396693953883216118930848822764471179582876299098508830267254162463170761427539329109277088400728785004481547554982719085484044312137457810816896225563505828258259318497317022097227280157509900129749662691642241983791365444446629799115421940055229939814724205558895286584492558719283348713950218688303692075748016349696222025999551653670312369529300630930995442157767923049382851417391746308621176104671910227581239706393237354221791712311932794737799781322942348431763137200116270902162717129751989700271295418878592722017008329371754498927138000452295877301036549827231510244824130000338484589642012240457234733414653908460625673949931292689697203828442397488083188899482779756640814222098809601594904167505334876889941244381505615511628009440787447809073123257600743197852701278253182732799570575377526714051427097999118209563021747369215096823954433271665313449618535207225502228819190465030647987838706475088300660573719072192892889910597825544919638560439342134984515658948097243373233653934924763011958666036832001205630597138203258235031845129605814782347462228647694254256467161435850614561948634664341144727784043922662700831226793856445541939058600600835803093094490313236820872994040293478665898241680421541808872297586241960436525431815891786025786319816191958045665944748177929936711352678888528755604547863184169987012555562401542066303038436215966972098883232418234972012614606107037750389531521318581149216356938110250378654072457281484671966674882381740726631766308626846195010233824784609502370596947050582614746425722212752568584640310187787086175731871933664345116034098376579858638445496704625909589675849132251506082008976297234779717014799444340117412068243476073749628026400312450575401786405446261700090088145842912085335680523061332376037627436313553497628633150168234355332466616754970204421218350893822368482634424794040943510192651550578682042951109804812333137398545694772909923663857807587115205063287332448083734796740459124091743517741356696565402884063934892243536157420063865397245128734455453706595624349126591015940897420804328776406583149580082609046964833684331476210008946505423206320667318748151270006895644367738222241163322610522976392628866883553967062827407051438040770887419644037255083373841957806313275464051804847505566144896998298685830371261744299945528390024956888990244500183792653039607621636475375948212737993343483389303794840208417022257921830227997342824194369107161069975130518664754275673542834256481407603854511051668835924297849176140987755797179365612560262593198007847890837220751660926780534442112694556467694967620330136723203959235284666917620140893433554132610487588617228453534520402089261350357450002540534987551780953918060403462998559531477994656832510649762601657520068890876843179658745280064630663855687711510641896953690398191202583958310615023017821731724281557595246205029251292485166241143130027250012812437896854146544754677381604914162426404510422748719036746294432408088437110256163082692870667745073653795138318088153412302852404405226856294747900965107535317754414630831487879132559153018678009205699318290516249741770199757324843549745293529691361414621930860576443782842302197039601439364138291554859494535342893737195931501754210280910664017253041937417227493338495459632943434882925678894943737052867170815766373824559767399106867947609458248499567490668373584673923414675955363522749847469853848127560841592734770162904803793093611925288017887983268751916644271693613571704366934431081839702853624502302633318168250262529393652020875086124254495389359202573171153214054079216985682963625823087575189782125509764741471222980268530495205091344165159103960913546109091289318288891626244343662925610112478185220013451168706113808481917202799394800698150102870043081602560104421520739104070182088694035570527985451576155071252723461138041574117287689369717296540950458758472619187247104417448284317325854162299464226547870475416937259275758559794090600275496501689883885186500042912072360269622405537129509079846318607907459845060353794462371529662456332793961385591110511259820202312267528347319297656012222019028857714130414713187708418500346951372802451461072600608326366857505369959257274018589690285160336020243307603623085163621458429703429106930466673318679904700533597635746091686712894218601160764251694293285079766318344748534462311955725007447462289885951314752215304932592637430902894845771585631057658179748179927505818432231358067037370179582719625429468726610864627149062450249106931492052286817983772127854738411372447931844496477829278834779554920187839336193684187666987171114132643751900563816367992585724939266808458271770748365744815890131218530714904497454249924579191260810524696572644144198830374247695032040495643426781274313359017279986603082223782423337905146642847205347771213592872117623607448361733431483411103752977049498392254089430694048938632719239433616920215440482489437172880363534077401859352221137828246676710101549194277976670121490228334259337241888080213733232902272369011900272478112700123482063144940223160868679713481649976370432719557119132360350641504303230677225103754146440264407813038922816404748852701216893710780138608679286480208747573454195072110242043253978879256182169808767179182350568440807223883892144247516935091228948859608213197114509086109887229408000108402127163894527195380351643396436699691733365522712297676043189583448786438499742487217076701419167579643582755287855840511525850536090635560557036416995550994694259738287156137183117931720458852648183150202030620761489857514922055978512419544815537089609574516328068168690812401739415066292213494980685173346441217542336547068550313037344113770544646745548703947150577712514517019637290898879103904275404056762831973081738926217079524961966205471209614518463087515956660725028270666563000984876521636985126234467037864710493617807916543629013618649209919575972577667925218426899356790270210437186133560188435724254755876681683377758490113293039035262796991113310970749415929664264115595167694417547095686033686051555170480351446255912114976173579306141710830349165169465388399665102948327551293854883249858965719625904334336267256117362579700382065428221155747728655568215405830718093723462589664436016630972633216866670928664738191180609222287752736275853242190606681567613576764510940956169016529886297568087512243736884706397769118017562771546007158440045552602683025632635910156623440801593848160072865500506527828172329018360045448921788786400505847012145713305045246920855365826863589895702226918866610994119712440074175862922944073708823397918227952812642775031975259666141154907389995063459738611220652583748407905054327720847599802210559794374525770331671234226452248051924363481392897715290417061776176818639220374999932053557249753609798912553931192967276639071690283182979303200884867905317795472754537547949685976682097052131217590398017008792698554205761720948054677242362782005640239976517515081183876664808758814603212659006451784614800283058891082509128161945717096811257208321906415257378455584188198753101610195329880633868931114633599639079331288701629798506814594668290315928472833568131162348336461726176318323853620904569065993267285532224353938154828261018246024589662621600616745281609031157489713763798739411552111004906081086764937353781471321017446375802056801081760643858703096576994105021989934621666371968882345110572093371118356395962439904429970550163907177754849396859678265794128418498843008311021110707876898545563278693235442703438715816196925852156431336490084589288372013849215114389774843126621683740051997879217823111404652254769813192291093453015816301477156431653324897424792055268467009517339791085401587069810381466018520837544528280918756321413988660259666502028437505712355669622290547560305630200764078098753037401954508103620013347685063431617025025442851718151129630995011255116301358956519531874591214079287958350115088358608987560466861275527870115053379854044103762104182782546390287379991527560706927504853426917285342643911005914400377940745025736334262718457850612307288318761068895661126527471149558864991750589990243320181891764054549503639785271262189740710468351438381608178106384241648771311588789137163793673360650006173600318753781054274658731224492250576178540121809908658424381363057142595878787392167491811129679911035051593782077129771417579588955610089941981663880217825597351727093161357178076459439583418223937799821716005511074635580152456970227064792217794885149012707857234834111768602606520108367201767533360241874306706258404716392902080877132514164445119056701722112114247973884638939748238300885726634116169861992981071111095636763516094099751900283704203918153201258888442845274862995854946652858311292503850487073999079587654292902094990865809665526794293519976837235056263779328454192737794469411000605351601640008190853416032738892118642965812284194368619144685413362373004460325744837691727670054741751834948525462046108544541311785913902701258832088565531705201543088137274080695155950671574950458975968115253115769660846755834082061827234534547950387063848327308689858886987975760808914897075335516697612970093172440415885095331580348768704765853438971252533583180849140825177010772651781631214668296730021440503092715953401307324884878738240823891749982735115646802665762622515860024619701132734247898363061708102048217015386011428005590213692538175787888055931237068164310797168611086658006357940475702792714078132289391388383644712985967744872542881496655926095880380665752815319225149553215354915684370749088240237648876217752542824122687285286322857027687492385196777459132429585556090065684013287404141096290341066911284140837767735479168113857200751126614975156951100873472632110315967182929684058641382303232640920086901776374234335158249158869179365119896643626192486772821906201557589107912200565158474945095405660900733653858626997787396066553480086598151821953779922091786036541119234675318978518411313456489639984131694400537467336464469611499976042338328087009869808688991123331249803846678249176576076007097364346945293263049107511927085782295639533188206959587784562301721142717843526074962028152666671261113699426294138964856062506116313550547503907689541513423596771968424650014404957630007102262652010192425506776558961145985067926993564577723727632741592469201184106852888502336149280780485480070196330472424969218978989613092305564505932670737750677619826774688627365078497152242136877508540266870201910740711714701827946194093002319491563870689323803202132285648243360866554172012828200679149322772898854658967260561170561768559365018493351432746337259844053709540839201581115953143728719360685124342299633341878409275289139381553477410949084993982450095819032514092993241882301824647645732790667588870770112322118783740956503889972715596761628184797237379728243666912171862064081807918403614425324096500605194335145254810512192923419308540811481765000102044378766425542616178999009480065541598650342366323797624565039768141209163088896751652400712232120470661832317847808475306844619927609260328923822923316572506647064277005897373920743449742006353257479830357187118821521017980693245793335423310807378695641814188425492912533773921634576583841306434174891314722767008593192011692247792202100982139315729774773148790804718416388128290047575761203259829574258016697915470304102628506040534142633956607382418736824844385811771046187682135367723648464731983394303559905853311142696731300065500137565385092740405929179450778582608582155794367800600710719006184700889172679979410444843818733031562980993940022744616727871716825874893937750554717204070822272150939197797948376019476489407357479383217109969784131259539134433927582983913760049968925101455738514291339048285577674117977972809553938498926853039202552395534048930569993180244685305627185710853129228920207608393626944447398661977969179873301894166793884142810788939341327679127732962822693640011541537482929778516566363218005824549237696501036759303313002256072664054140318573112505935139599916675495621759790908378195080531073903403443549589491648874573245100759312205453960533646785780082804174313667573440890025365206477423275230378898586030056304628042794426346340163623493892804828077236363849341277161352364300034454140065463214135246237119315787949761560980244126900590877447189986308944663373929270719344329236373233480884560483121439905945529439530546206412797560945297593144640039540788085483432781968682751224446691757256550534850026954495330869592786355452541734611476962990096006555956188604490698434029869073978219710822354123615508525183127212371980376425677969786440135113967432480871874549702528007076207298082604117436434388657575858897566483029309644334235470136840256777019296692582795750934777543691888880834175099939560641862779040539786927640446372768060067837595369237803316167898419045395918131005444212591916090493224642106322930143050784860627276062746392820789577990039368538305383539852024434901678615514264473973543099131349807785659233084473211933254616050327751553654712025330331143428095605270393817906529331377288856204487011936963806075805442403095065199753969701962577209424767709165523097356303710560156411567498416974573370044526967507344335049426849756005329038605031918321178594766867278506426324891064188821108559849044292768015024699845371468024401392220437096874489457108158839038170790892133038124782966447234917033465778615964347763828594434462931781698169483420962818824594798329618971234401704759838524093139987955508356423725004684120907588498382738237206588923919807477262756131238041245960177513109622908781267398837320280901116201091238118005231792236429477757376628944889889416209798396787213260501458563221424179776703083791277537409666931085503756447693773141905885762326318796409584359981191497226483626088880142972579163196621021730890035070004914640211029009927862499906274608178846640174462021091521731818195096129153753308223076579973308962176927417833580502420070036901187970985522207264379189268677489191703549214674695085115963056893938385125460433423725644101966301284227529018365270191265047398713633121098934208703631273028505722181828814546417608589656024369522518266331131624507006549945099675617842443167579452274643531099641260337604007567736348603138363840962137305684259716568349923571005428319176846010060020709507224723423320278149658325813223921704488742564253019817791597322967443581616954716481562848973572594433211321858399848952712550799451957418603582520567329579066633542138809379642113331385775128608393637932338740039907436196066722754219371866535005576478399443930316631987549688489836713635326048421200372856852772153141115002961234772891731308227334376389835807199145261095983928559599999539324157665989451716522828722284031462496480906286954844128637810276342601672620471357283110793699421621931142805037981300523846494286795472002100738776226715286513003543488322347820832828179286230802803904048826687004237906835514308534842572082715158950190660795722104632963049993349893910004931178925692807121736485454944874275979437604948376814765947396072688943175084288745800303972418348168288241895795211493745235398911735950514296326788016395109247554488915012557638885695682580537204732484026270686172289522405285915069410022862736612402866386078438329011342208596889678427095224959887010769012056003783641220455225368301275824977762044115301548292227042496110277411059277716742217958465621077226415738374144784855737867441301015409629815889052474378177927573157591553902989116423560859871018114737794838049863491782686645212978080611041063047884716695744992087463877723744415606442948688761026088457541353609626364393219535261647618868211053048701718305746908659192459552156022376914685702361051675182236387624977708502982660711312067172095482139452156561304798967978937046688864640362365580509451764188692351931844328498850399289273315475091933919591504748821030673689564452852429324813426246597145932489885120482387451181828580593405953355326149395576796577286711234977280588260031153614949140572171813331454959223965216117738921599547594297734497229702885297571009170625930782437797883680472395453627849598304435971654213202874129609196976643264988826778301916709171991030444264551138216994439113607367103480930439290714024382373916942634282715988424984698144101916774419820133704162379522020936389534373058897020779710258273558130684654135270817092337911893106568544707547576873926724509492292181891107094625481217710200525056471871299940629070807481631830135663602304508980364267010341443822241293675886960185689778821354707373375408659248059439283714007902995372375801939621840379980255433094588525608194573279097404083108103483111960525120994602725793599059996734310398990775990103820669631008163850671514585232162432421157909188549546444482397174822307969367383747826552829508167662746064473127119946844089579908847755558725790322675751759284319241270676622505461403515751011748733925411117194582381027206756368630131142314126809412807548548169295671974405831287422433255900343660104921876952289841968123470993282969149548016595186098926888840993721911822651963994250085501998115509452907189132011653054772519618862571832294588558111663743406830295354617345994470034815182566905597621611699197065796243372430619367628002960764623856467688006839595333515974220657784978709513832547133042551589861391355936703277455912855830762467858902054782119792978727243862977743460567343628068270669365213300426554737323650032129472543216842128876157888177439540069698338810809308489412656954918403982203184924813373804341027232513766278946489644664248202410861925667210260863706058807025908742826539400449763131951777511479183731533282774986099863173832149598950336215458807016298315699376855342256424159227846184824961300492780990064785676228982947334064829036609472513248030937445101575511884458957932253713000353005092248641137493453158442251679619212758710289478146405183431020368673056306920708774293896204835784682831680668726317724914720683481816545686269239684329273705759276196711474255289171528956629960289426211199643159083577696640351837454050521208993898917052210618448517327700718539869929919301564241759131968877871250709221458192247140397367750664864901454798141469003821692550197964858234203787405415287025783705497292389039711196359290719298079222255295245597025054298750819433145078257100606776672416624792687251493413819978757839841356722571311184988717698343352797963492977461280699963875739216263253800230477961878135378552417623923525930164381314088164126907331002157285789951717839788915774434750648047080857906015596141753777574731750931817856391335099127001558314122561918266653265826479548176015400265807366134892835536127903260355036594751664058099156347496501249914676856141440999224646231463043557250149134412643177073369616590613537238262210783202607218144371266515715800528156055409962173112710361662421461907150598288832012566772335494409330531176956097869157907934885652017162721283196082800771407274520754753555603670608674209903390905039371039668324023161989806799059870163548516778927414299704306876970232519387828842269891792459512432323456433898651211938451607763512774902145946443648558227932607154597728015484461439839053237479712062985276124563683004417791250134772591968622251464436030514053139434449413962579667818373637755102516264435304562115218159320631364410882589437503720136851764798956099817722689856741982914299043955668542458954814985432877576023723393990527277779997310805910159140046480384480955389568155653178193244272423946335054103607821260688355872070883044358214801891284060045567199008291453158754588784155056230433786711957943108664346191075567033507083742673559985320749283204038558266777177968315543178272162150477176091252316639399589880356561213664088451264248496585029333148260185351000609813037584136863323312291565439142699598262236984060420422078304564570770857861219359086311192804262812495714254907392827733967065030623928844277392686279561529809712600971882760241986563467701168706711490162244099198993148006431990782171522550124906880718972105022431028894660443607587657693452152376610106793173275396105537056816666514006564153910675915029586014809045066738178663485503897684298122218512932476467511465971875227834504631204148401680676518179903570943773294102187844341824535625984783527395751794988089534557665368691626337500395465205078223127450244769327170041767309108201390447674641061429468165404521868016701230028287010394869866331609764524461559679718059524445449769288711422805745524272534887061193158585737625540124117094605777818182335941030796395886129805908888805717154253859424701840904587672854790450507307171570544748553373531932902070146121910406193033290751293174330210403452128260532874675396733150614175226896726882865281944559858370844933189081610176295024594568491102239663358544823604611870487721006474976929070572374339547578051964078446377081024260742802808491397262496443450696384120486562337956303454255418387664896982572913370096977643182117711481056132189173539592391399240445351747100123914462276496278253315653097473219130924781911472328707691925337564055098936207946722785965809755485168614664981922455069178894412156374925279368756369586477904782823209985644262017683499917662745111524644530218625120417632190024606024104763313848209144077777212310639831783246478346962341130909004286100954755754736671408117551527317984593523759733421558082128081616582593476609961785353534473051085780629794478605963528694010932600224357334092214215541956952931566092303722939280639159028688086742449967601172993612763457429896347923502667519103851189194759433038856982105098992582742902387648531179706236560653087061852906973805842831562557818538452564616432871539397711507367959348119175442901887738122000250708470726062616571779747080238031354393226690116576669059945847873447934644462696554829347174786648181670273683659676344575305778058815792309133906567210073901779763656086450567370556782012516658442652771249060173933828772213629169250067960855217600326570708168158506429775448946341697800262753163135261212281812015687363513351941963814658727029362885911832208202032109363834767754999860923757719919202171963525135187413765086881696097004157561215927694000757155081596177226718274369564881224130859571241566762978079238951931429788150123248008994442220655058517466358086555975417753293358588671361521812110224046107315637576349479984770680444132923041252633025968798574747616021919672112787313136624195148825064689384633828150628774565767504874405634620615180991920793739191731356630229729808602454290213085228134153844859374556036729554393232474490561135808272587351913509969749073957039902592316474342656242195644824164911158950165619295858848945328948660355629269353539852922902664562743470811170034647672301837424901281958813871849028093274891018420696823631571904582832816276629718885013996817880033110479003435447488815672194033432627714914156032049611039940204749535890828023513353121217843374574395851952276632918954934171495726788336561969353971810899404669991487328673730001452744826431825461293852410300239548550597946132876950084025679624648680006899001773301855859373968045574704929931602827132803975082760481567278576397638057224458260062033401081151847895147708604855422511683615785623368267270763309654487975357294845604278009844182359377946491415154187999308070680452280387400419038608210063876408796747084603849449726305804911225902446244800815861421384242459244660859889667761494893490852539325447348397052723716735156272161708742887825270438686817604958503079555627867322330817630487279449600218944099304824585421502733747810541784814219605053379472057545540701478106848351860770742906257476543564542137126890638478610253578965988893474147483878462449045528549311228866256085467053091631287322632216244118608430117639475126886585368925198913132205525814337126147541537890850195851730158588459140629993590753316849317928071113699296293758011963703478272812780683925625743053109628724041030542623470425033213508875821029226874405507982426000468684166157339519408638189909585788380882145776831430120759660479113615363987008964568826536166141924760097105022673168724573544353968417158349709162353557163082451812505159630240548219810743149341960569007088090431280899512359020767558593308260251368999558497823845379422254489966544451836054500676081067678247692592803698545273911767535905966077426774152140000474432619747871258189309646790716435896852118360506451201350556813477387442418652125299657815850976119776399019730017251537331767304512017894359730768626358175665121641527059621027427080584783429617225185664676485639499178853418580076398360609848343800562471711268806690463538636316989911517245582795702567735437583476850152692382978985460865636884408932636018932519477278537002383459475260753251557219390760380328442197898986817062855420708625873661326226705691797135028961541078957931618463983725479808724392673690878384962367326006575057568583334365455875645313385360688074604953782354344313521655908294511173762957536142507608305107255002100431397373758770547589932405676842644421002270907362445083248180623845042842142582048250900210394816165202664454106374108170873309475703897186041240536019131561231663717190711863444086683051971505185673157164823237795044477842781633918968213475249641889341281552226949246169243086494193017524038343842735273505777211360451956900632807755369969396833551726193643448189095087717007812286357834682275032022443007459192189197634483999381618245788939903543023409708438906756761087505570556765223848132014117691569715120600615104559337666044836703687924211161981620123671833672687149434492052269589367106886235027635977460202436810126923789225567899715761561345838983416445601611307622327467151904336352029511560755560034777642354252118357937670641752234846632135409008167455844105317547355317811916074443387353728603407553773350249129809781624045554538365508902224779761104046948205765979616835685550863492006471498560129313281738113599559657817411475800984254233012684051586340609903737658487017142144919261170015248536828311109748959978942144967660042025909601125563165971210450614281731148714165968704065495631915055737577430400378009147560924185748953393625003335626856476958697682492208041497806848950517671156085912172407797408756087050425491100859416112729027352806146174398050380334898485722695310255630715407672068852664391015571534833903957998714059222498264378640463587005438597640522889682841068494245192995984866106604527921528638286055570029634786667171572211506418281377349728687799743022254661525523346376844309071233750448805627619149045872559637701584160293219138542018436122877052349584875597343800326873835439209372355095726900916626961417721983888245731920336640945871373473089021275284797158622537601981054550088209922090671328142285977288617104757173572645172184375886335444882287363596637017121063076102247786548583036197849505436613731131903913009051721251321180200969197685699592473210858018747792423192872540588292282364936058411341298081867751482551498599134937298350989345984596010569806842469456347205215989277319077200433506627081588533236547679432236850532544706872608714290852032292497795832697935382727513343834862480270678671749188990084663467861725590633863464350437213094844548753231417899771943451011716520688729152232324952840254273823661494128741040928271503008259086124043534369997530449237956845765104233869324995324824245266794179551567000994159459890610573494173043268158408689487644968286774776658640560550654340458489226156541448595649189684517672064144311420533716582205182282073425115712413944375030706927753724661109217269824351808466493235430863855417484893654615286650154608552836423773727088285952388914589855752810104380339675377253417415246299283043345357837173654220930152818422049791838249538668575709939289707179092941124771390974451650019404374226582673390555396895693850751749570447478919893646404890172249979378528487825221436235839308216061055891554416370662407631361272386763931079924296007672436368619260661305393970421181145174783348523958920302111093996871355246870156071934596541936788013898559029642160190675610334987144251698369333315761586322674235284282899411886639224158804445962921359253157029432903950543708666455116776849126338893596617426839022549692522791929655872132957434687434626745913226912332942611517675063218378540974886112122676816415978418376659957576427606572460161156670875860911814844470515986135911851847457746912883550492244848262640764322071437672227642413853231974938137771768606181781142413995392563297672012036538505561818579577545854373085696323723682655816015491268383278876566587098848781180940439429900714407960088893505677385988784511707204960395180200482012800056289696977562538639173036082849358171047523045327224438203215859931207607036980280605540801522075240941833235551351243664548928904993282956632828294093723869741642483934463032208359006332653534936937038532203625839428505592273051129959880512001520124518279883637801421118193641644900643058299469082732130994396316934102645332696087597796679189473836921083761802350237074083805671222659317582411930706045461762010698893273148655301548990444316078304861779019151452872872898316406888911470156609497220821151898856211117065370479952744130611439493085884599843360588917008474840788803142178736208891308083802000814600372391902978189900921745908695293185577013789935783082057479288223946318093957756994082542882577987435065628460434222907733449016719509185025574960416700980797933292316184962551728269626373441042118598107588016861944362433030776902842106842801907038089722108150009918850094879050690846327882593530628653722870547507174523910967853160919184166743436822915984904737045829662862667033022633002793944700095349364122031661529637741842542032048150839689623157318780765923173306748061438406553358974644483241909673352373513277398053006960967410002494821367350224966594470905154396415458106839706037165273317088896188281081384175570809140845270661278657517172250879130712359736562270460363794900949443143729396582176872238487045755025336143791162442641498313433882199343257488739213819059582574474156757974023976040320222149988988916256849508869412988093083856727924630664349447572903829241048721862871630044546050628373812164014538474409473146287814557095104141845251406723544658334939259640909589676494035611218553748446335318721359165752138666213601546700473136902442021812578415932853928605514933507014544311998854745541389140720293429613279035153985271766448146521082538217188206347724733746621135741190960050813651179294873482130235202320028644139274381775438327626216093384024518078183494302646754772132290396640963148883712880412891700894296937753808675429260457688345165299102429513804995096206157070644413007448462089373547528429304645768316355971486751660046734241239059480104467572973192529746447573571432341336113824246476973004760967015768500473657386179403256258909420616553891996174303369837643090011808134044223253809277429337115352709257167174784496994640548415982990109446927763986793394468030409222657018937533616880132890643112390514165638554396715028582998767842443005539753462113517400520858425649974990334140360638763579989733882322745621317738342366097313498392381633346164064568263179735879581070844436402365515491360391956985683536391999261122732839695747973006572457412697606700903033233186663344265846623750615455389024857239226077999520743175262706502197631793962974031607838046096025209597175950622842881607921338426920760274007873654558830284929980349481266419534431473469705860634494607374053132804699861693910053359773393261693980741579857053399570518833361565351286899130179872582916587540295509134814990240172123831010961836278359082524959722935947054917453630068991540110378583051598901152719996264410361441608060961048074036774341573720167249727651069480871486122826164242883980582284232177850524568983262627898426839227455016032796960483743585866534453964308234033334742002181123349702529075580331548948910916268738385053083934796375480695899079798930473893311546835464282777240253111143231082944543802151112157977230883391576660144198706376525040190398169748726713376909639835668831928625252643281802281289280509549449817158602325939569679604604071778262107261787154233530989691470455985086987283710544858662184787348976216864808798813861792625253099055594501898056995357249774011854209560250707822828529257592285484946899085480820041759174710671490446458472529789494419735278524063515794945747469043870676626291095971618921305044704773657208048563042971514810366211050749903088127796095804884506281643222266294376632651382597883304927903281340670657498464864443822677099293712665894059651425572829448424711418424839156336627162512947211612050001984029990150979363193298274628508660790939329148990703676901279000051820985812639290148773802428906304723574195873934492007078732563443121812570711897422383377231293056984883871493210016848192786182150653320335586330785162849363632602326405173645535848534397931282016028570789312552437023451353102059459860714711573329825015887100841568186180958673865412342068933337674400802810632352688437007685744079229118586649756858495345439071559448256490679040043884148727314681819857777968433564523714705612684309159299624099468156605214131768355459584605042568702100705854518067868110659052625861748608494691588582655121236311911700660119792692403053693449657224886501532927941657103666194164917712894802940687973073676154006194536318461292331610831445909420953223274344264670627256743417788747346914556832409872676918773339687538222253168148049615438533380482423179742634056566732773379681322973023710597885157995596233331415444656965081730113389871727714301592808339768226873334520119313437754707611482128391809461310187494587487447298043791250179600176649892424176530072700405437899574365286954487192615911648651162661157197921247036800334476943374012292090054946121427316767011272086992892100519704004283872669045742101614796988467815288213200373452271266869752227290647911419210413364082985962968312181881601855987979796098698925291920800591592002937880963361818801877244787616086732720617268324179546958468605746689213316322277994620118581799967323421827519211739255349278484258005600512431237425923865105222527892941853649756204208759855232666647230871020306894753270360584470129447546299779918748561864868269000806325171625212207582704764684467285716809287321842191076470804974757433349023476693498917799730474250438157496729683529899391587393092280735376831712728704280927450376548121211756226429448428926397845467530943617254653018077587012123473093398066401998688181456947934408975429199090606764666216500201226554573169010553160581388333034473140792930033758169530465316785713016166282630941138486594969847559709263831963829164683031347090564210564161002410892590451580171236078900599646316717944185854785111084807607840209501431067960910391225033491973939361101346253123804866942946968541240248956020691804304106381803567345238459368215110936211416482359951594077397979299617543316885240496471103035443101813183669504047330221521690556807074298484669286799037939492865261214842308589273074889447460238818755608197968083107039285384517990783555400098014341548458443361600026046697425948094683494149860861742958917778451717060559219509264183510899325221395036473121925621270334232513711439542605766060396474431109238852992023924251600775158217121484086122732393393196030888389480860161131994161346620795742797855385982768157169827250424685513323746544971912694351145933897951437921619807186612421134298444653918774129479523531807485832877812639074976655822691453023590852530380363279627137089437409177433414516458254920161085929055019463249284007919813247586745704242310044383914956029143909177465898069492093620826214039549028555030399734944666352919370380888092869115024258176832434934742597768514700203297392020156279809720736086763012874334556928005690819071693598412272994284416602015276065655766308701382544119447783661662290861295117296454336511049629219501816598310216997373668304101538886116781163857711683716349360582310966886771349940203518351179711045109151516065730376083985735968562830925995368016210248531033557555869119909005605057262451337810315339472730566097800455895462253634487329702317500465982719789685432209847893775721347079170012728000211361139275484854873421079241888848005557201129813965483015129163784034280654137266953793391784418789052811493264436256730322666319607003557479998310659074982679410625029288935470412749608203821792028879901163579149528324167519500665789464990970060310364255182716557879836764816125089412631395729695373376236183538487557074639767478110733202066389513444046701157280572881997336262299474998396640953422092475168669010419820021220609457825647756035382429551512963174749545675719019015128455819874122209580757515291126741325803670673814496794655157167542244489933067998552988001265673348359676134469335487485603629025571741246610869580920712869535821686827692938254431183163915801868166460820021701477520258410450364791513086485540618045275986900432892713984809336252021618010784608498511255574683880381235749313116541654634300493454093123488250779403763372651501144794178361481532841196674269658806900902280693987282485491855570509471652598655540200565691857785197477299682129982915847544880507454632285866053665119622451539072334952367028677920829855256548316678694691005794368791343334833081531288808997503359656220828309436237812114809369918320633577762246511109561767658238300352474873174683511304923717169760693486006914344562162148710788737616916395469551221647675122588155634267585477899931357894875536283566444257410624647261610373570044778798915395027994459290356125233259451612091459313834133055330687605728538988865059190098964163307590944447579815884550939875898164048912398824537817533101000260128376931499651787556308199055669936832634925945377326492322240167683765573756387940509884292295455546242063423429635145683032746602587018640876116782000859423654856314433180237638924703154346721941736881247429611587012803994928281921992765038996176727875583715596060120224308507729634143646155835660211371647046026994401380101688128427468415899795315750904186707573527585802516105418385929445219804378179543570847838763345453513585294323106579907979359419296617458007216237551743459270813512645925293796608866707587207106390557131817560406950926423441611038634023995192446596198619596767849818341878649220936157222142822772442123895026672140934756856494025560243398171991586889006710318462278461273591820061918202609472057479316817586400190478702685293871777670150027427444376624568249744607071983373915194564200192046505486499492672575634151803263922511747480774313699034514697596989317094639344599879165517013117575913419757538743649542748747643918530070459233822865095527718314720137131436477567523373550073927864613099259595074342150309568557734479397811844653166638334489289527633073738735645111155464740265173452586486133333865941584306665360908146286821109487911611271506879068942994637978418742651441818645469070118856213445557644251246940037622019706566229474128617464786212147688811597189344603790366353391939676416509296951600843949239905624936232664933309454036668932709107696809028063454562556492451629351173347946092148927830087140475393015175443681246614248052700872532840238981986242260739848897780581840681959282189213673896576484123751181584658830612055568065201726847326047692635132454106410529138104426287244370481960443103066568376319688230116376278100785790474993433212302109353452236513197009588263472645969919533816688348660303945571070890362550036224478062875406080996746385210785581241625473106220719229803735819350923246660155820692642707031180023559653212453767412819380736963482696538579100870327754649391311022706742156360639814533258709939879673897631974619779193144471464411189448924826023377198792483714095040118869207253859898682562456820087697511493919738398923938292196681918975001200193112674788834751774160213935581152694431729766981761949509338065637878956887162913033542175310153269685760961401744518764880087740709312977330354836035096287466954759157161728896262085097647977651384266135782987340006715479033842892665345275394808016389706434042430269388657609202975302738775463345086140338572546462122940823299154406892540046689703290282399372459646220714372512099031088052376852596069960256745214604547263910617262296862330142397066652790115598963985935247692510641499412537695885997317449858867501590654048440354220283213848850135374731475242379062555022504260808953245723227177786024485128305140639953136526176136072155857914502396045712201963028097281297777326723160383341130531258425425818325568881635468700563278984651503103108484042935849277456311621355469716437592740739540361852293609497382556370198337300474927519925744375595900795255358467247271304051663030970962751231395331615141789231862082057717489704063089837222309910309618414506678190603940661765774743478463869111287602496063200811962825030054214825659689935230313292942719895015505826974378130051732131297827672112860941016595073804430395879605818498484427427259153467030624346124007434518443222984724357620479193545761088974502015893370701045676970923478779470290360414964050083626351140798177399043969795748884146618743261289501638128748356027257058569466661029785803619512032227597353139381558665693285568589900401767960615024606512145684583421947040366117823353752523286927623454356470985579391459781917704280943239668614874794659324913485883598127720129000239833842484245049520763198228508122902338199261819978259805220845201864089172166043937306317626776427863019758881891710572623487166622686382957863983937030474063489916305094352109245536265567103226609136992254506878872082398947210942725612113135088307605185834035111372175416311935337979726320436146339669674301848071210935821631011495314329884081092778222844352015142959279961705527261809219756953801796714107568119547675150942348594450195290535768443654649601140284427298400096449510305524036053987403843221845394411294454312470754764122391148181033971333564072806498210584054430052119039516379440777782775678760420350413209467965581548076560206441144836886852286525389616128723901632843621422525976057820331940184124231029025472915091905725866501419650461841954897005776908631855415189309614205442797715483483697739603338468825952532456766137242898289665266481680659314602035315121248545572402765936065048957455528005514339310376489359099651229143758932843076628902279037029312181733923262504850806646501414923883741117541087811024682781903549112266690490870708971184264009993924200330234065998874098277597867706748134617559424008550825804220911768095630825304349428164860319811334079609504906265336001615263910213912143461959317292726847995832736868331123238255474470936071144416368178790497985591805820350039312941314866913786830292045113375105559646257474211410969050786916296751977824979596455849462209590806345551940533966225100859305716752754228160148510845155187094363999920342189901054505854545623119349285667850003169385779930529694572685631800212745858985188866934974466317487277880132194294672889464500926138401394064071618024363207904660346648668730924031342520735492433757992803693054799295156388054236889274340038578731598874107960303057437965338908998084884361320590508511455521197812577802419770439821158058681110027056257651698292539975366362332426706488431663296438468606967827351298227607456434958295523768789627192967763905903110101077627867471595323739190474077610732491694899517882770049152409022982989972752211910648599756911503041280678139452845073141553799240380281495589131847069822970389839394282560367839070337204557000302361881577090650665013531472384474385669408464639546440518293274905581118575404907574235942493853427687547688050430101243842999401737176529117592427592029723066979411782256530527326817836088429338281462128965498726894603091728485516704815252550536082604827291808268660403232984164884332546297331067544041311344734704445086930174977147894002416513638998383088822738408965240957191896252004359647395537669636974642043733744018401205244808057429051213769007734989714828315298448060414688257953154414200193243560542261404145546415242860153766785661701139548056926192632317930049498451444840596351294502148347849429484520138626545888993830936776634832715068324044113618144909983656740719942187134500056165132966226721972635959897223245109501360560776105071243082332107711180322019549980139898365267087983863384436483667359985265510332421379981671749245634045358025606781214034557684352020135745701600403796970551455934079276338818237912534727231722928155411094787101286623842892412360046719639529254235013628169693745641965518751115192599143305607422432269136245730201592224295163611833968593323909121336731281954806487505954249126879880653168211376448032316001122053829879574376718629500271481169501805196650254422399672605102457121241893469163600548385812265717090132827090874988097746684089858954686215265757927747862356911616978618579234090447603400809929549396527403140214193302241873723347640431263591321889463886920951089543934060097607641515746678005174182899474922983591066496051961635551152006688501537246225491215345247084022883200695324119818671639982426701044033889575792155616877104620990420384598589637382495015878028739459015370743946807590296645053567893056691519943789054736914478536959074094072574088745213526270658974883503033589847202276146011177752482655759121540927693666959287853213347608836155437506346867807280049901513684836167549063424252601157716336045470201683791837970228283843702445607486463973983443793610013368284010803155514213506281851978572084725358204493991179779030200896186049478322840397804226431351821571603601054092140119914019465734485096331983877210034182304693627354788462870409780928613351141364416968444461184361895229193248592263855541430644501472603470371855257981169822765458015178433725029713306012731115726601983405091679399521269895386548689766088828814308905347557865618070018643554806492518595119207390852490040268658660914131177699602643071213191370549401547539040174013990136113356019891942268070684539243377818455915610702382369231819471229912183375719079150671071445640465427068322147141128020858449711881896297662976493547583795140282188485633107728255160311404263390306442469688322600041401989624559251897452193587813228123466602303520475031733978586233650878389576224899586515675576839990742198400934344806739907223937022897521941862747139052290438195821688503873030560094376539027142899332531607175653396697621410468997761097014273937561637803405691723110360027374205981623342658743995889237374805945166471488298501165474010190532375839506918784576406267414163142865296146081684113883093331809621861990324904995916036987523286905670729566505330544670286534695312926027326026891234761905365008669427647259365034422515520041169325900461568405790032978870251942756376574423164755217904582338559524194058890318035362452430677927362050229020087411922306712708676537731785208959648552072894712175919599361973032315088935182813852287822130879230352684221731755375699009210723892679509162070620330202328645983999294006267512973154742821874223455446453989549489430842123809881061593540110362217373390982469909494057370031389454056953554010935835012551308272173939248201019319067442016139207313485099877869777840165922122383001562016166288699235164828807021102626476579559791491988011163355932851852612320195048211453951861501738734769440483527615955449381106578552643685929653828843568593699518190010214679487833217640752087777303825047755690009173660394774815791422185650444553720678965929627179685196794304079425862757409645966155881372021404551447265635654570368261087090362119944961144614284112843791786253702986101419992167321620541719895305170008156266737401676747276367947310358984024898738840908136033829629311389705891561102135524470059880502011340170677536920920546527335663301724782818739582748150479516264605239697685915823067417725172363751510563188694831086863257465925013174428616449777457366774077487818093400408287443498556201958519423917692512843600660992274541845235903092649749031817117995804599908505021739049516485871514264025877807984317740242323284604671320392188993620280415077116160658424358908833308830113477995122490961567764020793309234512053592793735511292292484435476163981963744036131818061607618401813401610507265262603964296973883024106585360343863931222808515002264317785802812177258539324581347120132948431720487510987379215410199134857600801518906446760677410264755276371309921645680169458827243854872806269070189228468579140913528024302243065549957587188148005386452181927155458493604874751651216495011224769357366569541177642171023116243036296448438919771523171407948301887365477283567844769547117651819829724541129977472714688540799430108633457820964937006851972440419906088659763323431252232711183447905249223442451700428482372705068777622922448924357382022409644255881202187630776344522766932038695439833742687685857348448605138467979138228463302489987345725035810775130267099775111161624951810107521280631228222029170376128342021316963309065914704150644520680696034388712614109473996325634247991281024022285889724963564592679003585229411759532249969211074949789075115779715788400206330089161786375185077610665100095409441219472795705241619351138101942848685696685017889415125758583595006694122126052424679271493998229335159202192154626216958887810177143436772328621019992026037299101765426815973192250627828657587529226731321711660781289964880112072264655737698764154749292608916269598629580964057177327940870649083754747577114442172799683364640577522264333333140558327386427776782937841467528378055814932830742618308044023493624458923276652129039671275343546246184943926750924886177561084079037706231345797219287957449133760817702159850806453582346951072850944708803493344342783174190265350754550970609286509985143608647726416068634362990572190651597855001717036399822888032478665440092212815967620652387549273912152060282643485942972130181030131829939324366607830967761200873708363939403726181363852029513242405841518003044434357483458543199446886583695531444857513652279032191021052506251981484017775166432412276383393088123663124098710658431675803357443241944585451172481072519553502399523498367030203160992157563918777976829025378309423189818539364709641287866798883921401831313089828083214313169164311199265715741753771870527806031297012994731480769392976725652175261245984917631818657666915237870675145263558606923470024857496446431712337035020157284492835971503769084228232950864147604354482405964470804661803074834658672706359288419599726071161026380014342427192602722611400993086103383375881722186517228044902532058269346829672350362449282243521408845184272678196885890925941757749825578334612275897860757733786599588310765448981885425000494541387191276898734100389747902646044794327148066292973153246419309997295823089642403503916614473513906403223660567661602113886662284028371223156111320506270836341036835053722980075192323139952369230298101305288668317907756909069962176920887620142518175454024522745847811275833811635571363737215791428298135160230931067469509773750129538739605284831693301875983581122933879613774690893886670793731717391461426730039569830591247679688225471222743817178185692122691013694044722180854486391007015112368347954798533267362001140046499635242965612036223891121514819512387304211773316169446759027125409700958587256090647614347128127943395184619803719519624909772900301142589363764324179042091997882540692791715596914791590462985407625713901977410824145887328997979750227769504425459868647801366876844720837302149977976267010075036947518448833479527850656071278250901408377501060349211990757037427231689827077108968761633609069003116009503154676691081846975810141006698383250240201544523151185417658570356896796358175063303667834119384718898943894353415300324563285542734009041222134931374657651315554055223847289270905930835604675327773595379850336141710769937558074806830609609902337288580204368110477972727734183794788098383682581284341901030043676481668104990374152205859706792014837586552004211689625883346102073785920467634293022143510804336834395801317740226209697825992010868377130001907421656082374864894871929424077482864626388437907152556367116785680782638782677159265638420066095099816341696556945227653045387006972268382745022031784521096295509390976809959829553179519812083195992834293309327413800308853988972686221311266630710287244597773087454699375615658887560667103785601803249887081349782692244439914809902462645127170310605615660613548493016663478612774280041995597625019644281009571544549500658954853333719910902814183158565014201406927401508563629681978132574147825659298429512241235287599162902751794798359798822701750650749788178563411119845228028389567729462634300384012096638287962920103734472935053604511852930735254297778543347011206075390979491588431706691035622389412036041076634159260745091151560556465829784883889773541775355722977049012542131281567307161218712666168236796503150886615580043288350616349072960157893964728382347860822172157312324622588796638588825930773570514587257329053320159992754329383666277290462980194527301799714044962012049068608575670682961917951009537691496834384290049685833265106387875258902675129206754599468581339867597928229664925256762710717856989152482152236451931847694296208018530655713256237877890063422748078830257957563468439910857784750439632216755839402728282680231057850846923941387165886334070451460516305988412635057031817147946463711036311285086768446743400525303199536353854458330713555595134415983589082175033729806364694038592034163233018729557474668913729591344807095140027967890624035756214387586094334530397113703565291212258297854004074920669505544433160743804986504451702605038407525994284937656910026709217330648936279683081189582128601474952800066437071237338619656928859960261355876527220331961830076433612326221529292371057822608585568361393723184843791749861142943473926320424543236842339094882227285902317714283928580130866754189919284877048310505011750312719455286536422508737530961519807615290651424682518368020754828837660104897186113613849632597429210598150487380085611308865596911376296115178488988960717654080837748870061370529413085574809227067413829720890059194093599856361518790769458028737510613213283887434756777645681983203186863698667542410639712000510356684838905266444009282847168313113224215596644135095133923054248198957287015206882170908995560526838660384162004535731799142276024015962144633780303855711464982290855471128278063177049695311915571962495955924393248130953430987360819310864025052686970009618169899672875766536920525926668321119449862961693251006365760975693593160696334337077523090241469100758870089805373359150411280573746140124139945462214689880636207858344907189441207971414860974812943582875908067379743601472367546113805335569647527883053556034779751314640966648986907497373032887949127917375744810904548078812449025942596367099077096754388263455323760117399425864249041137313984314781481246550584497494964312780397307271794216888911672356062102343402534375767718702212699484162693455791595055812261784330835637833211592256598275631917829430500245673479400124920797507870630618212338026317684062322084612581443414514832150039826891355028508336106133131055083779363136514417149411404262104295528287988787879223771696273151874446882387892558420985308158317188555957902237461295760655224057664385669651204633855439333838842504543070088230614038729711512683211835990567283294686773201037646979195162143204002848261513707494732180478120086408872530327945603393389454634348228992688914300767300190527985446895963460205219962556701350118435739060338469370843481010159589478352905653612064258680099040689414556953745561686575338214385728807835767061954328871990252252699961950120076863797286715944434386763878866982299962033815177908600390732817503041812126169083215692305590211171558162834822645069047893403131574059342370003039499922199673132849951066649342779514492737356053402995315851935624611590205125087566742469748242559399337388754281259183056828467513370613938393072673622768499896084939763499129792750888167023457263281364842664454211550105859396757074979659299702892264031881697570486195506631952675411262621910936894743045004059181993463125596188744354454462181378669965326033895656688239222668333130371128059182919106219508562437586890930030039520611422911556122699807145843061396310065420432014973836493289423952573554971649264552882684172423728512763882447026923930391557934980596952858667364285453592574532084770064446062660441827195021229651598728719919483791555373396947987992951706432490352328170779463323870202058199877591525692834505971978388789851041306894551808574536637228671225043312586134090722057863905273110675356388498362633690763902364890090779343706626855136091393549363226811035805016905935622739759710595808352378499143155939060872025636902329001755788171200404920441241240238554490163665236754583166887941875810382615630615587242860007652598840546472376751270480337422764331263582056253181007156596997517184654467740015491709245678965237593247069039500706009927556957049478968045431800390610047750584803257158520522976892998062312774683085933369032987953313144292582489098341354909395800576626441096536584774781437043318338597212060357411774382457042936397013099834907546103623734268116543436297388967892181502683808834439001073518142737224528821324120551295606986488915141479257824341118315703362088398861414382456652951936751220402974464471117468513169822671374171272152330436926949358573891400316516785000695865262549730751363452895777755155882586009866818294074743562926224708751831798715195446599166305473097453847901727706732715186965502074451194554259255990387597121359272871124493377402952287685242855888180664564149232361024319099088911481676414973111253944816098667984279749199740404961029300135381631991846246650116932215168293388969157834059904758189294443321527551114634412215468920480270396608897021989138386446824775223910881811668248499224428230124382187741224926147292636420611556088555097725102183857661910517405540639937827246117536006846962812118465990777579611134222285046917595525783247763484796330709209769702611466261650229587165331317368884768883251470103385245648753167251117622182802619193115871272968929034622109025749342171671247791592754631575430853995812962983359483429252322552893821802832072424434079588612929698918807980186275743092808677687102094514920481402093491373436115286601539289019433604615441555654719972982349792127688548300605040592144654033209635912541296803919247575941478473480187410152528368373810284136005353849380132293484562252133269798919761748853054869763501736813242124918539900677873766806555125863062956703382866015668293213854771344518192582519352698500479122750674262644378834586272324082459821350251683245897415737019424039404563606129380455326011944822587078729184113072842843794603090091661434542553096869092794511295337819516277550264004516231881401129692969899952171211436075747949436965176486615506101577731685630617799531403573293239073826825747034209518494021144098423428472789523932011692096501003052246635738758415457909672549681664185093913104013624995121371352301194794108301569522523877733501838319374510750596660131133995936662665482966893977488606684585332901670922868678633614216234562717601892810726186801637908506126358471898748551020800431583999112310152879036581188196841800183458844600652832665271058117949113463291399686079873009633097871795076940348020572358773848373417271535193223331774097644887239320453629944307971301171532306084560475090271576910225291603395143809514962770103833204502251451551898254690771888473637992293264419166317707249804261685033342486202141408899501461162641533171012091740778501957148477857395809652866627401108061185956036851231429431616943500694808645716268111611783712020130225497892399067370950726361313468503951149282795288918078373678685676772146418747976908533368462558441340214266921953753956495481751944863208706170081749810885080860966600882574473878345205349709344606204928290663333858310495243848864010491285157036844101730407372223332309405869396761168293598627584373846704897062129900492249877914018539128439395046814635018457793073945266426008503605730480753808605447813311507980630441586322562485825202983210420019458458752634884199703048661773453951359090043625587548185950951636270190338716553686373790309180887448837198464761958449537999907467887793061171620435335212347688812533675860911288197115798122045964546295791516528240284876579505113023461181024504518740224427995620879380544167298803309063071747966400272752896644722808331056333494611476102346095437864868968100676204723492556811638927012605967120106174606454976840529976188186318221974759164247326428577635913526206064522306266484120288890141453352650961677526703880040073224203521885584884750277323054153928856013458315632280526650235647028221100228942289253834357956739691193286929253143796793513979311920244802006632022999663760194079125378091470563002892158529235254748648205633089855100383689882266518410887307230229826233147800581237216985338699238677366077445024152937635551586938336625613041597429882195383465869315108689264538955771349747801615687845308524423809457498592822575053496958199682457798576058808308348655701114099086246017555351915372471602886421477416888326787632909973244766412228180521894596363610355095073239484802119934348787599842196268039947046153309136852896280387439837011453992331865494251202123664841572581509555860035632561337391787239856996735096757550310813436769837765009569422056352576001095311094387384024102641598025472107122670212397541263954771579784098896253345443538428225605862394011299064055998912497461987576590952272922071475559486534501272730820083071957533925931622211708864225786333395443085778790166165183341428740029912441813664216456221147481770991707813574359595465911300249189480639160704479582458341768865386848024075554936427422383091705777073892127350465763204019624316329156712822365569516687331972034518443266323670701636355315102421757476417268985107200195227241468260911517384895981926731321540793298516807111627545308488363896614927763574654502060837251039147061637379064104327509824110185368825017503425425191507775212109015854477308075384274645849888238398649311253868248930900336005500579949162034842823570652555762231386708721899737475963033986542198553094682070407547113167511352325248861523121121521450372557876270416033711318970281186651888493966574245023076795729123716993810839998331719071293969835490862751435802136027818450912403224709144347728958712023588494159823407091422979232508424800622191044953185705891981091409537716418224100410973433303942904520098896332862470745760264217833136336687353292569968975973579142110425739796832123307636306263953140267731514018332074290712812423793005673971178387895566768796055404891739009979158822416965368500585508043499512614372384807210355317465605624805271632451967009859325510873124640379171843461508533470646726253028584184092872570294228189042477700577615347100695638642079565615781518305375729152066050126487255933207320118963616446117593336258776956684804967911834521679955348673371947656383786401426155994949084858263917748356704369972525785574098425646612013233178944838494445461236033666171042574210304307629027978133165683494296709055367971018069976573677118609822890526474214693312164537983530642467448446545948817977041035320201103175191771888994778369770927288973423603726535521722675230631275040148337235760826332596147528312382850864394354270637836077425839558483804851341768571450636095075269544411523134389682270791200961869980124064664515132048735003982015398942625245947517170168577492297397320393691050907638239448443660427137711495650800043216477006122949501084054353605675915930434149981695939535520204798563411227732373648616397124140284261132068506013613287004465887535348778150927969708365976555280538447208386268534442395655791516737826333428204058910496391546323821206824847313028932929714946912121042967713428676812661814755557901395118120251314639186256538750547771621586671615908365239983805454265142702874936989292420262188555334407639392888511517985355896270364116426886820386574289895991242622961095452778273300561168802798962427957837475544700502545044228671826737074744801143377909970323069752360525255862218110013328753781947844384035082269330561822539053607396605792057638446596366838594496916523529830871326611993269582589651932735110545026680065082052819332786144015879540342163820870922086685222348596372790036763830433144390238501401730197080211017852454479681637225000396921749712838865709888513218263907639491603456429561035462349171622090578890690548677882345824016976445893879404854753706372085790635057103042713349642238308466482737152225249381802071987457821530820514567411973861613600565593272240782350131438034603832934041878933488072187402609573232327770532443022006803108537405060584560504363721141441145573374968010094196797563902972398722090660416062242676601454870506459157477665053944222790959955026340893376321718146471363036104248187872934837745990232852239274698311000834606951648879398488707845602310284546378450238747397867862163552898540327837623682890970921834274927257847433046635522223250684910193620798754154460250313913151254846825576892112198145816505759466399773108276284496447091824639450749461171298848029382910484103377507258802072688499041764411216399278728539475132614252920309013785290517121916263222025646387414773669402430325948830622803251641143208263193237950505230715390549511471981392912505335977771779431783954488203074290188745786525534527085941199291142434776533741110901507964699730914900724984008622605716335963144182992375191826353061423236878219490146659726742501437144382827846856070135883531214599703530029253482473215800405117032408865981623834306700659453798810804094417041707276856845892451178603798237207992018284438528537613281343680740394220416143202420932489669528673452557228168397527000197056398623013564030315941405774063685293684659295718422090493126430313865555953156026379028270175716767204281844205438571503768833738907275098165879853940834891984244572812891501453779052877641292072074160792357772400184901212863777374893497534228268735752501727605807137051339349984821577460969033772614873957540061857590877860809418179575475677946112641513179583312972411287967481732840261427790283830190139353113696593992737360560998087612537580033509965310270139990111785616190317829096526987807109842091486083806694300071648876870076317676983621893339383737599505088751227454454673496638600224616816667626244145691369366596773377924954547808108084607302513370418622137285623262731042984521485006601921304645092291122739401759225931531307352133033289256659769536165708264235607736051965227186644683259163249639604382918690657696813292570706019785044918643282012368596173730181913105382906335592884751892796111531442137521536841955984246179226134789417369260847385756426357432512527518931679699488492820837072995985433644969670642296422526917030215320857735978820679897280930512097825349188640858678913475337159183540685656539583097069092032419441626797715287384795913315431195679195158197845861540463459397474520998238513128779091536640863348475140074923797959544170604923201470194145598212704037078241253587507690088451759862017795893179639070658426087126397429542858632364379336275214713986786504084306291701157472700394616906547546011979568662424430328203875407579745421958952283004734943323793339394916752858152480600564150058763506496734413464653751749766684354225487143122093397201817949925366803767431265315267369250769172556018588469368685966565986669092320312901008376687311483919169312472730807654546706636946571946027521736356716962057930704966685116086350776740184165625467297944287666476185933663826716653397249082886492450997029908057039281560689724022932610628001697162079793886293248532485400367485766175332342509296244856301719200518616640086403878710069423666976194796197762015254936999649618828879244888906553075315540117020789114342845631047342397336679012602734611044418447614228814155669250029639677656269168984681966343689120944087457127386492305549316877527838871003703631248163019681990498100582256105413896947441945500675644830305428418167660726477937776247613538088596704471861787889547624368431645565307849308887245041777769074388228066527626047635805895842727677085420720713236141552508665009155841890367832160109306243017552977355254583969197787393464607088642012449117391591312279503814943754634738127409502297701705940087119491948085863564678610820190867121336571061453002120512306412979787679289874756710866517705263954771249095788700286694041246285478143998447102781821899503024604227005286891902409721373561378932582738069592080211047425663914923868978185603271241450894022638042617311450125874861385423091183539205319082448538237165913523165919757538686960324331250542244306774631652438714309029035863487157032330161524689327115072910336569814218347997832784757200682192941517763257458823231932536912618718917488579087573820323530999970195223214326730494387775898162952911611285928209797692117506146431053504819680686959109931541796841779454252494265180155202765755886071913957018710006751532062496711082333378510581485732478481131214484261041234230034492566124118063674841714055246312550577481506949099715788425482777705709643036711359878315717724073873558325891937161697969007165773950069319934209486165337715278778725799123722434920405537370685257557524812300045223663224827245511220991451101254502753894801136562025489224435284078157823424419575720565174788958631691015172093594886636049389987009312347696111847810337719277690245737298784989926140108936814626709177124485897443401469131556584072844990000576042459770661513321980361701605818594525918918757288293302170468584078733058317098720147167334029765184356459912151812826098987261454522538406274109822272189291936890800135971913003951370357036930585363650616183913637469187435594065814790125004440886452929613723221137729973272832626891914719283640489365369039401498128490324971001605425775839971265013424219849237536468245245716926290554671256038936791888770291599396137117408339542397639849547708669991330792985304293377489323804417187788357382330476063447430486236404517481322026805309065513823510428088880288063486552053633992022236330170013700587449384296610648219895446755011270449660625877449108711074551832101651536805119473111296267867646823617396248871158691320382679027635896100573405585378564039122700225350982252470109239534565307517971073064056105615714620681744472097437250089380663565529258826366714770777441335211737209800564698020400861294807993959908289788779067050693277180739710378233737238014954890706233795526025236421067030879581067453902106020937549369919714895557115827661217831902153326268589237391344098827903930309271245402512112002070664987514219866386583606638229982565837959270938638663334202961342791107968949955481619354980441652896140725634657829206203934808614210214460014292851493811561113364876205134141013351789459269446110760859700524074856198565005406193269256705900454283691308154831106928468611903998022335641095580528374386395580655964434287959683801503154894038396346648172397091478769449154987261382617547596521433760512518886305927925937058251744853692667331318047145687247048235771162800042067064006293139122702111241226191240659081327526465011564314315035234019319254265696391653112720808040613320891325431393143591768385803630918153579344910294835303757653669804679919763740062663685236115623503018476659471400642787644226226723625121670419260239372740858790857629018205504936261904296190092137934649590144572822993370254748627171906272755576102218577233674410562231957140296731644908208803373317027061760268023508482814857518018422553401856423086410729223448775666676676235468791470234500813074318185108044921334050700590885601626057055087673016886925689754107875748864744930515507245168144403266074840982242526106792708757202309673289131049747470253174440578408832278516700843799589573918907617115976524263081178326387167552442871971857463347301078629957852737977252251633535283723771728495585025917947409515319964938090092075677070652923889572100186802753173606633249677249257900347446718888481980866551278616271590232495307123236751477301557957707143012561737964410654639662275501057065448525828953115824394804340288490522715832827508931490082912562473127465226308307910500168746409557081728865259745573305955488251122997188806950152381086246240789504380337416052579769375653707459163582313413446661734239854127337913262784708182027959629352634506970140977185317223759219773701162615603887741103296151235082302971661852593307216719889910234061162585700726172543148103642666914387853197584647350742728535167268816385285191647426859722262890480987792938364598402189812187147935306300884163712709482446129129482937470937851305156915885515779041584173070607668194106980720207883210256737666819258241807909946550175584947469317294149675087682602179813268604747485719364234717773541522970807124422230063049223061180621046596976423211998015615907693644104281037515691450852407346886038215153628979078714299903187713589486391686888192054556681082790160536653656280835881318013840204513643322804471320297086050475460076048803040955688532458007379426586595812096289591503142977855603968897747347006797070313403874187778931759337111291075726925144125630963571068999408872147916811773524194319526803834621465057407979681904417088576388141651754173219646623741593413791103818444567468355850401519221489369451815520550825044220570793799001042507163562046723783642966672133811053377711019142271119641370841041814766889512295455497403220531340684415466238732312541201787334986572907182097183943123246256397808302141053422782343968406018121760375848997500313762903908344223381231572074171316738732335768254008120629886851322700361951355818399253760129051594706022065496537077816737262277595585960545834654305117834391269871031686376645067782454365506884399098663204903966825145445899380614433844324946762341412215247822840698875258917416122610153718061926399507927993154432125161041783816177430346409804150480933067194758802588612394716784332868789330821924882818871480021297223405871145190706432266376470291874557577454300933864446159686767803792795593682851021067522733818224056657098950549265708393293414616371648886061672465302556402248003500271211553221901593001693552910603008196128545150195609095057287085590028883826358824484055483310548801495504973902807202782917449086647004322244965253086382485127003297413612243461081344013654768750064726892476842681611983331566963840979469715845399045386958565795747593806273856854669904671328047657767024598282351660961106441165332616373814802710505895091221784099304819716735515829231098414430793242567687883242228011782996431062032628894758391252019540465269106174247226929103644135122877528965472256625849907253432197421348266877375955293180342248119020687446609439871681061439326717259249862953104264651264505723899245638238645934252731137099580764332435103521792070561869404576639243080181039819878135560517801747142205164852557427699471087678278203505064675472456333858156202820581150242165758149609664522453080041082341815860891586764452259332664764041055784902695358533711090122547995271245628313572085800802617616009039618883595373947580814528712157957346589855226568617365531807369443886534625169454054019728373298296857984970641403102477281560318071722062140988164857731331154620092819656788696705168380464554644709879395123648634798054686320377707832952053538727023429234839613240904596367029769187244794662170689445333531587740046321010952716268471513955093275196790730643177002419808283690510442453843781497444227747406255614049907602618304660057483736527108080992342857744635324107259425218681870213316142904262158126166252536564151067441851842104738992701240090073092372498098723934178960687087725379087227298367862788464608388523211411554426442847614057363513673275248134768977423122188009112525984642341623823434723293191731135608334147340346630567510632538511224914755635248103852188750677559449653322891717083525303175202642687524816501321509189607233085669504913595449156626516651048823688841301836999370714311792011581411568010224727943345209645646917637270968247788902328486168285953219886005556134307662985189389750647858481986104519246277485446074380083783171913153459753793021243037213663431653141264697156826676854095448688241154247390692094191357280358773758598815535677498526366940930426180063869134188537155783535989835317205206966991542526389636507829025469544190188636352865002322246960513262426927218917657816402003973818470195100139835708451060004755338086771621602296592812506150040727139001380953426928852359957300714147560134697563292896620768031924226330458215000394385169346784979697274482999882318540728038338043795699570152093457556696236044771473985799740584447618668814113967339523174089590099528879875811324237618883040356085511756016510886347470164805826544210449903633376494729266809310821729280931640858682768669866320349478742175322060808780132543169144469797768648383369402017440909596623875006275444935938036719618733526947272505655196896195539447003122968361279462258142708503355479501955424524153627708978810497261104726712468761617170080085667104551871287095373324010929970688336248286165429912920490636259058202414809184218523799567200046988239931381793128251408744318722119189408673226439222116465489326667159134470012565432489532686322930706063276783290675578725470246215615064262124512955770427366285964907722592734991308173380659559605411622346826054147435825551987797550593981029548106968259681557841130462697261579105831555682733299052307992617688472018424303483427574547644302237812926852690753052019171918341195012388567012241067475615116198901715848097877900011884223872312131825080818728645062025239239443618850594840353836952895064849077720742767743676286821481371175685671032537812194601581863446074263808011399148442763038691540911235044647206685218462491453432293860170462899625781810787535866406417518473920471982683781765590606493060017904845960197311184296974476340172771013765940204414463002477075950244584921129928011538225139795425421779288337356835275087761933668334547463904935092463463309761635234096455196595265942097879861526121977297108191474439187108835255727532638974604804172096166256765419968664374989876183922138990951115863806621845329355189168473614086861603196170313840913671645173336853515319037641724151758135465741080276816722876887439490423693364799703493199966399722501620771379053294412761846717351859391660503803466732356634958894704723608961793290963099651877859872675094928560296804417518038705184622661710366445932680141513087445335998624239140926298568823311594802048516884071558300446996306005009048846465201887565643277046201481939973026828898035574908055626282961451493597712694120266953639040591691368213242443136613341761440428000162435044053336126294688459732628474232653796175381844244096778228881129268747865094463897890223550571525762225204378035066974878757078322833947476372484505021574893525841756183014826596759767456028882241580474033335954080435429734980902217889809674581612583327194770182381838253445081496750700334427665104681596117165276358995380783303023558425578393488806510859445734564335604100727172308163939670238768883282250904468822156004932673051318439269555888292921349157080733015384020595959217902849828536865266992058197897073154242322438398944955178336927458623654980781751080201465365546677495856141172343761508522287928071977580234114208362333713244755501507325732434405522962805894715221166307248738620453478656784570448945882671407945591835143969349659654884015730180377575661033758183214434013133098008078586081834922678428765236793961147098464518873549537009178611607616727951244342438778848021105943684696117519681585780873021288420712055875701389797671007010965036422873839163125230564873130070310484521337596914789693155077781975583934421677287505592875627340009782404712913805215288303515887360927909515689935837845634256038194810993920029012031546830365059275593385425961512181433800075742778392136307145191522782734254351579583458168689415509010681710526975156064892403216553306431281463377802801540239286183362999391351750874927325117731576001875889345282927743367017811408196547046669754375825973200596906532175015274939331272301707737755831095326111386440804988440715803929311771004434734608096653268000628353608410316422856346134915887609501517760464538415683018290715443291534293645023642018800373382772456552001297743067390262412963094822139200899044473387546458408999557106830896207180953077927667806916451056068026378338411014935849930442240727689397861785914536439205244498453720738991538788522896598378311825254780895903038003197487824514251555535309224054035141842686645292037918202493308491258542305453315915145892731688019762206771526889853779270050935729746875799800715464971215583577392783450802010370282267255385674667062782355364034829356646805684651059923183874029446321164507423568050143624713197230333256880960766100052583502539386971980418278605257884335280778507317837934247173813856522225534950926699323152197673548185517150296104116447700508467820327281360854689231999864289375214239605951098606450536845611553805238884603064446872492721964397376546288895996947247812271960807963436977655589855961195047444031460918417592809427209604805527530664577013028377392116775797342170812442537894260778665035194656227288719798398610646943368358972197309365205939650806819158088444704640033943314566828030154267610714452097791673527970728906845758320185482348388674703853342296449214825602260399174575253101001860605635697699214843351771281512932083739377148421370185007787307759958638776067100403622500098841149280333098393323623334188452112875671506809253756001886662984125157570916833366115953838356735946375049457942848847801111672045472491104850538829907793723427297280808282851345777363299150038818278604102441256980351737666243705332456292566453003943965005444051455518056362572101022002311097201255723795964724202338926730392655881497491605942333091125352983184021913477446817787477275680512629452853345772983993081319935967293362944179382026329955099178432633610184507695493060677336213418240171381155565777034420191895814830130558407772643385422485561412887397671493281584528267263792640537116325879574783841217327138921298170527778298152784311610761489607376916658849844269372639121561513114933376833387173333117639626447934637263645421519837243205248364722461448190564337290975498212655141057385769603912074462977126055517511512666456465360777667021185387449621602868930495512322526319183446055243202313553172202383789346837193161335456593309824487915670848112019347435299476092587510073930320444410758588235631225488126955999778375174190882001954419943694974167994798771053743512012507772901021044723058778732756975193743961262969827717905070458048624970032780173350424304890096040279397927950066116998225507461344999202437719133544716019518539418661665674812000072039444029052625696308376025238104912418418501076028659779787674463876658848471368067855067234202962369837131764465193239519110892928031892404910430549015344645854947212431458430348337950373625691922057122357866960010808564053455908673078067438436829682716485048995505341601108561866406407495532813057948712076946238615331049131028105174442848661264376164412346020692266650972842431954200241293293067195974297467813144785793495661070960255529835139381065086304195962216311829000822983821439074818188747070529361277385611773616106511807354052129429346292547133778309690947737135126872149000163101808685435502583324392309299298039043770845373435621465673309414231448080234532961266211055969446495246809448107750312579992301051681233228107415097944229543702308219849394252140206120342742081283440361920622413410905339413211703776154199208281924904397130785235812970582486110612542457131376703456534266890310162269291537698586511349853229885037931838814175723866129660663098968795596061344466269829712300421074036738491545769506876345867085655688088078385466125418459973842329315149368151047083875607991802808346733411471281067421595030558711404492463670698451882597895152099370784602606910645079856785273041147378652825201404008897888527772051937040327112782209393148368718016690926330907800617109908493600254833571109938767895589103914161098419239602605108841245404855020004690524285717088216445788474845650999354793214699451921712389658083678697702813993916737412635268571480941419725089951397865934961859182281832999718055159017383636820887862052348656129880039818105003130145888776142649967075720492106871578924570414531822492520234544272482520866360246829120829499897820617685433726268545582549842350732659555004427903545891305904250262925074197208525084521933880437604133390718943634383678352331244431663169923763706883129863072801802065201670303459012644711936053976553989874592201420908085543030972566695982435465188730137865331155574114644292124179121148451167377340307532600428865768209968985538367669339149912153324513133901969338692240471991013622166384250479009747939439037687293445200908512213767105985599423282086991090004064719728496517058302990001798902598287307253990870270511432836447072056569956154883757452028606192040460821838273251982937804086494613264146608345074899632422995298830583185077053827744108638274062520835146044459081650379780758544626359837309710931510758460280663701020472428217210999618351815331231957062865558786384278538109015685290452720334593399792427147352486048620546337361589786881165771693148498455744061208318870284213714651330847218561016856577120187397574344691670776688324744491552951720459716887515447352732530559751932570071385849902934415004174067265046382445362336442875721582857072488662760936085998917928536348169580489270800675488624564376223212212703833712971954423698770800097842003303213086701969274097181378094253625779225262235978969460304882687712717918958806158223767067345862868759592692599287904646206282252036053554674624909430934372597562773614045837183447425998701600326275387081116640689056556946722484557770743403756302591814213311732694087263248967633805305134836637811057987334777242248810102640877940853928260971629247152342335239806984458548766411952160745548015733360128880693888915473319796103809360076090917765814505952684370474243923630804279497554159112574846110906291282951387719688339976426335634072729799553781779128470859017195861885726287538343056010893125990117586757823818270038876970203990740535038900144193752131529677827094023212575069809318812289198516395120983505623823677771886045946918421582629102764384863564561016591525783083923891120828690017033766009304662585877070768387020711964010460206052451655784284593529844769738735650982167913752387934542636598605318990971149203656664434018641861796050317340248652445782391609892173262598079364352561346981312577883853744602066744195360478041828782204174015154876975719554825421067526985394805456449277232103736727633543734113513478185766613412127704422857941081214247013412996012073364588007789868773462512928933617846322742969836896416360552973512599656491857831593332368431110667586369603116309874898126737735525040277588763114859407942617353404159817188427978054646733472396489725056904846289428189985997928648884777142828425399589548468243546409787098839761102315384419501822773370405744128288779238009154705718671207795357100490707378207815757305520349248699185336622575660918894134384286479588022238268329828841432586985479101389509672072508638185357448132794672382672776088200977702791477249538410581324803044066799163780216285183007987221279237323583108728871026725728680972384633412946898339734007199965969471566514498451711970572159911888967637259297617399319442585710881887600403521971146146518045878978174378947100580824785616401126467759516441001774494490909814676935624531247950576457923038954583490066995903774438766300988377280156691979607044600586013975876637498638400540470439272389950122804188988436923515509382142335569961778520412907808112012204688013980202307571739215744158594250625119396400226827663546160604655778219082025244941614087631959430242801645381112137122974564075679690450927531573692273109476573111816525278513742969288253370696780701494829943619782848444211330553339500599453221273448917795798839152888216920166446798276600237880122652261749431199473334918550275266149670474498884472272580545532477534729808034692462920741519037368433835826813882527020777608857118069076704093757116186075727163642925455202408325405843005512409692472850113400316632169542289306189795529010700669846224497747047149455700369341318594916379918368446926499822400776974595717757472466870427401374761099211010837022992315662662395111355809078987095516409656754627700058729128994157595311983901087833815070727413189550027751919051845980689281072765539160903498573081064680674117429175118249189190607300014759026217687855730472245141767357067134510583759913073378791082963474124055770367807156320934268481167027084736871421191738857553208663687453472555760710994508655850830573764529220733643515633656382649571958613101404663131163674897377771003746503889375863292361781570391459555993057108556397224899515113474831217858590244521520306870671103799782306010953157681939782768224558488740031391313235146211645171432348086761908826451940962769402300897305631602168632805407653509569821002151882890782568385909253186180660441250877282515537807083484115484587182675588482733536321520298237805450266415357766848145480074580976995904287088229180985313622440485290746351537829713357977464677905658728225676857904432488288437867662845822976448909958674331156713957629836664106800586147133218768987574745969552844296635638754891940575959143962352367846154179485323540817128364191628993709150905153703657794554267752350860128614990386670228031529606548157027190946588611168096219635621316801745465896509786342846771056056583997538714959500865499204118149508206028048987427004999158924215180816165976625876165292425129465735821452715261085290655576545849060519075425173539727430135699299241687323542731825831406362361124029071261867183475529607645800972187634967273723981757641541971370750572985528473047904579540792548493539717133095907845641373967643552024679498398105518534540392131190770847222385009345903066355039746297285367068889837542302738917585933052322609650576884549863023040658149942960561705414293571133882325844257723418929415840869545923621280007646101620040512906590218990019008517568687128993559269893519212865905458585467142998072680525695729949542182209703806384628996066696231015146924799863506204389391653737472249564357775438294367300642886780046503238110070346878140669302928240284902706085881884440132257064468772201095766408581507756032530524628793740349735476578432386550397365666143223448639776370428000173473780218797506799354218706426172464483313922470263318908886467454056930507061678324350670763746986720588225781606831899035441417560741745757130433008827611500106769679987921560520312056570679446558706411546775364197730763205599483609084150410602615841531677499948291329545260900546507411874502549621927720428491655762323385127283445246760265558346513387292325804493615697347228545972732116585511984060677552112301507625284939589782889566236223696314259620156802668877534380253296456929118062949670878141684194073189545592380210874430692025180956589772583594706283792525831244806731839633392098467207690570084934215252653670995634180783035346700150311580117877169225912758907161039331792664269132710104265316157263747125369550297565275686300637639408115906003259520855608798285997518236366595489467239447072616025566310650945175929804029475521622126427859879455590410439414785122613280500766973713580319608521642551635757630791208356436070945319585915280509207035925089139895039707033350207264672434293291872169275936531094984606007299733451498543198059334767457507864720740199264468801372672160136665942663807931435823987569559718617942888628467020086879732302864114237531200089410274732174863488687856217178324107401331471578715018941840771533088285092033947004553977773577442099845680268983243178621872266698772633492668478066739887570283048570076902860010013102695265716731560439401165784224579635189317207820560513095754170486769747225243737312947744178343038484282435117426261526736773369455587255412403245242948685430670717982856664114755762275078474626389669673966121929812155056792348439767781311976659680106168890249467521362843092708832815234450633755617458710177528935239571685566677001616506110578087868645283557264634599220442857813384198612057821044192783611706773357470365425334582260890178027369781854462164878821157493626014830171634588614683196782860005262958300851270906883229234064808802987934643448561264242065729262293234604488390631983656288290733918250219763290305460565675807066172402208434839528166712843507315582429204852318461281085406486624816863041260399868594416014197454080244415973111860254552445700423407959292191730702273969704968591070178038115743578898651540127134880612574155349814989254081175847050787274586595355631338106059832918546326482266304770693487658319227741839449704852362224352119370025572160602140898669211396123877984719610543090689451543918504163022530227114426666739396135229672402268486876230122522269110498762695859198525660403812125617736122855739404762793214829490912860707967313254485425355969320279740810342990851774479772705228101097934165783907119373510296864170115605610105456953055262172782382884280053083974584829348280476241838359544383028403625790302841834610185386130719780788391042693763871916484999622565080858163767644914972123656140661869085302272029418377696964402294050951555336769791887987833889343374777783682474591151684468896037086898323199892337545079514118915127699786777460944134604309830404698494419769234524359638004850472977582796465140097173860444042116312807628351697793822198744124806645735386084071052197664072533785963771959036703605053102632483411743022923478714465054742676149460049870569282921754940592253046856340710712973235388978152428232423582480703826905679497610503109577400888313397422132393210330122554208382648137666764056331588528505267115100914981042133489119848398058150999302201524092480515997941171675764568689402016894997716738403398295905787101548103021388401467408120009967197909310835990806028641841604235518659257043053840226056612924720306472684807952461933086507817103222655178965014442823004134809207639307186628575835245622822259194093234223316135234831250120808459120097315962353048163151808525337330641078895800636343401014894606926574731813043421472935004907147923817395003376971815532326271827248726222302891244218475180189974431929716816854116464419359462041329170423803092498001346867289716564402836378075406838318591664415890357817704548477019982441346386938432429331804593081520086044168193285856719028108729469240800601158026449478095999330485765106789965426726800299441220591702664437165568642693429965345520730885546472097995391775254494158193706762648991276629787796152942525281944627112446787561219149759796875665013818923519845612725730060840466055137348291901242733752845192384708791544189440086169832828384432299801681439604242532482815812487093383638070805570481151667449721720741241412551355785326455925289716362468684056254431304050513300291257187132564806825200208318486640550997498151263747138916053242178145138937714513905370728974593390358004687932455592959913730804542097572731415699915276013538531035600402889511740693345915213313772504428716653497231060005009217951816508569498736906861691251800398404680173966036596398897744668462652375976320027054263405221048555864221377314588702037744510098673786362968709280677630168156352099975682999229570771165867386150437249164406047757201974949241987405364284845842555119879661216002960175219365667654344230762469191740465184218954419906378437954976560482428314099285974601615633412876180735257978852025840271005862941245061150689164331459667872988682352245604462856784500353018852116611232365524439853943836761765837160244809832059904525785067633663807340220318011237577598974381217924608628574833686421952318813143374231457836686856535387227876126517768675049689076204807243524737628683919531408215945818491041529927803456876767224408985643428428246410200256105040731094381407745955486918290157592198823903431834522647548599702079113277492307038590390744873728128020955588139067421026995715366217718063163755267855302232138396673647480189378390313180431523667913696095300251657712508682375801016354894640235517171748003345943522250426953060515400952849398438085207529799469865791916605270529167790040050289560541068267674047659044718746757790020790653546494016726665274477513152229128242149061334235271257269809446774770183647459345644938450658674278429891626628551640511937030598887624936066774593273637372025409449638932128670376209773690224633145617734095739602567995226320452255301178610542390081806753383999767538945252193031406566506419701691406334725546682906706958175381076650130565404254768860698735806090127836651521357755052312853436884124333543817457514841826681550533694799185162443653138946417408793376313903797742310408730279472922452227139038453969065918802699547497002665558211405827687908544568212033947336269602642383268081922637334937329637233376384373085096305118653102018381839217681920537846592484671742298939757659376236081592273162478443845101857633105884271865683121950384709955381452740098947116943004313273204226235759761640256878070211901685399387884402674265169131970650736161720459179271026820357048312680801076353956259488164407764081856691657549786000334496246755359205531765589087765868109104991201820376154135667510700542707974707671427281118166493472712945562408915774822943361915484118069419322641761051960891522823806992150481027764658624431042570993758175617284037481179325135992083893691949429030297751064456913992532047135540339140967554224659649896965480116902558583951329761641418473954357811092879015523202015109553692122939551442178910716815259127797829529277016187127009300644711065341633435343765157025801294367566890681967312955030706595748903206054645665759020993903202465652255627042376403927769921688602039417961261703457551717378950969197711273092833166889042772701935844505917242465111436433521795012704014462330571279513579629047504627217238481302445735299217169136370901668129784706629420745063799409318304393468244868761623060199030854455167080742409277944562969421878498969185856447339039772258407785576235096768429290409586547889972678682743426896995764784900766039941128841858788763734824502200847560975568772987355580797091962332384302015194739389928178743201152308609839202753722335775592675156528673716484418075236181954591843107006964706448717654441807867055779308863146160272465021213598428174053382246629157884558223800289227022741438552447715875007604622190256972890034966890804725446222872410803666025777818141538280296646388399818231703715939015492250223259227529851594618673296470298144788092347102409544378644195548162351115211984582722498912193342652835280867302382996608019037848684532644591661539165411034986396156998097267323239202311904439087407978719364827233439357407481401759460923061590752173932413292334471938172882849245148564546652010162606311878223455287580349283337440780578913894524183748206526618484921202554894608305727380474020814051152162216342367204172605049571900976494583271439742822031746413157073894409270450718539745316944228787279033959078573431663250546238547346137378946332539555128912284012864295170461889782486050342779036304640605086629954545947781198531131050509045661131650716612170207415351964569239888019866456653860389098289262045270287028544458682078393310113601382833790771261403245026497751439537956957097897779320444758962945232620026840278233944216445314820296101470349545672383567530368692390465731894571945200152812420045635927542471547028825898341633847291364789590394678492986357785355214300041542601751225998911004953066968170786773881272329696247216797361300933406250773671558298070353747753586148865211778518244378527384253166436475661307515113117825510291585113616579883136353199752958416344829125547995056260582574971262022090722736036820380162468508927315937616400170543862114100081621808744078179700562092794670878137988971666555578318662358376662029593632441386686104282567193462236111788662590650664152023199930746696110920874067719012383253194471107811829279888753091439138404921727332207440226975563053815403028538652847478740688523306731026638011197955246383789507072476102948473552695997971286554140382608827023742421409878697787074721638009862432973425183760861304169582808533474844405912029702364088918840126570740222134217851510476279029166583922655118363214960981423125111406313419291934205559894191766732112094768994098751674892519658874837141756505240550262520643799857275953548154382797395467278966078057990053245434140481606806721720057389842841873285576672402473011659448012640020520885057198593100594968550128427854848963741492161605137931081710202629448493916208290980398905622219591083004444614334032413533007743372258742021023582915495371159397742549058367693087334275550571657472697867210006718875555142605138010307622501151154568526750986876801263496468159604993723888569195247293960451542897210088681555973606365280569665009430312958775016202351811441248714520607556605203707441592960375357907258141674323592500144913743897964131298615658160088460317335647638128815585710292331717596824817806003809031138240477090544952434381909005873020183212552294948424299611320976528605994760166921421527076895892277884359523399329690054709565262879725153853501781141386676116575690985313821560633597141218878702349822280364303641482679887325208608039075488718739426442205359870845183768659077025519273072318681177302056822817806866300611521110699203202137585609490178749930254343802918768831954169227391443208104698503698840563282242594207838105085290396723593655713220186494440619397617127935700737286317248227413919308926757809291935191486216393225858741287378013450263698371606607684064302714405137009258885632779715834282666759397752283016799790282395780620760284481218970155229361828192885979786451454192730517745300438166848604154615622426041591451622677253911855593794492043011648743651958369715613559065671768101909969848397153780573599295862993954968989362236871669779007975326443102519690807335570342718247609999717837348010563462877483515661790241542591620728023366492393982787000234063134223299860081460616970832853977246877487002878642021189528177722549306095551685499393131035808267920393683105100564122986098287674165622536554933627857245659861578810369622077858775184480575927950890486715547474615933798620826356415540211418836052356298870986213551100058164020546602182312771308835722166265198434447234251855019126230669816474178771897873584322299190824819886037969756412205843362166415170557968417158650123195912774570587387209859110114251842698304939158654796246717328929606606902604845486379573478302853952993918787430563486004380965218769292307871776604932595051458151794891362460399112644846107095975643696351598705798442359175676377030019348720898095107311045101262135994964703611187771946940100297280418176818950143420682745132253259749845684959983044506254923113699356897082257598448773196684499390472270504753213530498789006934666033304293912191362911388903406413596649298147339163452451410119858004660288743200817994458640058666515339001985326426591675692036557300195314397203102024170948272821422037536203845259211994352534546292643912215340502784839207644321740545845896966871071031629719785772607610190673341786185185109361961707230087112227016579979433350769093283300985099838752008169265461544632342629577521109732006807965959412580886212793219588241492042920442334458027611002859271159940531610779438431735921628257660580458453029590855410314302768502384594704709724869702198447928522420206762538860380989924335680649394584691269820650290979502055111784709483974352913020581302935572980485147151267825378922123712456087607512481451045563479662617356227671604481215423650792670011744941592435556526382397377421282682153348810180506008401826194369031234711631879075786209405215995435694798267765028661365652479522370549857918087486386461539117864541151343071235032287066879066048324883626352900377913899897278861193338515119550741493964698021983091497896333162131936552642207765259217101979774172801403890425794827656104772707399095553124260092559546064860691510376634406553731658793500413400881692749603557148751933669486234643827991159461741750249249612585930636323749855608446036670895889869093574315232626232981037812853836819490628999941922893280881068298789898246319457973230660766526782901853144456630397274164774838806062159914285975197604695798270888754372664377405382781551172910355867681043163483883793127707598287432311899537888986458350969943589904067886314040661435393285778852082659691791314330502171267439361650704404854978737292330191785976160057284284572359283695027402972142098102716047908745058079224195396995204345875984099160724731784988328950707941519149200472228995519372765053785361447091271315684944043034600501993910408357140608387328699945462620150616028652180070669427790908377328345701234497801185799339167501190714185954531046877452618064577073063332274805374930093020164111939397470961970534855439166448991727816041013190174694018305036996926004859854825834350901730820831081797721378468347214685702768822222617768394114314495258722860840618813031184456520920993681848400921913201770978505232428392952450022572174150715821268446502212740134531623934242835315403579537369707068411996117833725713607333223400572437963730419984410419036513711095383187741074975350457699552881102460361668101937890563037168198227678945387652541370979874943655845868477249053345934019922263148762637295854031139999022718640741790431685877377345891759642505254259608749551819726611016378170462293785621827259919007926971770055305762811978030138753320075725444489060172058947289863272317453210574866354220692917594618182324912221979401339240942099203401501162210890002678270609985958029505796856674891642241791953221672463435404991762642006979276025039703682235946584145363266961147016641176879143095409521417433734808290451584122617768535798569752667439690741433165939963222932540127476123251553524286889703876853501379284897358523640123974295573330334232703311792356641070616994436462791753887173348260755220429304017249679345753241994560103559782536385235618992455262166235233206280377811076343184026337784771532345577621835172025544380778122424850267602814233444216275223502766256413579080659398109957399937031455892396140395060792209046154058922838287263610775660248489785357120344309970394160682959987033567637973054549972640292577069958011166155223474444995703455013370197926151597228529359415463848198243801245828331852506584080359504963299238516787338125833977452469972295665174101807440370057137200874304306488877974933637122721114949699242491258309694490363832292981933897833417553516048813786203800030313142327857669299623756787846024423885979721369620575214635764782214481903755409034572601795792293292430985604438889788357968226936109860411367197237708889248169126081119945376154305802174472659199060837065148107207919145426087070279289365583498202117021899086502776176086396384005992092693820528117920562631283255864939922360521029361615643925863456620164872558530050270677356967843723293062247939226789809640991905757812368402105272202040683199069769237000809230718904475012035137413110608129774367911870501592278021159834832599999760529392094892033463498006199790123441751925356963157877690741407246559252709156332682747210307385840064063118974969102640559411404676015646884932047383360127722128411998743653863057375801199677769331306919511352698207110844138409329699066627159684073565116322799738544938313655249672697690803602716869505826856195381028619420063519247623790294175658978476287835262394792748834841044725478188176185601678394122202619910902407506526225556946188549259364318084720945708056364521686236490618859007233271623142723057295724575471273387362218236587853599800860994496754592918492851243703008797105745493104825797222144518160034697131243210828992925690724131204734848636973852728362069017871552933045294998533063946189015392681834242387246722820455200512613017736269121127678297043241960414904411854539792664952245120767258303670243925215122201854932951807629546060822876135654875120557611867942159578466620978544756643037758616263797634935307793476919374479480031688910477879220374655613434627430225092669563780369294320017948719132387083548107556121757103092147048494225184841060610075047275369368816069717363055360781743869919590047100390985624984221301549638697594677526653662012354415236677829857597116081398760141046528401236618741739773747693071714932163485387632078543956526598379497990819322204076404119539696292551458566942812621289875054480036031502575470404990929928940842716674056250764177853336105463868720196765339136731020504465543671665302741398185520206329117135773471919036033408197956278835953321049463593154045797245639786421710572459375854564326607885794320126337816074708811952590383710510330275506390926157724954019330855055158024247863160371439887768451077201947688993642379684714346813817500301995941048486895090968198151130657908476183997123248089800438255832397098134195677522913370628038885370550507086151050502572567991705798745174865211235998708553413567219900756273875154532540870335005229795185841815222851330356152941169912787863694806072709613809465911699558548543429795982985022971998972921048474687419907622363047042093614304197175252485877501536919327360823222830761861933867478896537955677442904729666089282154313179695520361821005351647086050267620744588431404025680046517966296505808508563910794979293828270563904840356908828576481539866129719709376464277597400493138013078860058692491534969996323934036048688634658677371910504029152124628450989031064259563395391036088112436023825154216297260523245460095501382697544491432026336683664437240887505482905563192014998105363976070520034296447093109446434374444836576358548826534886949239034200688310813575978691301758081240871194135590359859271426075315998138739337674508816860724796833684241008533492801423494924442845478711715459551858862875124646191461298690608459882743504666915540804285363450703701658890581525654742757066302253993130930230376985515103735863276156601906221864361838317908590983481507606126946936403529608458639826196042938943078650109190966142503875458270520959768421143834264484300035144292661754553521354281183165730682813805704059976529538137279920119979195295844099351187974746153541452297265500117908528753102239913814176394712450294037120423749399038711582716201698850171876342170072604121325538029332904894275596206104384211826518937734865942043306506856428268010979326463112598418588367650295396950482574008574507418963137366678757054613396519590412631395559480621929966951744324385918238854866448744343028943616937658284429846364341064704496277131047779404533355559679850975290188730217548366155299444340896688932141026130565202801825516287280863902852969288229442019815668704779439955873008662909444162624526245932735327479446845510843105383261702939451798025744436114766304961085731459301563377376918344118006036423664249983191799990564098842575122699035815478475117238483648395055354969496281752606504752546422422359707689793191468726730522362643631583950823721312887836494021218166461289668951940545664088643287835190788212652900578392108122600229882305101888580735242568454984120714818361261773983632762328958096639729790396195980589742143925108568691104486051200995854988559323627225799568089124759130945109794118117638070925573884087146726104319121964948439149929230048208350188749561800835168278559938032320347614297662074514950944249441110058491094278227592202859154953041284640802685113434301551954336521875239084341306089154029503759344667220988213957357486730534837786961051416492739529409781936238550554203445814678946628620240336749632746118427526087719978452019036151789067345680897267844865599684615920496192446110777496575347374583022522712631059140212036100133073048140290177186518376570790082346111296639981770650955860984916296031842987566207241329436139806466888412184039111891085165278847133041913992748753481074321412259003842051370913108659819760367227912226128666191600428417273991889152674491636853203431654620259776716917206898317857066594499500929009347600271510261354891993277911690061822616477884350324685023626400085966741701749169810618642136889281780750062217776193673226934161664893725984255828178616603193982926701527611873603197729936101001074313296328023213643614547583236201269892563514969504844684831335008572485199028035553087305488513545153113627065473065691124343049084341310997619611205675711844591745602324702645500852531733761471968325433796961789218677833373508005644375079874134969176876947646658677487934441545331671676716187483532223345751785979730332524226708659217721846209226434728087495700023096870588464655840847469931151599238020092253349868451489065524639471321674897141052943983329087967908538793015560548514201898124417322599320273596598626602243852224990615014624090288166894185766175531729604772766600029666987252661712833306758449982082633583108108174691984947548924201405460815656735628255829091159699297884979652459831580488355949059446777283884738002987436667747772830087887873410318008370838450105716847535076350611222770029364813588707384607284567121542848503305439079563970496371375730204736775535504402334594640797781133968974740216845003897472609427685092168207718101534296290656088968746290848394226404937548849855233341694390037241870586921927583191687722844493170238194295680403838768287304038563626951879004921013032449655127479977639816983141814344854055331491722848835934953015864294563300269072166988063165708884776921261082571035366674325182275635297339916099730477215790609416142468355912404644080532938066462772306902863652932005577021142719917421255667638453627306654000967922879857998353265085577109557170085074259262478769100942898146584151326642846482535705600918096305020739281128148815136559878327835510201873825127689805045870866006127644864778452325567560972040802090825046072227424410043577044611649051235572436937140962328807453504140171843022202529822053456996481804518490538592141539817531884010946808296757237021945821343195236061810743680901489084585261913213268940500555270890256319305202765591992071435454548266968257696543039102015629133721713290986022596997714717614366138970149650589286907492606500664526621860654356422895935871757571941904204756980302998519006851528699601472281295798173070185722982917781933656812964345145321846606774081453324929535642193685714539122331433010506107709807513240548167553096614984671074649496104447693517171896858828008471232053030295742254760164766089701460126924887694620175534793647557609044214719401951599394909616289959090851159226040246042242186646123725070141499384433979623196527198664303548801847658723608410578333177593669396479662718198257086191354139779222930120948858241377059259192903762072021513579032553230080495609405399095643075518451858809334264917864037583678807496292263308789521316053568497724414059328617294925867419596412148538720500034801000690347258441413407026876087183474312940824138998700396020885978583917383898751133414213499825327740436376861214698090900880554799925939556781027104720706184170516541002001318259643783443093358596384057201967672846218041965971137743038640478171152017890230147907456850219414726810899385054036982610307267532305570592856352656301627397463495624771348681843318353078445253826893468878801836769603813714103544168524335311378864952396522163079044139720716722066232482569368642081029451287545162734689500123899148549880847283919976723327804493906432647465767243405702286982000860471594658762960275116252186547786600091955089999111084310846230106488306112034617506603199852796266460786380433734537187182289662387286517950258139290560325480685509551769097752251373797769897967930797365582140243653418474188816705768435685678776183138799678122530162735457840839772050766443368085306201900284221545862862622941536357796220031740506624185981376547897542698784551205871144180950457022604169539457236151263863475894823067064705916558751429928825538234924261098408014694275175220697924126634446284273099882444204144744354108522200692628081905230177957192782841258079491767707238512987439455576112204604206830495120174517950995059483038971060552406931884667646909965868044945022145567023563016931564270688272814651613899897195839292709595856988390105610381803150910127749636125083442569074118728228957305648412806155422452150390016380850608382144610843144702763830029106064428976369214737033897996164334440119052477864728400816611235738531477376191594476938658357247065791424121769889036949240812649544068003687485731538943018657824638131659298936915044218382974626364423851772452854551805982225855396963444353611786834397302261900349101412640683011797064691503716631498414532944906023639772851340696405479020257092814379288774755745431349163412904778474175168031804705256741155398116836407539534965858826892790055711097465476232617116893153436697089196769531101464670583404002753037912758015464212041160890079993402739130091459442267636363131924914337632346590752408567752637149060060291337763980469809458709846758505036969714333071551491431535108140306258960933593474974607583231508050984734567586279192804061378639159975834432646748735941618052054956847243842210875012107979250840517252609962404802403334078768312420565654935170147752120987588937234218806815071088911342496549596519451288444700113546433537918379884509946746122063031418426011062412319445099349497381263759712054710019217727375168774369969406712140459659248939124017122170251678443994196535552215625685520556075870204307543922320160375579636018806161790622816713028559379808223031483850613569509014048909554518006655730911631553106406200665404202006630332286132796592971178663129157420194427699864129751995009960357395132087430197343932488420843879025880876630219880650793325837331647329967576274297188394982347279875809305253559564599080458912652964046980230367534465296085876787856412576169609413832141043278477980245551518885562506450309507863651674182756422451760018383037026186034228913870607643967657378327603944371480719172983123620904881906992323910392294638623966760300133947023356567294615808990625787652192062942725921198571698361601804044667563288649734191291254422133917205853992093893299383994607948749041317606838942191777026813209593751977841922162528930360559833474021849723083500501068829538171083423371185865787995906905498809190919034544734125434490338239264914653095711790898236939544182041933284144048574926342095573999837171168330451095294594919531245843644772104134857305149754316623023497150953722188638449480191144746394553300427350471711904867525946901995351842671405604213418650851010881026584910524653496948857166456143932641948187470622008157619864342162542497801389926527949779979978399390665469688142204291764593695696367907708070516748579413562918483576405025794211248534407080173044422059075985151161330585248518754041199397597085368387127868888779203572041341906953351192406013173640057748042034278864815550479033963423881999801230914635750016828377610453510626579892277569591581206040167010413685250619287014089784970872037803559125461565289572202359701347931739550170139118673813969812251863689888269272875335663611101874162236987834224251803571924215552341297303703714000069101072227680237184779793115499525646644536987594717712693502304428746613051525590001385030640804371655001555902508215472067028424924990666862220923983812681034675113033469727593742109917429172966009648557612781116086655287747401026027528423246955674483855809486167150253430124926267105477240905611320399147405810937278326352173136037034155333856482187575939559437321284963493080423130609240928537819581193842962912190409583295066491611861886640294099237961718586357408578038479668147683720960390571033784167378995470707920942834561124762927382036634447959957663936249360603966330394366118077506409895295515787905987303647436016466945717908781681380673526214203492855412619089397606769861147384041322295027524494051016197686491538311657538575507524950145442657831452697044318326815142153475389302193277292882841513162967861757343609345248659999527833596427585594766764240360680302396846612852997749146137780415485090841185200611948209856740118751652972819881145995261461203526686089989034466955849547663811189149727567689284717999599624160896747332210343616192832771976725135803771031844111122659255601012687609656755513854353713867291336987320235292911667467673908527857589405793418882470152037290453745288686445360906188685969538439439995704996158588185996733166907836282500654962293726707932509308595444275634311043989109560569798023731455071461184607794206850459814177327968539736171191006369985535262888712561087381866695955808203434491356242922202423238153074893097198446196749286746093069802243877611208051157285266556265948823336250863480900901445242863335096954643777235000339360484753476764940145861958571797392770522679195566558607402734472836877705208039416648544759325542172465641691134433047947898922677987542702101075623877658648647610865954290227592799390129099604407120060154387341606728387291110254077310904452458399823679194987630168224478657602094186864094288060430194264266977604789927280387661567499049284220609697284875183109105749229968073674216257717679490709600257475627234703082151662565488689078003062212277958220842864147802978516470236309410590132112523897283836316152020302773699261410271625188865054066085535780885529716630240493058841108291797129325195572210286597208952195669655953154304249418236572834386958145203476229922553439675669547386922867084158164925964607842854640230094811411237033746532721769081281102513577348327641647503740649466788550355443842974531012958495452178660386103024842270599395682357202399836717787228942500087204647266747391304045455998213908886608349219090857882804677851272288846789645049271614244409305274091574378676010059615329439050459962762398243403319894995840035172432562299075318499680790206492230127155347901662477749215882438263826752898423340869755773635854333634768849360466988194904132157197527194029902379441552312940168237900514526267130089576650880895024445642856555032221374667324121797107077939433748066401250433773921195232468871305976621215054335985836336222924308750914720891395434639662154474669506147569794276678354632881654516998668344056665388069121208800772255757998044383041091811584393766555653689348969321709680768062076706530627023134215183885460150114067346053187655089538687759097726802418296068812723740184782981679547592779626578209242750758319612227147351413853340016118077667683403634555557335021039397271544531490244105282992187563847138268943579393669740657558665391591686144571197484431082548703301958063422978617836696348803571632414717102803817738669640444494715288861908265715913747791385985842171952242287246984399110903961900120075475750165696592939504280104620725013292846206925745452889269434274094439494534133957395771510316946440701788274979686075353329142076088664076758556195036601741104737460738644028691720799360486906396553815303966503721893995317930803123807691268331935010183956073706277594824626805415876103888995170568097626317978123286009862038539264656188290221021602110632218457422625669509695707142613428700398764104681713677460778529019742203005206672458106802230945416955987901414887047039932962402856335595070385059908318184060297378531656419541544911932472267096549733590056124927463949005258094065203310802094517791698690462872126912534840012763936003655183087617121664495866970646762146663046323731974160384846580461248202529430173578793498115418387357926702692152223289282559216639016841542761127768318724449571032974435577650826969655334057459691806322515068577106511319630003454841271933085496005155070581193663918519048109210286161690852048424142365759627336347745868839420965111755759266762047657775319824870278848359436523906705733259962358631557875984659034219919119092795238539020172011759412838853164569438574605360338501028142724699913565482010847927807810026815278242872552988681541850737302217306014972295710647649966033993906819165451704009677038636423381347341021511971985662856971818583028650341097602169745063088607237010547568695535154359557174748064084604293828595564610694581381747939456198590509415963088134607379384610388320314106210250679176316762209050722023330178566017603596540545452510427718439618652265641427674461197204365568436415437586704781160485002796299934865978993767121206488089829159238177469810310408717745661823713405972636538279541394255194864305634463681008520743978605870587424810001177230667629574123045363558324991216371347287383974938529339948362649154882038256488043164367132562033530015298763287188895788720956999538299191963793425500567755656745879598211475046016015839313722108570758305821433492358397095211196675235126359250538474260746104060554357290756548129775754425563845043240920205294128360206809778477704937016657390583561070810438036889202629725002532786777016698532256848012233254429396368528705664731991307629829420077218062692626318157386902336309849150019126841032771819724014860817355496434584657795811016773016956462296649219769996072855854167129034030415479545238832415694899566558343385582859655659285040715204541809771261746434845256862805563445594760395937359381987985629443304324037450873775741378601225318891123450409798058328310380327946358484225003619870673093968710481046734246664615276974370388623782469822817439381945496979229010030502272079546019863236048855866305950322241075635258551523582702554751116768077557553759627309073755328253469564846126061449899668548076842405495427239894642809881921502253002414252355956627209575696594951317720959924033016032566341778908585293239670935390284947748707247545069507459894301611965559816603663097672909174015018469168493527353905673521900112962578263019592156996636505425440727915476927384293126692438897744119346952617547955246740968016787237067907108651551161802748550720065232780411023095568918082029391882604073679405518464123433616490554078476484021745788435498468807104798087745107017363530561058611316430784422593694751467913603785167505161518016540387960972804032199407591053094333567785839647186209013532110096184773427874418280620628447663923689419487152427251559101237334711835293479118940385448581895520958693250511237443504402087800517316712593879868407892195732279725690590973198479690676045228503289235950207749225140772004557214228195229547338344403982374300812093236179096661251131319281674461385049594498013654976071534305692375396958398716904333874115516013482178338862700044840400673541304750366743983637917395254299252445729615446316763665165911293595939508606899958326976749931962221671033923243122213194706917993555276921771214954873626677516953681212771241076656676133504298554407363417140604217981172957310654371103949679264417097693802291584640480888404370813457583497281320286532139650379237550162964079636735054709722810765909151179095482337523473525596612616183914541920903602749102344625045230034100915818036123267811018585728012100988981379653714562868995758342799783249891618925170816955557905252600659788450483829340648143204527222574637507341581745390257025928750909793125661100633404742530810381236919396437570650927634883028574653174883853516924929739741997139816657746165824297109949584555121504394780520786465633495746894169163176466489149865776394785532849397906486661311338610698885293152731441016642873442963913675736787508702815700166581858683424443822423298665406894599254747286414408510529831884695183348320473984611046692256610816276146085818139888086755404437707962745270982309974999835181838947533380307266208942560277221354447629368049872921199466793503921232906767807636962468766866101717882170836024886847595198845246628586537003122836083460640065689662507103215320779353035341350148520121224961571780311394797443058150341008648158813808645262271111344593008674530595469351524958893587922613638221613988182456341874960492586238306066668063902339910363525241833618969708374575183362485172764133232419454592339657875614378100531267542318639261261009070228120701687533474010935869729500008792336790150160909899957771943282820256786369074105545977351874946803949025072191399816056518392992574183169021183031261974565299666648334339246238922803124138706653129609476892005079893378760531270338701369768626747566772601252674109844011233387079068939327041546210701233636998801305940366722754846444647148939837560365293965489691196794917655676195333026315685240899885907676570343619571235651680316226527960889237973930211829562714384708887714205825692273498075237355305451334704887444594330441547490651510338304427091293636978798502407874400066500274845862552579168298792077093647467012489971343820782042820831458952280089303522765549300728861872909604368129456561578711953218498445338602640348773928782715113066408403442439692828783021470518431734268066058609634202438057691629203179379328409418934862708935035055261356128620976625649972124374424908735937651744490073435785074425464001853697242140917540945613888400779043896063251551537229094608859119489801754188968363317356737616203843599289903279028009341370414707608473478589853300713264085598138499305313169909109741605386943516826948502736757280777938808853246763635579354407302501491978198428780662812011222838382846367530448051185736884810787679661114965072914704724298283820797162716352567668675032884332123953276381287259005620853492492317285974886931181405524945985137597590809364900189493470780512686865025205117393021111596776774018290961143662989257477499907627992537881509380115961435766349850244332911304491811010611959012102632680011106709264507632621774033983529875666138535056182914471317203936426216436362754319954439818850695565922627865295956211051980014822532515872419011591617996656675919897164340740912001393688154393248991470388918631746895141308151289971270875755081393756312428348470309154445556218663358354492891831217627075859269303908278311552173597442759670217125657269555619355013216316364567017739439826203732309231469990634761355538623993730002777177690642728527842844627266402489659797785570060965496623841633348571866296612099608464486317042958097487121528964173344337704420056028287433394322957816057249796275212424342941211204396846008366568812321169100170745183643847822602233191695376569432072993391594303962533132745123942707296128649568422782654378654097943804309469851653241776789670289522127451747153460299456891293792000873519318924258942316005958341313937689806745576317179888883090919280960646578310094206192512224770324958232138156793900768775966512831587081541007239517984543460617091280842588823569443389760841564164878690605897900215471360690794924762124224822728898536405320829543504817350021109238763384849827499150073054383315691263740981334888906933727044334446378459348663390479941875033451345843764843752993357429547146333845419305319881815434236907843455950533679701929533626493959584384859512886160242798817056903168150160312186883335302886241573234021031091827682614155867690513520853622916332727443959438363072377369929763315448719665902836942294971778503233287095874090030660766773937439165763438883032980460627387839399474236434457382172185391717567993218039462659415076003768281067719403014746462087956850027952068944194703369166414625339550115920461610475367286923303659692398657532067984439554575848823000790820881209703082896045218932777977233939680745204531058634290423512352398055491020160501257678010535569895384546332922848992326692358021403249467068282218419663283646418610935352132636865285845540366280556232412318357392609591803657180484021534455568656401041133024381250799631013528829791041446193931460709345305350003764917503363540703234435859498744746949743749384443061426779967797148267928751089514553758608324674638297742289232295471091129445956923322622670383680653057367688579006690843314653289524199360791160170570484140183604011504379560071890502265749555447467961089178992945873103947712810054272965142259736261776314186315625214136837207992346382890838452653000426631999844490325537505368483840039234813948818638373738949331345352611603952609406754162086780632009202227248205534165424218638109079880079319751972258454151881538033648106119793249330463115359639801158759418699273333306123897473698606098093141071215032143364985400326307883616197169505415049529791939089362150908713237261275689221322254953022878678218412965117140337931658865548349884871685492972600887291970571383783190681316168308125482555985092785518943848814157477299091217190035864788909070175679090956879889637483609866193547490885215502059907711576136324914088085875081002052709456957543236266925571640680444796012163401583737375314868761012003714137540098064565782907706504199299707255428184998806321918279487962509090338600248051140052378186294156590249758878257750200629415034460988814783657954316268486060907549819013047135463282249216769330958881523481470907680234255981747028876375107909123807340122624960874636095468913215140772811089713605891931653766807889952865859637901140671771228849279892746695913126123599395940573474299197431009243370251234432267237986245002185569748802593268096771589450079846811574734830440197243848168647290890061731202696876321892765117682450862786049034030706574384470848959902154386208726954320975059091152881377430171031633552598728137691811589129971121744828679098481215199789751619981353262688726177170495578877976205369357587251997268987548954031647831868882896661923960204665180348706118977183900210308343248701542363501320922874091654916500411762642385406184677711466286293541471601390167155020960509836139650340886449200803870984108882370796196604232696528253397402137468574009675020267826339155714390142451255104244374365446505988209355701953853719043572710739699763547118378527273448657634599495636386133340670414734032252322583928640497011704396279302231463059439586404460205987085176207863829794284011723877924951004137723852705762717442817488465532413755060663086209153657349971011144888940631424549368643164685033280429303216469687644301965041373868598167655347881095202625226684404861478803242055504953751539595637089795368855802121209658124201660210865895071599810343780587012275506280969722450116408022509285830508556257188531391323624969676318357897902377551646881998429204234036370831513125601178799676425563637977183140165833333392126662160647787636361615161738772950203855705598628758546805063919606560137684843169551151079541427999852248289329351249541590721690864732381317729133767635640726261613155728944026342485988511069769609511967306716305045701112973454624799026744729425286922605169847287771459952002124340091282871908333937315426839953042232935150395801875983478246891086182269643982160762955031101529363504938822191142500431546400830811082182796856261217829324824607194087675594549921368860402493483703272804730271676856449631033830996812265032477003347329984171088716701087987921533946516992053742162160197252256462260998107734546914114025701747853310742847846193014369165894578245641035292573295683797871742305359299184963747584853791805208815100073636505062465304218078676030358410517972916384166607131211682439155334390465671358727324537629344596041558984412056681396405464313431297166967776778490232116412502220299723595326823376138841764921434034003867300833708302759015230460369882100606482557759775257791885409186723327830860097644401976427287139374115609288972233834781346368437009725819576642646826683340161897097181830542793806548104911434704943532666817104994334067144908043350651268629519084884816304986377263044293414166858732202694685301130042198539997796212325127988666272124417128008779100457034786955640270996344930087058499433407243258673763842791558821420387958212203715767625771101535718343770370996378751443682647720367251359614779133998420733855969331954556675895030886514289068451575250708930968162857132697303300215154697915903064304209866534926328967555515778388052135210954246269762571642911922336262258449257563216050550165212022557567169671044019701951376225703317711118403319688395165861764217792879700462528352853833600220780117238025898740473455445014739694894369352976174434270727726536497046402269236208540035957882712284891305438731418100872677058166245394278922436732026452295597227668517860541087406642201282345876773508730960205876769425635871335437115166334672950379765754522496649573533163440441451192665524771039691137076236571626643951638081245712266434627329277381540847041187163434967442358846267277636591407652842545004706846543867166364752010794372414986262716146018026496872852632137702761003999858932247495982698518380563596355195649099262962127568345122210862449761126144821034144247491913691657334104190801066879521312541454667148854485030418845151690202332974148299345291174910059446208261229451453755189742281035641058914363127081959311751167276380979093447543965913555619520946933994053449764943923503323793053499418544542047073986714357699749709885102534026258232190668211099749795193508832997005133019042245187733875458855021401017996842702657115743882406386133308374739177988868140028830353237000221107064451085594177004971445156818297716303676982181810612089000101388567891722145204673982639544472454900161398662318149955216408358382246752664533142371058646758157827219017335549117640258531900160374252772426586756183006710249606090953453326694321961175552100419975059126838306044991677781072952993241457088851981526377188580972772589984270650984038996903560620944277832439961490538824804001844128335733099428457164416700711857589394382772721874274192167248625982435267136533264017078739323098173741453093689333575285242535645591026262877377448978673931862719451386423412111738090396349489164471288201738852511599361762926806925823218220193780658897854717568103234817448879646365596255492604631000601826484318837392799789711447358645859476216800887012596365869701745224178642592400614992384240492893996615381762397522825174954449562882222171484857728098497332698516289772630024960253116390941839556968821189322655034216590544496343724689613450640532506490517228372584453624035138181604609390949684762396364806154723250300276374809882844075354789273343597131796036273533749873816167931042534651208743433992113014365280933584653165873238008161034378931055833070193803075987319690256544382794023794656060081966333267122376535482094540186745176803678977358587318824824454109792286416711205169059847816021434500301410255371766048458447543509492956818172503060163012598983857126363008643190723794860485217070961540458914828482521407007430122629878130588552995999828695815928067959401366172540535752649947575670631896075065463679108538159727197102693610514145462594756017196950100153854392512488184697062191759770887815488118278788738248093374936943243527734573872009289119068940335579136
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment