Skip to content

Instantly share code, notes, and snippets.

@bhargavkulk
Created February 7, 2019 03:56
Show Gist options
  • Save bhargavkulk/d40ac9f8fd67c6b7bd09f099776fd228 to your computer and use it in GitHub Desktop.
Save bhargavkulk/d40ac9f8fd67c6b7bd09f099776fd228 to your computer and use it in GitHub Desktop.
number
877964185465925723906131462234454626147947207344035506683218329858890991598264280896541551672678657575676092862138674270022777282151304127228728707698891557056651376087793817673290703730127694695750811194305126997628448900840271241906060327406294190905572864511963595548837134582271713132819690342312696071197912448116984375031495072135571353148987872976316526761153035810263011801052248019214843754707258995247637951164550821982226150355682348274656617445984140411261670184826570595262077085182716277766227424262777417572062841154940407723925676141501309707468401942807177583690912191160178032027136564577004104176081498809553147567002653925795982738897726548911772252604946349673401922688595925638480573959725017425707516130533900176555580314567233613141574815112849643203239318854325134257383326059828073599955151901685683562079130221315814491010281013943471653138999088170570895647906839768995948136759525106790719972094658375871146824227810356930761113167709612459682258785115710040960352938844088499552018083434865894512418602423039402015487914297248526554164447443610833112276659727023433559003564772207393322333988650512252141402845724544403418053799106154351119458033098123822037450386464436310577189979394061352220744734711137577735335616610615220004771859479576903860341723570869048585586483914458528815701690053871742912437823086394070585821059147187206244369356004578440580647207833902598894104291724344643599934706745226281878195745377079785776750787983732855449192245832560975611087126493815891296873494680954122526987948488729270589331010183696905160109114709241433673282487468915436504696734647619499325024492466642654449054267880666012270915027569188139581285161764553440081761524718414803910879103229794999202563602579123501740830791360883544566939759293092909385996909588494646566180994428006263152083692861005081007642482208044920252373471634787040236603594354252607000090659830216502953599778960099800283894842686314264086266010073414132571732909322361324518670685852857082370123063263699293010688715676811194579714635656790440484159936483650356452446855001763359103217517740114250851134901584437281211486355182169993802327989813292171317425682687356651621892306153791996393174987894391436980746846917295161256299075651846508018805955970073521183665401437312301529757328162395584978873923113128086619305081719774378369074066178737886511999585839402937472889676107104549051309322962490343342593004261124169448229826534255835993301232717604859698325695481167741657940050237731604113475525113659829247641419652286133117716285520071030011808338824476100830565030356749867736752847349219398061913627878781497757475697111727040746447612406796315756635014478053244025724156025972521051604877779114794181576313727981026375125803729805297127897374067739131239499050978286183631924658548296189586826074771330833302804689362863294687428160674374822362970197784102502147504419898606846619271867901614510712764178379041492093075511423668384384791427417751426838114040404183908297653727427281913998502969966154505843413895001410608076547817846373208337921541657054884117240313486527341246064711227751968575513470698552132610891932923912845746590376307238332559776319095868790473186732303237957024584830253721490431989475644857380494500840749338872457914026884007913239654793512696851800225432267125809875303640384370168351769625259592447607951631542931032943495876970873939594594503523027784673394614136828188677537168540167730079880781087892188326658054965210100832641525638438605258520646040919888488681385044131336095115838281335728865848592400300341399984385734032462483033856502997972167016946479272804937938388372195329061388463297911837413322222327054711732233133903665756642108093499017520509199378113297056894215328151636795088775511626480535384825143236940727396799962649250474370558010247035566107467550497607468124929008955139611053786075123896694754694467781855884147513836881058976533605253029040596228694713950002058911720955469969017418613371287080797534488524094539156677897970892877794192744187368251318961247712757250450574987407524856813578229969990692195941538523213966051112706437255979910765799239206072065961415321991379994347333979145182092576752924711660817450818475463815132245155672816394184905296881450435262631725800912071756333283438314476720669736697235250381614417975399697501216033210727338074532804795408065337183439789718575185271269968428999615580313549221434978604208950542508008922794554499828762363921044407421852782152501212514450056413362354725723842620324668026417586904085076278221718649929504550672464051903156404860671135389684983328475683802689454424951653263144722246936582619386762019445973550424148530323477590536559396784989538156226475773324620818145892399354728832818243512365355001942799050339388145271586652816148765351591549870895812335462751245376639595628836105047911054360578567791597283557933929205042613709295582190890740409418904668332940962890817735985808241581768133211415198797419319653662109014945569233169059720769003815636323510560117843815448653542185045528416279913587731690359586552403493759404011414863562847597823231729070129742120975634948026923940700654424091985134620647416816334555018196461001978252935474329343837889798873080930556324373820848500114041518861358415919742595444390770306513944436306806277253373038505575555660006728261554872390008874393385199721283239131087863026072635047161106263301812291045833930416207746913609715209483226811489383755993579444526708832372806092317652074389093923786183753600203560973725255396002273179646244154711661185450265252193209702955675935422109956451801033556949422004736561368079720487934614273441554746127815010983084062818964608793825303198568221012584061891028212717503384640595565378243267144858110180309549184880295221091885391783103558055790173616578260480003268659044060206933439260736626225259907021994199360000086228314168982168458589795592113558969323597830369454203236336357187645877333274039976665036060151669415242721015244873851765188501812161804342053414697791304765137817254949917463874877932394864887399188012688792609322377876398280184591700052317676860348657751774878885301428419758652485006546550974160506854067248835042417338017360850804532535767084890484327468900645228627499522324597445354278074694252872304318039200830013279746838525242840312323838825469723016712723246016985406809139870658890524088486904342304461794226559726229571163297776788081637157100747542139206691678130930923071668727794364706429066360922784475161895160841438185145725612393653826696079779056864628939606375141328065409147994674226643036326521612837309570524905467325579019862254739348642296322694131097913663653084870886578895005193991654498895914957642041663040259825120095164209781180241896586572491405278150020228757776943539719889723178623221437041520122064646976747797533500715211323404549323264067973155238943720482154520527487294185729316788162015036012220112167364310299816909578700278076628870210484071176519953320773625459935689953913982325424174287952923437748039611288203909309175945824226580986983632146120284966985619485151818543104371024020264906626802287923589009527750792391711622553757627617016256904992976876396506981186942199773169394602302326929753698205879205037404742214123473466927244666843513113334229574756576645171083273071579562117387222488645489081195996649458726059540150321135702020539727776380783976960601767713395819883153329356945664800448414211409475974083783497190251539181371818762270911728246809400350313546645108207936986363829238195888939113748915747916531214815286041657899730434620204604695045116327785863672293787708232919100898842823631883090822014955672759104889099515609984790340039824978987223549863200346512470993501428392276641910530201391530124166820923025705023244101010357335429628767120684432924114191797315051880144168069495737950234138785334126130853736756828003027578810530227491677995915971864155251063859814015380273400265960636562529141710939469448315488946327651578292726995235733482118018420792504649555054421694006661728336313472583678352969703114454981732643134372834428327332896922890819274870398804516152188629290221666500819214152636613093853187871076506641362352731516919221941022522571403847053879216671374028267444292678453612609002132146623401612920054535000782998133980038670140013029736518907502679258690542050374816305487639003004057263847919514245655874627192239277888573585573219322500357367126649961673534243355680383117514298661594730688086354830797432076479945903253249360266303391567174237638010131278410453190705262724780859875077467564153785441041301425923032973496311448978467306681129316217820317160710007470346525840489668304294536252889261975674768822307576111729623668219592622662331351644389739023270584749582608736237071672886548193639920909297817616462953006560467860345226372535684189419522136905968925609253088010105946268012570996986000156908453740108851801976468758020824721054543925560049537707949522065549787049823447392809487355763199127711902521532749348226945076470806822258410018230794342540367984640000089728611493913851188117773889151002812747970517086741265418776612118345049110619865326220884397412007777103024592435436263938859322611272018906396487294308934917213276815211070357056753842712475657428364721775576654896825473303481069846139406391575608893978769646291177710012103851026293807114448745191811169602714334884388603354081880630274596173707425101653242880704164633260654336487440810585909220169167611131864129080614646195927560671529405124723125561121444335980855361073366340299976279609960071264654486267940055292417271041371956194584416812499727233165897360501649004387687027707983386673695439736837850816207359125596851040165712134562672207745778716748761563701114000066124297520971384752239948798176927800480064393331642092155494578510799834603933459107686822574923331156252041476868864595389683835834069299995872625236062624142870031933810959864562306457788842753171160622968644560114244406142285308152876028122532575868095025729349050172035407665474808505248409345933908673074828424587731824661454365581958881547723240033314640398355286402876894544125584152480005922231032253341714550734892400585820976209455233564786779552811653725034691676652841522996890765538562006642369523715833115940006680123085677757340918030849353282537357511552762090316974667196618657705185840935120352082573352452906618194032684561729477497340249552899472414514423597709361348418499305360327946463399189401567614481479663653138842097141673837748718766830693547755143769385977205417293337114531922407490010433093858625707569552623839608552299016101300466184770410322202055983052962372309463103714856326056370527635552284666402663620156911171782732694991268463557697650856836562950391329822122821420903547556530907050947289652656505542707111562890971046244735524200822550220397058818700490826578694391280448272136979124555922227511734976428671544141353921990836102161460483437668747532628005535660222678211858639371184382360591110384490494157408108696828465365380039154828322804926408960116920297248850401899876186969602786889628672243761993013892600823708239461410958371265719090078319393857318578033503395309470278682270188271314490603913820119118538561681290030858277432259514405726393944232866834933603158106184462639825495130456872171106325315085791977140077984820656184474970606885991520886964187877906876768516245481286798559996260897062778505677198832833659874144334109618092769581338234883083846258956200911613990407848252299877736788034570849725504918248630750570332795469983730686402364154768313976101055374732880909929793178632307178595865410947642982738756221004581707533058577270331223973177544326093540409262990058568793643259085271145202271256282686671424325549920048435517757655534619966813151973882335554714149485392115693875956691789222496978089856978460646565995804495100843601679056333793596806180066921570971613870988517206790644330907248479745115967690640752963199483036771543577769418477951478911217473455748832554446892011469404651659953091989272954446403885178021999158172211302605176984943697807898630867597854156926580771348022410770985785457948354534776993306318448678024141916011915863075386947865060615373131079821357438419195460904302771576905632462498268510617509152311801829161140241132291850412924879556206989542472519982405831144247881436943474406487894358347565489220749049651984510181870113421805023179010629873921721892426457270838212228572911046804889517538226735157930374668283524351076666242050994999893357421283743871903417038733609649744439268124980974139720395300718741745373854076886461231339477807453041247516399906997330763157266005676676102656295417940224994073007507990308014747614297884808006381796657761105237159576661618098603326467523652924730543659715281249562878700478863362273199171527555441165873312217369191532965427741170446101099513454738371276493718210411386521282171604684057572589128906516558257497485928231198843948333391965450414693630272921803390131588025667552875318322392771648810954387148487473747867629528338736571558270759304687025088367922672450134786949762071002045502458934185257745832348835237648274098765243760474246382788397393969489086360064484309215199626003151040120616634290668220165745906011542676672084966810096211673261891735245880541003863380467525692030199287506338647351656950474728010710305801123871918633313505892612816785996450367712730863114602100164513363811018428381212950795132912505077235933801572463070611415089319887096059208526201438428687120436309544719871155157611276854348200539914493298313310258561352600028500522938432577937025916582876317829185525808471736680999798594253874204793252684334231506378160698534404538234862696175718635666404330756008599297333193128169052778348588970073082038818564727012893076914334030490275593855868380217906591688729239064021116374940314566086241706689293165138839699897072366608272649502874872916536139258493956203548778944525227121401810818921208324403495683051827018810343476146732683215091595132317409379415993368293964809242513308798942493238027118085194006864027802537955550219463170318813860468087921204631175763446811203464899109213633995438140632837063074626349686460980099239654116641328701720348490633112321574644616802173539709776699561222236534735516912425020587556794043704126691462280874786503868201250928370672082604903556676515698657952890408178633109028600754732287370417657905642431762929675422048638892819161402451920173825266085948446906251282236183430247970480603409336815047716852069300222018949762367735325643153577983226189427425352269027157080208450172828344410083102029215335330589701180575710642558976428691686678835305227959627984057607276802323319248754797391164140605138762860703473853661782190937010616396046138602982888695942602161139863228780205123589024621111823429829141182422745993973930341345461135271567725367417333501462908393124605674368945829606204062674158896433628570712456914296393648971377030236590761070432776894573823260943407892743228271597688667413136795426236836519491047698751172643694264950262533253391716537365529302377999606261023365690445285005815523804128121354913705831805314674428905041329190286640316073844745949613638121322318598366521215826493815147301921679942985241041224412427577328120236944008122155665220279696639146238793662234363087435503453651805906693544812534508857060832912938327799515061301533168198907874460895223616464020037473552022369772355276441628966857141696249225499294092452418335310548422488380263778162736780456023823242955417366616880540647386127674116044667783747694002420894412978243456612105687878101949517538525695746772438145099545378585436879371097656833048291276654560062957575398936199308572640045475059752154445078738412884813055696354106609835335053721025757176223046765879485245938495847668077089061288787925045635491490438571775512238966390655623618338543690835858048901716171671363395860180872250178058433156470162511184867367285053471279987218868358487267561983649157623366188130277214728298095763293772995404750729441328681083316569401101263122124873388912816758047096469304137398536346767639663980193493434238704144258725328796580789211366557332284508629712388524468975151541888361083367477176857310901964699098028189283134396020154501650168391960311145539961292170773733328771668614475556468616026974119282550453789333292380737279907237294218941078077012126625741578189284727455616485736164362183528543800212157381342260557235163167882762910009092933738754305179596773807189728211184100664348836514392632833642258183839647564007769827174039201373012159345206501491055594503189025391164062106847624402049088430869025144511501481585623122035839033897262120631347339524829423572563727319864066678763361950688055823098359014028247265993608621537817732954669106833577462377676220607414554507540605143895098679653796774281361564462814793038116657447754394343621988305262504767970801144222588527277462199989012957259439761736843988455933257989651337918842501206263302887509329440340588320167798940977069932341411580688416851149257571193650646386921011430623440001127296062490951296736232217574514041830368781766380629924836679731516898996641577160640651230186595029664995684134380808589474373583107960817600702655156223869941806107241060457869481387372888826182856332887454591311014844337868838322886486262630041208415478637306777451861714144953402588335340709246587615448134005291542346734918542711847845918013806839177619864628767431590056686997220762692570991209018328068815655480840021567508512451228042150784863473438445002525200217162880088453965724065962716030741307563415502887376467605981915050159641403870732847364972270726262484903476509036559780288192920338691016498628497631296475616910830712217424273621618711004713475830621903178307115896152792307234701937900958010786538341578913657041307602710808958824444127921122000355096268103809102872755607148307916548879769380541778918462173696405342688727602411309646364923277921724367698706914374361443079704693282639577823749929261876591588403869127653090935008304252766123337652624859253071743942176800120591494545842708058891421453627479626054425823987554267275208123037583669638077733561170563672043101061988430155607456473094634780991852841949748912109762517212502986716017935495652228069378477067030981026981300632865853495033545544528491140612331481072462066099340083617017618002431385041279881112878447032352276692411181903684640178270938732630964448693762779916933386475401121864008227816000092147153449700093220072166671214356921454153760682622402662312459414198258724585550641277612648020836807985612984279929798371500456058088200077813785267250291737277446642722971144794792235108151432969467881234443595216459786700355311409103407110110237882574265982622081406268226809598973797398294809327457284793020093586079353931601025272420765469284799393082380113303177705947463179726013750263316200316130083343951503761236967263378385044572686249662431239434589939828858362507110447614444866152623810821896691562270764745849246426413252554570530013235238750827339881110759938957153002795852320667919582184650773961631981659201057997760152780681194312637271530636692955735507276903941501020935573173930413114514419877208009949980457494024281328339248554906353774652867218199246926190179021087121660328440120783372807310332255434384531246650902629496616761498060857710659900775236068258350603303779818615217857167106720162217378120282122769056641895463270224429763095950075049019532289284433133158927804051764749292766372913560692952079764904193449307682190067188845414662524590524003833063878960896025000298011925530401281183239095593430632557597763749671997945266246227489158533634477092494812842935520805562078734845928249509507391297468150962400937502046322815528601937616732673410468362231440423126603515515307669887976363009407082873246841810135247795969934702755685150294835646997784644399845380875953498289929694201294904924360492348250354644837098563429761063809455305936252904520758588792755065998114949664432114118492719245856624503358468290233833533782395394102822520065885798956195787419334700202391933002782594231882586694654621815918769267029928439636685389438316944087126255674554424900195342116450482365766919411569286634737503256233863230673482798008588407170053097074538812777402349923602194937769109040953422499174034820763886255177449281806280786452608505441126161610333119434713650585067716202719484971388571343053140726630471529922227562854579886103922730347729034624810756636876647293847485795675368401553485383022964432519622085105530231510655655453598750699843388122928004546638846588009142950602708648104346551656435328641308847163502060519882108574837873677395166553539124287717841498159746682448469421542605022259308543204439595116441272307631739921265440933160184211622939209631393791688118982858939350567824632281966101349896734444528537881851538735939834650416969486004863604678885222926650241271473766082111434375308011878652172716600198358526955986387959186201800027004352990066490835113658142858071486315908577280444580039383179273951337039442336268966573810518810663673939761460339825141500225074451291452795149378427010380137636418028991105789206908944905309894624174218342092739298794768673738692405704116484256662861080057181323054269704961128494684306340160177017731443513969580213088800760928285659595588554576416828385650599123607652706186303132274693885568846309099585069147125491832828701526465173270290689765391142081940804280798034452119340142841521669324616530935279509423254438681932092907536977625865213591398959511870533666978597708846854675258932218353456304379851582897286845678842003502326891154556489821619522142300463143865141321886081772151207770039020846456839525087947863845328345635091502814375510126958986512550117353001052961916257037715548091906072106851431751427787100293269816718466141321796640342162611890516596071628351459306495927713784649441892890303333835254929804307810701742203281814711656417592461320520301521533983948274675130991899611525674646851479466105351032199706780184772028239657665218875526021013358442891350169972865378588994355950809142508530299814694546132380018800156791975838449870428075365754794285961792800655488594922925655656841606572160153867811636208673386908753477467324279396299300120041716366331389886857494891341745081600035356357319524727107313132089295440128538540014045757808202600777693691778629549002335878362622795821675860543448735597403254245331702358011264732570763479255806482922429354067694593534190151391477742703965976948114427275837762613169471170945314526821908991691532163885213341085448503587440428352732923928947795932628506189045680624510377735205131866333116869948570822337132590090364512457956106729409870529010501520709888792888249819115483883153699148971553448525634615695349566697494443415814194965138983640390038681227417913703021413752243655254407703367700597449482397310581076905000380276383696208694075326592582013019286328417471553622095225107348229369976133192116943769162323141221652713697109246151756491612588330328725997117441815536214698237443116719814464444979290747315006409061275781170799874481579074284647329646458256936872621875850979410849573155580814336797009912971772984503918888596869494836172134141628694985789631936666350266055890571054857748310850586733771902709520906199194207099109097312066890318050706319416338149128077065975995245998356448924907493861322867256673648154434626546872551962745850055172693137202128218898363803408979405652370252975020108200107646382504368390178461139272347239257607910919052906506876247662244936427718368777082694055240539153519723017512361173720515091858600824598120843869011979135285796457401444954708231417315462948906557277176333135357938827127953295467914231915230906846535287566937628251404814877090363531624753226474906855138868800627946899110228289979462768444937684455706771550200750812520065309946191906767075825245329450683225875230316605480254527666998746251505147455884017004797273252723399496939574896460295506184002892054220094988056763398856037656954269730884786975331887835495973839336694024621295642084044434316299561598518312366791398517730720726781010037563159171345144335204585348064035945923005778039192254377734521657354850487759051443295613776530468966733688638575997570074162638918922790825408299291457122063927301943289298944666739639714017827267006414424973041447184936502072387212421858871649383225789641430688771224539925530227955735378122053582784320527269588400037216930339775948729390701952093774454402389033123243712620200706069893615194728859642956403860930328441070927182402149267235382019938620262580496967096661902088162543703731920627753856147642996325771151588917373245971439516752946599366826340494909252120493747661120679346166708829316374083760907848605168081168136703710943474896155119502909889346523914444429282225389828764051386671092085274080206078538256088512804994275464455741445003279682306173267479365185342437154958562774488614423635275427224275575799163626187509431540455047270764639256570962196519185880651034756192316784153093495691797894503562809896848283025828536670554764557877843775950913229527876791791850507528948142235802161809222874256972203209395403959127478528067316860033086490790348744610614881943323856246931878525912411249661956473644464284724979896506005888145940231275039172941039127397446574289656642334058577331825404780085133928855473933530944749026087413489549001813713675489923891689854884736014959888062429217258375815188297175792325566449212101075122172332089489992982452347649845118992765599941120366222940196534416021381419967327714289216285248300697974133328178076730547246996210178574195033586160758193979632850764556727009508971540206351817131887601930383954242493375907473525755538102238406323338786814166912991780533001120647899142949410622128713865973968944411415103345723566366222243371056703622527160750888929738510726294087568710342120584711970848289820130173998885004108129540640500013815552463585852101665667133039003824797180643179180270106446535046535376403983908663203469413922050852713833613606225494190926652979704276074888549537619295628188558204995609735114958608953635254505190088065859434805625257618660314823477421729215752446687182440842384359263268666817788126610638439934067458447577015789548931706077391631772073298813158329648758716627920614771858923668958249371609689498513539862178627921344720731811757364696290445182766581916086502674757784766549878965061146224502372305205083463356306798975230227102661970403892805444015499033837026810139063371930843598777807880212604104256816390801920289205596548250242180222131184633601635243761960217617059825189135309611691110082459302037141906931117112020014078190463999823256279695877850335420291755665556822663396475436434254219167912404866923228702340378261927168011446921274552477103110658004912214690170943927787189518643466977002552740587744074732661116604420377328929085155223007793417993600535402171570508483123665814627083903357543351690893211767114174718247732841340214844995945503486955798727738419088137729656623386509439187084953810725695774935349727750553047921613887492347487702518656516555092577687546989997861998092211467954828095780634049099520528730202823104133291009328711471499856721255964961196174711354784481561963955570622029258656381717798991276297615430096199041363689483065059936753543134311820577225936318375549146322316316833968358569902097178791729776042456750798503852136558345255348520417697428049387371665117235104510882214844126432793162398404913267654321419563050538483872539530534726509201820460479455592660285507761903740056994153998083075287769655717319963044619233726420542994392200899898283210075496398904577165144552124094867140669800800336219460327239462009168410075419780243353326158918825716920725222900734135043153772124747422064039669276012137460144508887332285147815252631264257965616937681149256118938554746491081376554959497800346246113107628252384187534379128205115057316313944142853601342900131113172828827024316743225954749414053131195359385467364013300316510427312406056149803796814671619417165023599686685923193305676662863913052231442507549056700792245811249825163996491631819140551842699373454216219552609738913028995237252979867758090239727562506503034678749068010306201361641696172490790898409754020614858746253908583026714535485503382997071429865694724446553190719456122379461126488231288380524657275866522049989787929908884873533429914466135243936607762877874079046400714515124119958365237554907878728267374593262014987961552254957010176112178647156207033387347780561308824188065019374176543985577506607587736208110703652401534608530050863301415017111503706718160238248329779438747345410670967399970528583192901999420306615140739358334984512856448875618731901290269681030702423024312776486922728270383675957484314926219726432531951717779661798713228889082000888583444262071331596660270881390841862642824338682791079420101890162504789010330346163419547599970317085490853170460222042312767889567628435975159034150135941194713267765841489213139928462200834437905984856396015929489235824404735430266676703859103016557613320024244750872495047810943238897964394160962354181825713348166671001410016047829542330779682050449309498404696601223569244673105147176604824838032921358934490696944904077223472196189093381702361267095201589948427789732779061088442545122482933902160521367149418518481912032242451663634654650287162784770522069861917734297830310015645461032304262105294464246083319222762666091766259608795529001172652160658775712653590100612631223520535629810325858844420773435347801727276479000118997162576843681472894838058559606105237397965298860526274195923291126709439165395277330182808637024056354972146494076471575561187275103228243527769419959393243562906975406459363563606496521444272867581728103327314656601507642339631797636868035065398399764925588326681727216499569086359299882434695106349662960616036441570937408588047640366138913897973900404653424892343512556306413000871091502210495797054165728731688595062296651592485554009669056620512755908997475023508233485960647239601967720472206129795830174127990907736624847495367717924251561653094298715655658050125018420690730938797534500293796224154151839846106268002370072640962929245277808040394042678401971679219600456628509695632225683337851015639592300216290511606865059285024532373083516020423992007436942588551224367625277536851589210478333265477870528791228783124583077553642709523264441109184207960964187875044400864973968997283257484173013647955794730568326392472659744452179236301438067534225592264712052568035644294104684515475489444454918793313686359946471213546527738030096657827394932869149424949288479155674320846990271458310769612269902371330251942090043645401056562873739017802993174154765126827566607512434607331644902492106773084892546057168848141191979873486375943477156750448135137592971234598350621871439724508828002942275316665297310595315882652149597566291120326720435765414761843660922138295255540785784114356330278250898188606540764122293916318048492210675373051204303165431945679418493621431990286067468202179238396603243950122549453800512277285075967695884855295262514383919891429810749192406826814436143560786991992512416133786374099687503837257888485816295223069107899426230916896166643626220456910087482441635286482812354395309408938860043545786862016693721839349423659401605794144913805037714251402732530902407862769694055239144909260468973839922640112020428849190410449905946764691802455564893710288387169118288318389040414859459906564978660668688519469801920062734002020756506271501959255716716582245541646456357772338160436703273748193439157393227198256649324755695212089878583489183538947244694138787033848376146010066894611523747921989930640414808574048983243573045641459581788266715224307447461771089269947686685604305741859851315047187794231024933746498914843708249439754854188114787204515695529668360771644325371750451806948415157189091971853523688386419594628612368931889635060442614012943438895599486829094802222491573318746856746858937622081750838614869213930259067606138437400062864730933201352054443503978355726763433687463341403529119758315157860185111813526931852134131406189909220900629818577390496931290032738767952843558852632955028959009685336403502117737479880570377287884984825665988277431029966630955540248839067337833656183430096469797578923910787873549859818497583281456268306465149422493729650912957935613058868353586078221308075317285006849406078423190032931779873050986691908426240647180566837918848292979285934751877757606387095016691936439232433922882914641169563676884976728530522533047463553697701423513038214047590493551589928964744522786032337863466780401717264429219281493050918298384466177390982874330266428262260107871220108277852792035716706246880969675550365505183910792247396058302694938355989817480254504506149321234710591577465103005086025121356793607237138294592712276016201975153553312572132331691824829206974456023173569410397419662887349674699955317713801662091787765417881207199744971556490108987630268382841976609760995739408196086630924303170156241021486109301537891656641217889264234146166943805667591656406144035860156691721524429707521082160117801257326310162193795360357159093355582278534189361742949457443855412767112167242610151313555902753923788139192659843348508882517981445004317789352868338599962184426917275618685907657643878239483103211635013961216627816893252189642342379976053003772037493731813435746319872825664998897836365187885420868090785538248488264439385746636637364147554012611319737052003386634804046057552717496820390304958302998124823990044241808243069258419221421542863678583736175710657969094909332354779502110412939483481482739791981628160113976933677214603717436362446554019006242532123209094105437941186800625521060965708436156726715088317192740081330711159408691670083765626921916616165049089469811777253037592605037500462244981985342053455552506690148434650152156228488158716350145924655171328372051127296123543531403684921586845403543626952465490888030414307178976881489381944140804640129104670133859889263995518934941905094604114640406689023777566025593890680630352173507621104587243814303259144327023652528365436858765968975834553274162931379900964557873300233326160305332100986188402393362137248425003856554291760358347598673907018183980826182192147209426415424873066624224976732225119837593426231948761131532448993374262481367764363967996962489260118382617859256477047723558341598945799039323306423288331946965099228479513313222435763516952237789874759284084841477369958283024023667412623141967109749180597342604113626191008519304005158303106443608104783117557478095432804487921736184405822175337044305136895859887083554255855668806014340431803948242716964581951584358270048727200842528808860654744459751695909545377131790942381703702217283860346448363090957535025981890886239011198295314514665294398630748836760471291150241102406883232001324421552517697354603186630078883977199547162796378974281595741973134071769639526918090529925478820622580388626967160018837823062388964387576317024507525140800802458594140475496168004894540729981993194467994593203665776302483531671319513496564092821319369557042066186124498854973665215437513324420223319224849408377141101190113653137869635453182415035617323451844323896167249839771586744803874529433437032514126306897341851139498146853256295105435783275319389810924480571592920976363494950994798112437412358117518005332332512766310057579168188867815570166628771720836381343367708260674169298059392878191684814960521898705285783579293412897193027021401052268784015368378031691522167417101665226033918155221191880733455422169629951802759372381911644247494027148004885234513508520338161632075382987609400550524651842060503714323649385534134369307351840226879034234045166579444114394254770478148895204463780573793888300596810643880314750255227719946699724126227147544417383743892457363353247748929815587196783521645470319898035638223534942746254579329472236435228232345944597799699545735571873278364973784204140690683871761447543114597010250208326875984550203518517103660268443628648919510928232243761922823423548442598372116137695544017435189770023802770269261897023858577421007656201517881577284021972505964314743214505436172286722934493182216469819772067274190595671463432406526787761636195354266757202860818911570300419475637844689438436371217448253092443996633405974181105494696892362831098942635563031220096882753865842313398735806082210069345940725590927556153663581801550575076346063460389967866675581689626298055760822065123235490521453700240653896536024483688102514448084912483392142023566009364151550355857443054568351453999693007925149741339316571353921233712365196877628788158133553680399285605182454729804364757014041800759107759963548302207457150506209028215271385381926056693835906212370089790427165983641741938150709927126689356923976111418211381590488512039181072306311687708292100536568050346828998130229477739398498357703808588192044774755634594149995932238876454947116943329092303900452302291115151366392108856882681037540662404371867311875208073662074650892588842471624077622993064291946347887245952884939737946931789844095257352354360192376981781872548439326697721214658055818961450702538532615988630571739488754396222371233274796912044713765290345190478435881896421591735926690109315694081326577226192548913091602708892055243068880611961817075317811847731911034301120655326473196274607743748415650602949420294389676588228715257209902629995591132255611495864116177411609853249408582046724766932530166749557543759295673327861880527950083973531290815160488013517089684753029079203290905422120648671440958423806825287297277542219117678145890520149572361586958183739273810385650794876683665642712467823873182402990301500412986092343549419664057989435476162271822880051861455642570052438857173775251547133047277065762447806627955753823845511793557608410304796302634894240178755885526180841787207955135475766455464881389296244092851590951904156458649569761468415528714774701533511992107654679288266427525027818260637891215000996905426303262890815209890297313219980411986562296841842527123229483650844861068471193953651677645023005038653399958262344494319445944376021875409245447296399667909107591448004010416409768600403263441749543040079333449006236052879919013976159944255973272068970601775173824799924690556524838815676358539785063668562803362301586315043909159003932181626107758881016276433985127094253730178155897753326745558602073708213153655212974479871991484847949616362464215001949714710360326286826171200634306303508164667001802706556090273447765885749825915328150695361881999759682034600400928506358892119201286287968598235404508270131344051141588301297987966291306129076139529113675647412447942299892246906775518995443284011273870503802070618113843370064998458639972719146802110791951649563528045173836751031546179190241416533283653251863976243284307213478356415798717780901522386263067839648198773424680916739543008234960308561727506756218482042460872306807693148706656919043845852347129322689050667820640313012900081122131574434904677648262830635030957142052854082264385629643789404521431707497671189718016628981861916569903785461894983543266068126837096138591362306218217589608961952049547987934645287308477207587154706716568461331680956086072360243997725000361692616117625960323566168647234469510526997680416371747089205962929795335066759947137147942041844436973399057013885775782253772494428004110978728723664227506422885810880196041908980569484018751608287727187945884674953847577876040627289281428567954081373479137010310056072860645224732111369526609677713336090220239982190896916796751846160192487410989829895312074382328194294597716271839374695047964711345803201729096815123998938533278464027244507095087406291883884593439797484515146943209714643840143271108707982666445559020399666664647657287910267089935012341948317343028253143955996987583046995017092887214755029917821476389744047439139549028361018443805416631979675589218617359431469225138878182642552029613947965776592962623786058590546861141505291139995763300724362595213680561454194464585280482393038313233052952222927260059491660286779106433484089861908809788694290468897480381475877298778249786913465037621164165564180466472530433808804302109070828291591966887808456372867523622180137909465506074083415435891577465525140837923861554475858757102122166842118630528632462369349434897824365562646687447709847271530169321294526762007134355226979135338662373005451429284226805731749217195558600239074244862911412274286939324815471460808363651016081073810494858569217408055565504880512054071098083420293067704217680923998695331494821883906786754196989549995852779470308248504693461717604931166655725291161947348955715233482573704811487663518186447443882788288743533453002901893824224017394850940282329451117318181912549145883837207877537085432694470888955545128436753205721018995827080684086442432248628155413384316089112923904236910733223492696379885207642276414722204365429459526467699183297836187457420571145902258662242039235884708283964852747743966634495666131055050113320203517056858659634737795512387643251792022232800313424757836332507755025827789482883834066068978436632636865630998847402307399488922882368000185971559280385599816081099183364466402279394326354209146989359524532568422056405840381581018611654213131705559970724433901491497769386321381310023083496614237808376980217770098623656429494676592880937633534138918610303805867140732513661502011426307169538556598908736953261107700834628108487909143155708407221570947453024685915353095771929175366148350889295251160327773033780408983707362390745926176254028791155709826331719773520475477065473051588645863672503873142834037094701731380069470820241435843375017773050029910551647395002844469116267683735609058728174120437645190594734099342436124657902056499105111293107054909748978118624005771559810695586622877812618844141363130174782427534657486979133861920963750215190363130021327053459765804937759714635299751190725559667825478672560679833229410260475947726044055105208237619671331233258511798804746582295117267487271235375039866617687033011281340380359266912788373894574003495189779241354242932093345853053602811840197195825001875469160941241260724934000318690288910765948668188631145968621845254175629471043896021110685618838982477829255852086188324671663986802185991469778454883957131323306537320000386736105594061888846459156549578667977764587339569265406044462251568177008533571199867137879556966409061579528243551813561295974252288280032699350549771122652109716175860338135179048048154210897321557557578432959401502007037187955819913973331763162156732392249936827956864329188180535261382982658350363085466282219061915148599846233504024519354711446450265601288000636738040572168424820710499281899666943323215068274804974117083662940321386831194431541091606211494268446110483953044263195459237654110756370641402387783885787805941937731807760718385336960536674353000901338397671842554439123019521026603369091768782727041092609774064701696943439856292283013437904892383606748110438036636184448923550457408400346990682810793281878143625920604356643625442740885854670207601447034105426357901237276362392871160495031448375877482625966033321203767453314446704831941701407335287989856406104423560152281062435258332840902793949557071588128954436530180023932742680907314506954874864543623301656434550095924678830809869605018262460820804510685785897487847420378886786203949216914959084952730238310468352104043191467296931887902874435410731790380940912834979534757035270376988191744670119133411779018415903715148026040109565128546270859729132256850398262206516329025083948822465838434041229457346833098993188661735908516575874786678086817814548631848678870001421450935539468943807814563016954211895710522694496942624554368796429390220429201971963527572145670330112407304598358204574944365328328861629828894538925638742337998647584583785450460277206103893157941775092465471735748812732191313369494158166626616254186084952909352574976790473121752094884869578070632534340426185625235401919628388969043924305682801031254406640066423047339478648605876534952622154365262045916750271264878136482752563897435938777598135442630635752337209984088766224455771845310944617256759980843636330294313961627824086669252632638918970894199445838195059337018330422571555958608375989504726787866813485744962584424118265008719438167481404118344295982120785519090124131261411233460861958092806370102135684667534501205681856405970967585624727420746564356995218438157258275367489917295039758282722362535818803279699500782666541981720591306877273437085344309430388484907178574573021169126304674966721211291568419398177075279250357980618723996315012954755721707085994550478669542692970002055385346488727393739543442853475455817430809801737546298895375408940426734107884163636332219974435821625633853852007036814197937215764834797567828221130261192412557873619431330778438909729686451370212641547359880632097665477057089167172753656021961142328895837444144003708971474874974001256982118385107478799731252267203854762507894542667398318440879733400340131489750058381837189541709644685087198801047277531696157715439241242440589226355953381568177939619418312485273195531628543626996817375886643571677274383665881768436054692177589044571695142293083600818621462897556380133549496936990777277820503414662666894550850091168560645302318894830270765933836210971601476252299968215959924662896192328807746758568465488525973531158233145514590082431321021945872629449711900350076789939156175107147487697588684002042786810026298636434064539263348904224617275600032873418313322297350757862093312370415512494074342384049559940858377226477833461233365524921739133549929394771412287624266712317997620999666526000052489304039583617079245193613547142654369981573363072469760110186387208572592058419682663246370544605105865647031571815032218769255921038072777726197125121089945737978351461634169142042167019258602917628211166995358881504981703514607929633322286533488645643888255878563746210428378818293210590642037675977511129112764415731096767648533755634589844473476691915897230363884208888668692471396289489670363580173620416361939396383923033319323078241431689760480933354184923249591707168925414792839905566922990005964820872033096840787083558813279386566916990164445149899218339395677138509802149084304270453213810792944349489548979284944396202671563702679889926509266725504139083678161554341249350750243265264090078150142035282012231200952561994091951461941748741963410116419664156183621887452873004599059496504483134413884619005429666009287741368245282898091536222235712816305800505608333190340746971640965935054146555336549397063720344570843182021475896982000532494149785396480362747561763483114453124025439966402363767128020230698410405929722165077337351658720416875320443758855028481111121304881618620813849084259651512763265350018330101268688690750023586085696374300527173294126107544044375655170953727165661739930922009511413871126263106888923492722003679054408674087118284903080152907557984244932552030484759196843276161894247329436457597142692783787477718211700103777653224765273669152252825179426062954302289796984134464065137358430805834145674302282544805142341547030594612169772343460123070509625419603179826203772654265100304715065503846881814716369250777693472845252568860671489819275662284593943922312814740465182787723294254586726648227559336666576784449982719525512188340212236367973610707369139053417854436666995988415589510478223821347315810164266205952292156428335394767187765066179815541827949749135774768389596573345104960155743111370299660039839624294292750474204384685205586076965383388259536467696285523799055555819480040921505772785479923207360906416510433572099021279056188392971217951436621795337772275517063359220896781066649593829097157846181699015776336222882255304047043390515595202027365590308981154374800554542981315822086613143882193383503491073320699779920830339760355562944857395222049495006807087361490519420196857437805762477245459977368136179367577989167328067042495972097181869982897448583855112595459063959956964741531862725410252526114141926000410989990155056262831785831276923971374341909408569292269296316984643434571493809419305187182608770301952399163319720207115542576476862873797139722079011630246461531700700007221317122876644921202786462567573959554748175801128453510742815468160437258423307308379817035826712873203186610858586869561754416623575875047722235299279469001842929676550355814035783945683100706582827933352008450754310742050107106829413465124989915696881768541635524716614998825604006215467352098100179702446123788741653231115627378986584914157973167952507251593920914419578980918292046229242710503142057993265903174688777364733451460132027086023934768193818636525679817512643276707059873651368750821102582099456877470347518014053199050494211237777234854913063967059649565940651265497045822693159184208208677880902040486023968634772351399041961177781393970618207482030374767578794636692247868229343138935618945636141056365787092409883520771077240047485958548951237012621739801287767477076028321980471116645528563213030261105632469862929765739852654011266960387765831979336337204813371084522078757262449480095977569332452024264133508987963174228293011947836525006712235686002811097548506552383122048403811986390210410946475668535687220697683485728322393899022730611580509871585189272312667994989026094764841806704320621518582895625118171900094117275016925818735343635071077970739546542621667115429845343079645803677910921282523098279641972482719877585691888926508187972461399319531536131855639020294571682081111460603437285509617555667086215389064947737593366898657275190350917737827961123825950997835993266004469328330508248516450471508367313845711140064504600932164285949041632859253607469716797597097551059858263173788105017347880936212642868298309092608872608593159354181731324474467119557627086317045164606959027367497008578598304360969172008403057948989127145862041120000376448570744781078279323381796420644692430428162427645280951320828964818737039570848847597981927928280848780938361225399804071769869202516655304942340084078106583869246333308434067842053163055386071848123864605635690298566272032524441057279875070214667506581836767094977754859317825697516616058366767343028590377588180209723259513115843117426833680564763377851913169949225241188262852026627355263509331432034721096097665097357245165270002366893661397445310694151772188972548188982777497121681200632634182251970410735061880086538674150175284226459340344631404366283161530953595424090130768573804042581974138026487308392496678841388713100788022155545289713044632508892142450231168289074177112100164978619495214992286336124543421167730352338223677676741379678575242261582605706977983062667876846493004791838224769180068408370940297415842501533269895162306988042050243170088724349809127455011411887970832592243467560299589396450750779928504960704683665278616884496317064773669546296387231539744476048608396339087110933187987415739550228899472931305218310496730869279535119322791603089305068763739830647209718307183358633421569903211528909149960124498292842600222758538829676779703805075813936540392760585054805836404318366168216282670178843750070472493270628720900046291658603442829617345290721436919510080934558500767622290329436299075868913625075199051247953966156356324190067367347120749219956856869215993420910825417617173921943093869484378751856684950872451133275824071375505373059951286006631233655580036883884416795289043448236958701890178221782337837047870792909865122732927402783664374843914109731599993760424442211211388664143057617640853974365366456808490525014162026895164864886089504834658391441509285069185539819994759427099316957911252040204415136271821841141278939016954468640664962344692076984151914496306205334058424744067440693292656486179232992876070547961285100745994848325217783783116076140573981452923563853346567783211580560676328249444301415995287534411113818022713087096674751204035501293635255035754214659161611599027764184292929916503165143234777043892765263565770999698206166234754686255232657007242546987222169509102425404971180336233176082312813061952408793778484488218323653953083318063008336037189234174148960358495204569556327726301031945340795563090797476061837961412117778152000858591139116230479254532300364524222442599184624801007230037233996753316745127572825473421940440608463852754880690644397836786905791752045099369510452345208312923989575379491972832594577188565736422850232892579862626221282540207872694044019486438578046549244639899793007560450139869820235206206151597196779533778859353860358732122307367617222391326049012265369184256096864741096849955763449527814038141151082412864479685340401831361019022539411259444724116562090538550298058237194456119226776074630046446014616170351002652321603300964514929125858041500963361855672214562647090588115104394280726835034423670180635470284337284052073692344009219353305090690663020192636906153993281540905088582352764048091790713378146901975428498254791966535255054560358972984166639088384381796105107533818900728591828732394182017121466293402388365408173767690492342933767864163609751542111895736129951605387497928934244520402644074714603918225005131239866809314120867182757726508418808189984907326982667018828416766263499829214682584526729072665187378788217238809930733310052154302472516169017507756061248917911918917222046289833825642548917956714453962081119145149026049576449184300071541110477028821943913289228589531230901891335484881480638615495835352205491128312190209283642384921068969726844216131830548693078136078029165567927437742808087772917997694223663399878541812709145805926852959183162282501332054445673825378498294010496924134949397985253097771231366183114468185272218116550692108849688265625311229880297600304824685434248476119955227716158926717358716707230585197335198649603404357598365349260602705155398433756945295881608919145284155151912782337965945406759223181835800947439397482293533088684848338906784855629294313336178729417026075988090794926397537747524129478216734305450559253461926856268955846932258240270604036706445673618089724319865776985920558256214928652236715852434783947290101109849007926100059002183745339697190991631200020554676655801867454363205683232014624226486196803272121904479352220227457326239836748435489747582183152355058112492876586519039915250052476687217573955276451101357038590651569946381906272683767917109755728269957383159915615078030098986908892844179088322553446175842920709695983327692696687508934833964342994071553817903849164169951716509071806810512315991754459173543139668069975569468003570742769595831390493347803300723723297458690049922075952955775932200193560736595046705761945495016021651756323362751386068857933386118403258076482929147432544032363412640121682159314980427058298576655855933406097930731317718302891154990434226417384331302397871249774113279496115997714043016601133034140493468815646091033529051888711685538143954367951940046702858919969769200631758646598310805882549672440516282079637486760075121872064718441744041845428715205294200981326674628452217237406149181598158873218368973843226379384455072156099877323074029260553032137151756144509438608153306047638392273479091942771740611612912537400831645948551694513704497787839648570133982854661504372815664599990085716863723865262000248736427443076609490053193432043603840086277438790920242533561590832794668274475589254153553878500672226298280382830410360259586776218833560216031847772320277511513822026995924298554168050161360566240120757781282659525936951538601354905890438451405340743105476444598028037232208854251609245132634000194120562681860649897977814519145839471789366856831863505030513041923607380461112038006101760893149501580777857491719096397853039228820939565940436773738147076954624513240844677436577261265582748748164734243232155934860074843142677000766899995881047194496283086553045061059009586893421793136164259031362314802820025417867111892143296147087200996362384414640474743865089485566773450236499005856421931730699817709974220166656890560468937779873421149589820920134171810264581983034838732514970583299518961247844296268242724018176219834894315553465818197213316175143842447026865361690983574477787397205422791404413478322652195833069661471253001105466608021836016658040306401750532489092812870251885694445301085398684172397057066364197993447890768616616912442791084624406477171700984915558794767920063204231334607684907504805931644693763927010010440348938528960477441102574544371876278984956990853417667795547908712269675239019211036104149753469146634205319744267617290313772274295849960158328323223124043720783121431535523133049086095884079008181570933131397156588588401434933374381711535085362008937798542201811979133978076917642003080901201179680831129336730127534204763345295888851338676346731261282838514756976995187751299424882525968159985489651251782446060696700892541207661514339532302830807352340722477217620848097352760106283475389289208615478206321625506297970500193701436112169012552564791104244241668743854932814226608909039217909764299813091304276161477711921127508746249980579524481666982211168738986849518937849959342264252965085131608917332036535675897265098281999043877644606986451898757236623838941421193886509571767311744942063376520540264600649824916702511683539955181505685644840037085481078581227774916845991373415947508948217358735594337158511956775528223298387582093495977714597827357705664831758228828300815650346214697852342213816555644432671286262197632877524811602891468265639868793749765042383531906324523860847014479077463327372725052622278599693568296122049533611554347248940440511406447531305272605381403827440280650057402909111630147411709769518357414460686300117748179994835725311106975822757581442990759310389287865596567159118323059718166185029106139977602899096385238099791167892523551909687301908283253347028905395812291937586047645555946490957108802810554264709969640386245259915123449600687280242922815866310066519712219615456134682814656444374732265984203109658002365356584044293101975026714194886429860944922960793920769478079704792370167843915484961313911118468909316359206889961836523648215153015706141612139258341813445036043035315115225122096003231443714480290757353680264280863907005722940112128085168587716993750492033220181127515197124164850477219832060765289124520767444636195069462613252473336052063139206972068860621564045954412091952819099990813629630653898744184798061987308455989657703529924345744626291260309583230798358802531361004840354666271626849852848654408921459453291558660382428597289042105337396545436324535185505541844818098926834326711253063438944889328188871672521442852369859003461264184233083130311724300409634761132914156229415098314237932889118118714406873118095169978359615755311508759679190928425628581750084788387094980313603649868810522921957457961991969709312625067781329246806372655235853026023000953723923644716200892512720864911532003425938188575555415766575477044565288127674426995061596920814785993409642044382155156433023509485074022532562954071357103413790042947501943436023348914060486952077571035671569595326417888242574540681923773047661280151396262653640399453322197934206609365949368244355861146742912229320148196068189428642497997159189582706484368217224638736428204862689330286814724538998051587193316430999443598995095522208291643550113773103264423852453862905745955396347829164941565682065810229470028202291194012586749743324031821888845551084714013498474912552479350771470601150890219818843696167324492302502799330008777549443016261479178049212497978770217855157791338683026893229650531349161696797385159256446345698370589820058977848570489395110572094675388915462547792079012992973938860989967382603975422847069659486555310688483930623424083278553654171276919176530255392439297110473244926503564100145805070572994614836496658275051681495527565546132831165031031100599095342855950359352321851260502347684483359081325842117564109916780811370556380831133293858549110613472000226306417443022084087218899041924383392208658888408017853945732743402713462723073778996347862465261795670585010367433967424544248648949178830927165110518865642148604451205165594966159487485256044040631286514356288141218922743592559078148850016990198665912138477013831720049584567030382107423463693067087819913839537796421812657956461319294165018889604317307146093427903838584439865399381955173782792367071690305910110388626669722123276333083231869913470657629805308368087456712748804760801879152270673260473504620231779382849795087155768501181802735466274452321527184845708842804137387422323681391307506610084600915903631729020431006025215788103831309169500569462005077174165389868377037804882578253210617002219843916486077241211929613072727816882415198946107317519458280292046359358624818663814180140035398766770877605196023507302367234815143862238584924239229990896737989598909968580497623801533393289247237774392924669484689328813475163788931806432883823674377743021428826090335439188501617095902215113977483333762636308354224944334607895965025661493044145513219515361922581468344273077032301101458149612989899109195935358063590621612108622408637070827294441835701884768075510728621795880920494185418562006578842720553778163977200157787130287823479285582302124446251526051983492072219151031526640357030691558817429353178322161319580096578825008644620149867114741898906348848101051010084327854425768136331189945979895847761209477805651733723233972915754709498364252471443904349742792440423969454334590443109725785981025779390822435001472710286202747805518512597273852582519954551768515839567441153392823161092281927510470311766014137639801665592559403047911211197064223166297203877796215540969007852209602049754824721242369929038096220579475884554864872936699958577529150484406860463158590186320894369305979997230407539198063763382994784888033310145649896761002632371351550616789914269041247552739239308832113682107888221255545736304717138850306336485557992091051573698915184888706635096788120125881959945659289727649034796411647954050163810457975573810646099045024626349126244374618879417329064390090301511202789629563421642943967550770723629031950915344790511462436970426107745177266161850195628827631659556724291435489835692833485929882780146432195994800146686368248175496816409297438204510144657997718494975427624954355619567557176694404575072246368386301406969763642880298986326417564200629206791181281059032618098355105887015213951454856830060391540205740278644568249599638649996574394328523194185586978455510327729185993497487861503867486279220072667012853507198205316879827895825056865689315222272455911018332612914423914322184591767555744286118687689552609248500934407183778272340135377972541129456609355855641883095992306598553814608319118196080402837834828082035953239661109277040727717908527693617371454808674745363516407398027654119592878874555170408283842913720349823526230406105288026993804778699887302714033986202506114282295663144745166353498863340627357897420859166528907003017282836585698064068026698391024012865280607976699589181634517968623279756020368492493385248582425704259858811061333776583118278345093963953342817127877566884528582422377649410552314645042500228563491211630301366949448633355634300701770858119316936151072016315207291945986508994116777906206014831266371361513208722528525359543027608371694403192449276059583540789235828538966630480101365160478047312489470744159630555223382344789568427521935246356628922774925573234924203269498009007764993549303733141046045504952564003184657029334846397939160840438045998098517017842714562918102711866179896850026398786155411804795635800604312827072684110881228037703966341896127131362152333829273408794507328033800592819678509517753960793759778046785970454733793935967786437531229308518809504361286356317412959550985965183079231024578357426110355091924889096057928075394432468454604034960419700317954717665326320635126607256565724058794472971083661265241898188800636642587620405565401789186920682805315355032919036372190419929326191475593873877426953525243736252265034382470210816362522591218748287770662495319976520705470819057343444569308156093725313415339427524275707707875151962438053625618927345808121688032930365967571254751319340646855990195343483047157918420900271641693465634741008737644635298711095112249019211590732788989825741456610199693094029961524327725073382620213389365163769785547482306125117908873364123265146608871099088651703625972588546508601164481571689816103373526187279320391066369511158442795230994748686654867345281270499339386326461613072779255515779467351907444681124841808830773149980128798114153741394539596765043203295616639920615978729247621539170177653423681399562847835088069204554322513305951359326617002700077229807757801254376698425408604982556895290749649344388731805154635700407231512986620744228903876882679111272798335105506061759384610073500109501448319180294980399471633870765705410557619770377470775721641508854333980411061185903913202630491359425775522366404102191509919996104701141488036755385381747752367072884776821193398490081621673292875413577465549358151349948378736418363838355654011655237635573942143694227928071073917131141866845437601066184825737301982317619252577448119970769925589161079174308864807628825338671662806378817012716770088564164260618212683499175269442840658658779026978389758878433667505896054323551610933729953126897011089491584503676443290892436592535163361503614366725277101491371457707358485733423669336400594307104851524019136355422132131482661992578862022998929358175576623819761335380391245851593977567299896764681607029167128304357740970794061387346871301290361737832887036347764225230331547995441084025140189948269483330055716211053363267288380700210888581174186235316762802479726073540544577438789014899527925086915319948404277439026540293453601117570172932825790179373442643369590147822371385916959531762734121144691189017912038412121657982771968529760322533791724120297143538378762632815939995862793572818251117477451508766577944178479570004471989121223515065676520977497474126987449367609872774997626363433833726674679698996972586236768088432773894850166880894587297639664606297036029525633386312187459733198829984698142894944886898420727690683084968564910586741016957546832703537646044078155807704431234128344022576621438836976961510147183192184808038260016064433105206515243963662156752636303866742631715423656542658820530454659989605789123630292550151114744889472344071752167492353406914414834929433157176016048948602626930886717000390422102051899886711257130423094839636035631429922440720403784463807239255453937129535329214321107185774576645540634484089314860981902886332757094470282277894862670619929624448737958093353996343594113330245574027257572806236661964784991798803284514150196922874804052717341140357541239330032715344537947984012372782317524729458870292275523407862505986379912942851044802193154457793644419666473890517133330240709514439147941334985876072838038943323499318430906517610959548238378800256416742625947087569611676346993720068721113839957076225679162314864473049530520848038331643387093923834966857768876332341942365119147210474224605404227391719517207563152794492268865242075600639229559964760755290026035183809884716602411221872466003804655376891570662511017374341637227453801993048896579120224987883805407020382260491744723756301725240946782503582136676535881651591731278343699431234985793210764237541057522482791227022364483645533930528572669161199834708184660108692673172328053632134428067099468255255653113615171285902720353742758864199681997233912889215797320989705676832431096890756272237633808793368875674490742578105531283424151101367621977147907325747605297533686056965724033533042046222531570405787064933520171265322624784728559309787178858426323974742330297806122247612197408755619014359722108508608248970743684673603319654801274610182188504644882119524925369925968504697536990306103611901129681699728311154787867270669363401809870666751413608831867778516343097975780317772910963478036835954390727766242333320940460565318105167468677346736176127598070344152115087392233347106668311301546389807704222248704123790618691043798792157671982298623840493290816964683911327360125571678231596461169436174405001754220218897505319762717090219663204546975605976021479452618097608482232461324259664683232394076497813553262314920560104012412696137820696436924158172308006685495068450720733112043752400288964646915234648731518452836159916061465658041535794291169252742948888350434382699757035363633123552143146061329688553412369916118752454834042462014500197661262386431501647040890142490859725272062621586200854360984197477146192205312868831093848856963423430541003317104649763125790203601428239466018922843156536013794068337155206258599276114293772508675616033351724942890939693992636594358563974191632707377676343072757552560708790953861144354268043760229113269668165654065958830885288728394256227532240282387045425809187376306313333752083417417997234981198128232887988639228191168923754652024294242859811021884901585127293413651057298644443302021686827772005199266369332264775530085272672291093117049086411418708089612125418542216222089975881376165476004568678846083335073349034276044826407913384174040523103621760236283828558748008108103250651942296189841294773708105801081904238654775087513527692986612126851384131294262429415595933271800496481798906600438954975819728330652652230248633952992868364298279213273272566179290113759321512904645673912951687740201408245932566266974942076182017768034115824033574871105579070466985912148524394465364277677699245598244845582203124125238363223314662037364219307398789227000190354168614371484909114928191830762792520457747683352382802116880481664235188742136455263158069535143534048281129810950767696364894986178063494583905469480698150331516541448008998571509081074441759447762680133229816217903471984445512263881012851014894155421816910877530595095781480181971955202355017029984245652702311983702816314747098330711793718688573919463316852693411520905583877321145570982723580424178522237173969294830559390711005830027411794684239062887262657939209722401677401390805815007555371576968352031285815397746754456128498458489913570686223071212815175173518617769091527719505598457651825336568151839167539102098668480139917068863259016879501624752747108326360833213296511294219759414705652110324968839464108238615159211205291072552843394006357685261304287923121985130915826822310313379947291283485940946348411883133573679046639428449353587195919268613779419995076220681468384913698984444296036764447599859954458524313403448957965555030835358113711596260680980500354014829481717566081918142195144216435174141795029309751813110136490034115100647836073747898215755078670304937738305431841809530135004538902291671318370038777324741221255126042426133179242289050220159155657578779239204080950688280495826296476668006388834104102930294561242518378225762250636316822245957576893821248091798166199302578997696695474166451751477489062321164930437742955840683690399990010131568380272768414728979756287906753930866251601408000594689853251644370227989190233957914673633566671620961189374219189957416160002916377001549648549215986422366319659131305971585928903156235792654875293742158859876097905197918717002594333368870096168482833781122925181484510069555442165992749243738584502031177900581070302029869741241653463341354206571108161821263727113065484906978745937246053516268733383457757099246433061781113379070965935696045460876198694955493600288038411159588459507138852264573955609505590760819035839262082725023318622450478506754170525236368948474708413152985544248473746089285947126083430925931515388776245605626254619433551684096781593657677406387032348929109369319093404737371791500542392606708793957486678955012288673158724041923260770098002053925883178918922203313865524413548622722342572853068873221650984550485480096508258835344580967042228856244929264864840270410036607179202425943177694015138743509136482823286754330003239302938784030390010741966168125217162615728540002682430511635237144689750690954555188444734705879912563509502141178527446749168037395243854571296831691359694124601035307408936433043304552177022589392387309409117569010468050174170341687047338295965861584909784649139630915959419825658488974366242173265023561599583311600287522921475285838880637458737454294481321246393753074075308483552103829447038945954446796899760916312958943538814782860109300256126913448867888257187229544843297472941106685310552054187762990592685286358837099589902883964737079727377890398575043455151937066741617914519039428058079421696160803527295959443819686507528888945900328475067758836472667363610786131389276314300751006936613851244151419354852616350524987503221359403882739730570638489815112888672423718492829160021188071852051611027528701431737244067873017271910862542402350670703151426883493064444651582821019476742613151016539548478553100177809839828451509557091095164834848912361807781183618951846402189857551920197923216199895496382850430878836885344334812769059732875819199434374154878205729657376021197795016275149001186216129786355624307654338180015331465309263981872463415446868506932794739513957110631733373803894014226135928460542108750603168887752391194162060533662379614412146107314451785981812627222039189293473078351679398185585366288819268090738341536913845316040603224824903570024437420273682485313500887126153238332559267222858414690906694455268397893813657085664768613807583166772436482638997142020181577306874492470272103984533593555499900264322606810628735309381356711221004179358491125019774786681330943662854310480653121665779452284873841558197846621969888770398484088036072513794363499810349712085001526680975587688754110510631021870870720301193204094214590661200875489994943467116713714450990977672899944024984869280901232463290852434283637889026697650778950023233976270061776801592965237853951190127795776861444455369259431754956918826640771622709707518694792162042919064688498618158954288799545958801022635821578865375121965756289132819940988399204068429430976571831275470384405193512114606878928842529751898880132035654602727874359709979255766718287927823879148435984239277367410695867118892623368180867459715836057501326386886318558209651706593739457628162624945870400950101316131763285595427264465400723389671775559928999370469649967407286891822029989354441145751375556486454645694658918242099871000824474988800514878234392169498854259585083001527217021782313048342320382273962154897930753976686375003288739343976246766915561707633659736743463830030419867444440817748551807325427523407407010759215225611863717839568656539520240683533782187451034549330153779297836709739585502965413989122779403468779663565902331733445662061703021691565372057125176176929629076915120188612689652912509152215291192168418657131104873977510972499647322086597113929934174608971100963049018801103003263496922639739142778144750455375449753736629332967433575003117569668882776146752263943409253414341041201566895811260760626817913683917689273411204703144855101553008518273240753478878589170878699278807932125871428610354628928435563019999353384012089020641543009426872820146391333798730123376882739604356408061896690440043171728982240012567375041337027168075997800357351898206737697617755932191016624765358036852355812120645359068200371171782696357188841209122368289589112548404694687549183982376194581484068181242702756264295433409497428543047479802063321330768800088013134365874611857985831027105858852643761254304541541601999288945133515153443632171564324743336454376087682435944639651069851270745750734162597293382584565504714924927884027162220151249327898136848157593134299641757433770987568607350373326614655142868885493170918907901682689725503909512029331658034992449235288688734767875194174287854299716654226052873400909945068339849178896771691738752292565375625659677746676068940270251200867084342688858383680540799962823085610695679183619906994328602562508909682812442608289314497036665251084103172872789916052772188178689802071193569801432327055586513995302026011069655279689807126636190485207400612738842674128365591261171342400688796903428480044873098353537300466879365244527520036584529841466934526669709134122799249165673421132217218999232312744704200522998208195410647256593604741149641394903551910447199363292048505867387453854108918204740448504059691493988700742196615550941645491359232697957170962823518362087892318040206490857816857071665654898543396516332963780798402379959012893212826606705926982989219211611525771993084895400000805824245903401320632835780686165240684359604203573986045030008154684430009262568318776123723528841407050828814934766331724512117502112867441565893114118098338799986740546063251179704156195372093580919660599904749060815807235064610851707526818724391906391381322717427921761863703146672688018565144424691927748356967452433943314139077404225893026615974652377369041014498104742394377479977531213544465797611077932904033118786559876979009953870698440030183234308032128476045054718178762835148872197189537072465240779657917753266901454627878445384193680301795105651766959157661165436289764181543333059413631660891667293400116458071805340080566541470297001328888913396768989156998578772403516899577570230565931173220569458322154532615508236606411552456883002773125644279193566554931244580692455350702094598070017260878655038655604983894749614384699013657920738676402376248606375917733563074917243689863665245959316787565469600203375170583408598802370597033374427573519084501828876940395977944035786400809675884802173403801129733455880261451626506028920243860094141818580362110375225109454007126200147329292336152426261239825686471869837766734147147305765134961266135331906121731882126603431240176928293420375250471428701679760214080994979271317370639559726272166551665121840446590489241265228662802157974770319657026053755498159311693193253031963007725105925536921219522744794603624653317707296776197385727398942971976980781377016655370189534345558919589023016475710741074670991965899914804733516583815201838357316752051693654767220305654705889244467833230106208207225528999679724521052424675130205998024258209517814113321117672152683808636932520329983636890726566899242961191334071374909477586844826937991904651653620141501108925408644785026760700853646277220338522067528583931414196076989880259496094927954001737658515571455853533599943272264959073373515760370109737181532266996267728327227301513942358639183571939582370359205099341287686341210566368978620944259778536527293099914205094655203851836006886949878271327448278956875015121645838087773729316779960359522403919315359113740885803146470476410044405152150396637703047647175238808139737333342615474151470128862299634283323862712414360886649011952259282057405714259143117039202887610777036584634391223278449425047407239446571770341671130604476007877699283167418700488988175688709730669682891449156730650763415433129854160314635448422469559083948721522462375117701454903245781560341343421015567412308668980993185125470788983679569875340753047859077455946881294004843286129955373666588549037193477977639156786500740914987414215955532920572746319965993931691809928195972703291993262774986502474852292266039958724726629315595818627661285079562818100518003307038290406403759141968830106159409448318853487916099998583452517941030904819125283664616586407855796838079268556993461769417992333782707372026023143366981560035243453092620338309170964957546809373444320643419642021298604625418057752615901964221671805472102518046062635732334366478172149560225896206407521594736869669395839413603497400960695449621481297778012209806402935517288555425506130044361668605198824834455945017140557833297659480094509085085565246991481695955529281497354691557132210602520180468157301347363083198715071371886030486036335170806264570461378948016663636185822539654720238179881207069940859517096114546205355580307570841833097227215369531823658108363717529088914612594607075671691806081929890908987155911984387856433366642290325699010511840220992554648858978355599198661630530404702078550755289132895387814668539237378788724256479003935784881780464828282343771470894231258759531188577373073456710913252978433117922135199688395764228183347888907486484502235377611476972125568479998222962784171053245686891632178996892909306796882058896725739830553938464858910954699816022275989394631431191838932097534668152411263588984937797574916415664229594537989566792729661195621153447725767982425745170726895799090555041739747392422968784143226316605343980264928553031788625465256561812459477795351464117250985738778015165547158970631863833864108782623909109122790647193309037029998945109556730468642530896225059494794500966772331408327131242444780059754747599120543125407306919211610826758147614651017509576666764963279579463353145208102026663899130454049578195646603533540243690182843962232373638088087832567909804993248059929070699063836651381313485426510554663843836361849420975731459232534190424095875539309235405075074119525865722554844645132409797672020750824067400283799469916243497992707125802837798898535477340810273542872612153561280116834979037364615525390338670745591038560687067855760352990450636561315772872220303765886850951584299699291212984483742766357891499444250322756960116703373442670922699547754665573774783255009429599054159332579036404175965741945000979027773306374431865948693438820762733117909212576953397242220377525215834189125391643765241821788699136851896170356691135522685028997081763323679851055168657138218390018328591231231673115508709778954643164404845650689183695986161741198535930264283310830470899087404461214466409851342815945123379681728917706176847822868255032517729837170134490494061557409291638308028265082281018267731433683651769520639733924387182798892115467781045086054131649752583585145859435855127333590404140142993460765735368528468383684685134367509570904458900451618943880111494498531791665808805866975698683819560243787884084128190944004062823882754396288962191388962256988011794447205059954917282157679854493904639965290989931610870308919564017735841003635057674108338124261515123380420845914099250689202127019368875239523185749861994620197893033888426700385019627559041347092492450802113795013016850717760180691326943762465708047500045097425102842720831525072953776697093825477797739013291745009293318040656718858870150997869570470355995060925657678726867823970073659318398718645585048708365709351761974997659633307225733449408066110876948415382716750024509526767917051708526873073771120730474045945664143713718800564960552182788549563862441715873318755523085233718333498901633059839444232392922984022606870258573924285840907862865288770130673494922698700405034826766147068957788377934723526455345338806360183890471903766208173165157831428686919135865637782796129717386688270009516399889261370321012225936196287141098639417350014547259763377496150299401460809575926905720556696349073085204627502828518819523235463197623454603239468589185150698931642890102045556782277865180174028593831943854394699164025965752032906297449618089463685796810314657485620083652269282707700961879074001792147807087543870867144641289638699570150552339917914368808096096326809372732146776063884770544530460347244704734542929075187681575987248364496785732967649767069646417400570510529760417834976068014707659586989479780429834862871173671507420239084665496825318456270024239452959094082913388733910447310554831808536820234087650122338064958588171060908883633546633117221677821158458414460620480550303486356610981849148265768615701482973649636344795373714045862532345080213318756545875781619590983481963706290963598914793256869535016280587660869408459259552459543279686579316199904282955259205554213452607161802866679621784765916634555702163019803511879392753667511479162622941073235181744584140299503031837561081959786034123639905197633228661824236604996404576688038844760351445149653982061569586884597907904805304659609394233215770043075027274419541547771012027013335437057698216430235939388958168917436197535063762928898174935953144674750909415156185647576745724129868645680340433589973192898611514046467596262113668673370385511440029969026135408658552309899712299151893572122082824215344450730745155046147311593249311616912501148439458026559049079413742824837862188236185485540691600188249615474017030368317520951564567338678337123155605675793836821183772366112212103828095714957241370676466660836984412827902179177579388534064897955722653593462413912360272437632822142540517136982862846296729992881278941464311373731346189223597862370690383083398735312390972690730826785255140750497666230494140224297409699925530093426761543386868007298444970252207440972974976461555636995720068466668760553393977052016891537873210209569754007605622480089110376133446594768567529221328046214115669127388451185200818020497701627435187538386568000890906883835896540018581624502436906639776978892384376367541634403979999501064781167576180722312194964680217093777267324065316637441295129874129317691762660180363952786109232300366873765211838435658646924611974617424334202117091363868499351892820842764327766980150677213722245654811052180868466628415947192050811117722221696974345449294176215630327411670179065193288365916830849271038258821679280723929215261837317952068279779381286872096504130939700021996793689921556921620790408418191502151337887272961614299565222514451906189937021244987737679387757735293476326132830993075078508256696008280020575528063007662908961845151621274443059051264692324548445701884468979736969542616368531714955295010178759860135504641812447864464148114087989891519723195089580473808555437841946406135478281042371232803543951124214845722272726232152894468781664155047778793543400430495945857421148015058029470761806453081057116959323723225291174824234119389457171898481515882999256016177384623885214536246308130045108889618735075785219927817455633153082496852444140291107916326606229702853812484909626407677654426448644162353274691508561085118308390957885012828708667660324191416180226922191451861918659033232182184631107495042730158242255683039909106499172875995945970559857964686062272352791066564159707843675508870233555298040965964498178614279790258981849395791362721551082268478345604566812979547293217905782398973264817527541820841349850916109290115316803462912218639192401360939913519292472979811731740626136267196681077861235532231910099623395263652269311379208065097441833512144487102516834612390378441941266441944069149923201235174496590438903296115126732714890363288379777242775920485588188521832686419149991293159619797208457970276669255026528684671371743157178301259126807932448357982104203075796318917261050602623763707491781747890298405951110586994153550593437151978567944965948205382669361441366542548461972397119660085402236902511028875963151604782636326658231613231661785613308266032915774179380180249705377142489369014044154930775665975535006116787218247651286309683276046625822778715403389399373932704451015623530555443873391554467739606783515328869207935409140018861423993204497805297452584645697250468085748696340349258245661077566864562419652773432304292406847655782364698117567585629822309850055998916680528425962628944690585903568790128023207512272882967981116959233873380003864507059713243483372259193146141085231086698029567612051640517015094820355795433038263934289492856337445313995426383382211641122982929826320595286957639041384701385355193172998887979029099319962516534727586029878280934057372160778577319777168953906299203262033887496787885752559487941853868373862540392819476508697207481729131177191876922041840074346464787985714929290767362944622023363172193021307808096321009293476473910870066444175884774718742765980302810294084018233768429820291586172503852277715453249923607656390054944599738986613856125354437950337895917127688396293041076365346563831208465613865328078301133361854055902887693246951180284099380750321241814149641152409542523338573066264491521070529053688325327758608502622855917550561596196737108011620744805382502764720412886259271146617904063427409443962717800550638458008636258132875725358791695907827966168255522687275285728364808808664650275975459895806286260550175779030918836163122155048927383333288799573659038836272013163069622082216926152777513517695869030804458781778835973378706132134303759635336566164094156685120894619918122381216234201592949894078414204812000978748873211331960482942838349074562325756514704931235293466967704942117925325409819250040405807132015501391034448637506496062882105625578767166600956464202314774356881138684762882637440227443643221185858736104651905248756691709160845666358513203779904841251171210382566160251271261072382356898531329369944054349400962217105870234945971249576230287713645481767579145129436398152115521377294219636017797584062459433083491947128633457758338309937823338574347136793857964999286570010255709082643497438454503126908116960464929056384869737827167136580929679751679065569122180458326634007826860094067476626561090496436695862258526651067068837786301920882283598320929904641345102950837849346284242766280157210770627271389491137138431584746617483317945789474499040515194038115514794611375531244985427562021264435082582182239657625102810573207084568554554083891356782550827303579038369544973879837771878324026420158345579720892195215769981341165343878400596707139608559657117766305805854870402336717052587353101147937098862827600230527039492873342078458454778597832189470451208683339064974092412492834330590336383786233413608661048033902162731680004188481670122315006000620969241862131658783546711887669778429441075661730026878014326641016049893076955546861051472433281682069482596438166576424848757866057861999612758420462082499386256635532007663701296583879995996547724223982680787389313247287385988459723488062870033677709452691184206218123894376231040494603134587468714658992091325652179272088263019604242127799271628058221507690279673701087529055017596916531398088974990958001117586013768856977323313785676586780007993745244728342764637330356526057564447567644234604341312899114967424949815509808872196837106429845709476872340710498615254581869071035627659536887702458990322313344926812700966660096524254483510456183300300950914684068711458021341533974419102137668795911181300249138030484595100060542367244591784483799635519176045077819051517065436193843609591034381866332262614722541331983430471827064359223757600799770901199150082082496432089347306682277897055775069256806223858025959031749962891709751056117626146050721128195599153261899577204311039826315422534742497403228632368884210579254059354536780377021942886865811427260382818909959461456774508740288896778785639811506896828635710682919820750086217016264924331145313329026370773304081161773464446048643252750061805006702431017050669415657015181485808545933207660974455027167761993670877287355015903632090014909221302317995807628809885782710614815372845561400245480888916936464041390303359736707326424813800087744524134807339785506864255816101759502141861603747856967607275418494933998193209758184740366577309258633179081393337268470014808267126027045583263346776625228707196303329243547484441946890124266029630533635946433844176684431546537268283072929692447350953444461049824586145049042236134037179130192196853620589991990295912851442377106971655207582209947745505764084943237245444839533738727997666476331700086185009664943404554929366633733455206309047388947989422581895639307618201475849859230129471533994082988867784053036465289663043563638411255207601849027221076154094543192423105001372025423977544927340186985289946187470764771962518710842332940212458230857837671720843344982257773968384615859435883576035243517951795137184085678111025473769465647766762541031509167074761041461209014824443650824666853013635702086078249266965267553150818969127088259285813554782416959391768699272751197205943740948189863607746588949055068226935879479882715721855336183588264780631773169400617534369155604732190769958709222629793400061971182487427140146262621372472987197093332222121749880487339032661277758466558367374025387318227089418977136715866946374238498222223665769558930356023792671466353768363311226454527776740632963511862342253674524277108190486935110386664924346645432382548805198296874929974583545561634583132492902374500989854566477286825646856905028557203666122710829082979358561027824372472419772957212634786550416802619704932847652920641528253113110666617772087094018116592809147762530012598356925351435149275782105221930915195677958760058593799309804538919340115810374611034128511171538009956890826995465979815225737102878761690582596468433114767537153353684342684488178640423075090312307595170068907314166602652403160760383150992314652504984610273000951796710010176347194083225772569412402499978290857761207725829767082544879360558786832286017800727192243606032285292367357303545740427891088624642669945597524089170737606545298075830010871195222414486578000799652236226767902774165517021063066102660277526372164402246806498135774128235930895239958845186250974280077893381193122210636287628984143847965583968463053968554800278024927008146860662017743019406302380574882195762349025791557258097457983489577524113433037224487764460705096749118862232052368935151921401415230435805372663326648161970196264170820012198704283285558068390765290154647983684732901349322629012726030643443864145073144865933772516367104923293139630308418453213197021044690176206929509613967748041659787861319312765109218081049579486279424346398996429076220467915502395949480199725503802999352689688946213883302509066269447012989504387582629797246977004157667240388275420142117430414554893796843915867041570320610722984733018601052465135363434388032542209636544615992234336594503625367731666461792166251944150589804750958081523477101499196699204224613716457108403808414651215343278332232935382513442277582418605900727703140838340809345821249608203434488613604400954379674649396788742756284830184310017995723341154597733414309741091900151478178211062245152746587012203018579017562039240609345626147370383895435846499454680855574935438117760091542038016817576766705640996481243435702340387832338470432835866242620889569400649648426335817135530934365456469361902416746932710255871600552507364758171111605906319909401231496728765336347538369306751427977006016230169432452638293903441318656590266076635564685474182388833352373354660994222868658990206948692912944541409334451489486115560720865562061194081082383248918438110890076640067023587384852632836340039655349158471137958278959964808227590511065514370765449786878157496090908089076679803668182786604348237543533822303972157999405116923197777392126579119309935845907866046722313280329550694025039363642941140441266241512031387513632455795439407573020085758764185926077195011061635710518156397146659181692267240659131499863201118977062612983285067809994376947478926522252216061124892310161039261771368686475666028530713733044541220710500022841799671566381094418582253418744800542195969339003460969101011114216484723478549932941059057174839000453357732517814240894445358871319805030690607212910694300279807430815074707716376407630055266494390270197002240570285943012418956482698447251826618413246996819329942619973717346787618403029902447560826960925091303198496574776404067458514742312914358674933534550180920445135511476482369221470718193796414115513218287117985844263798036282714830676375236705084179418607012136925201630368022352164530073776110213701410100147186384842438319881925907524969765602454446476373697812198149295918060441929443952898377476789230540566501235414596921822779526977120196784401760201934349354825275085405752722947202886964870916209094245916233079623784726277778525801667140167165538218310045955724188881826634829543675004540586947510325048899037598732565606438159718251480246962934940755768403744736185029693279201329430132954623130673366792391541519483082801827142816808675466783321118379529409407908279651927721247561499488047328641641277587114327770704301141721884302099303060202250454384374778250211623870229367852595226035655849548825422270867231802764149111510744636917384077287501861221751968610931712511876238954810904978024071548892300834254265279260213841988354979820919313130853378710341085595642390491229717659435381884774079472723428376982855890727114595284871087685436328202542410679863859379727905068026846128634210776279942573795342714908308010651709736214289854291202234147428934176861255572099522298442915647895311988781081615299223884633210102175764867726823936886356757400294666746963950694499466697702667275751707990773142908361946799868929839695335104868857198265174384841163983785983286367539923977085014293012688120038061066591493294483419573629159564421360812323032686878037203681222978465798692622389753095958284701941179439729999377119841847043899645515829635075009876652505182590771739123495039380876754119614680928510639718358664627444631275784496735008900853997824450736053221027750391870402021750390446657841331117612561033928163198381444167570969700832589575533094045502318296420192098987770342300975463208259789535457578485482094913051048739806958461444100860806694178865486935925132950400617416776443588113592442797058727953408789531605405164788381925255901919123729198690418750077393145258359414745613761250698142977906684234594748957501861016620916156146088655790267757460821946014603721145628615761747027019490375664930686133984856180644915689255319351597249408831628512637388569179568131475404676187866173163470281936982742899731058411150924920701938368589434624549102036523952888502697098284021319406035498791927779247798586098106947675012502659103901895925176086660992869726520219314157534345176097037206794289094311945369700421628783983252624445974995228204583770360025066786617837235274992901274582005158230974372131918947198076658100032650326374263024523113115174066871196759565788683501488449639783428846973637784492407326433653072648676962091772452051027503626230641735991846506404521354975791724486766383254078415148452646496507250807286355968683228637456228541635790201448491216342939647034680044555289505128060257095283659248785455411263972880660968941088222894107526601979229576403943225802836031341562473344949610813768392048286637261424276781388206054549874153071117246566456596019962793262353895319937375794623213668023344688213801019955455212440750089213142560121996807480721125524995624762937723934545442182075026632883648979164783806797756300494250668694664245802672324114632183450732582301345351972958793758055915556300959976244598535274477888294024334286475006941294931285490403693373804356549312294982346173490258869692486281334534082604106910914454725344733216696056528461836049033106535487566274451787374067639281688288951656973910080966902494515947143663064185012061631866669866107456199006845441521639781122949011939693679068727045196811883308085145255833717550440624971020467726188180252521206197805581291256741842573000803441569949582749259375170385215680535264234812362508650651890223325239275795845289459895249384018877314392690535991514226247320946069301172833270774723836630680967522990082127194035760723035863167763644590693343106700620109505242536997971820557489854654273921474166431676096449173328488623329821171126389830098585975143733745564754093344967052509849726765903136265626696763295960272346727194518707162229308424453274524497775442215566846080320042840633884318182561807392531054071018505806623708895895774155345280172556091821371809552651883127050295366166049762369099611456603287641599949031112056354715724452614238898170130387163053970818140222030849735066894994646065380427715196956131609472196124107437720024956847436875222301289579387926687151034311832242454936078076023578832972998240095635591485193701008022000412224844969501355622237108312593610022250321027387905138832881160237440302003679704621229498897867114247796623528095015417859396730233944441454340111687919666103772739074796667373993212446666877601845243192864099955958668016416451458996403720422921560333590723703728376151322623227746845044897185437165687309699408590620317283194839907133959792299777365384390268400047748256897440727964860765094594636272650390653491288547944717065943592657820362116701551290252889222418884339667804990858344091401065907807592424830133794616422430465973796280499332589825930697428250974791221506384078112317350424607330340367368991996748910734326349139810676244780269499690618979726377651218245944940409302108021746323401780246387286177776463722671935175044030484639020838464807694654830305381097853698462583500707585533990053041584981742162101557806827167011249236974567243237450092292934697914290931131902976263111791048512736764236466413682343333443924192319548700146981702614782328109562866961895321859267255798381927117533781472241532448043973825964399495526718549713963354924568619706791698404883671320370920359460365702235849518409213332915116417455203136210252937433794004758206234762678495112603539071823875691198552925379737217004727824020084322208000783530909212252473177454972483947781656399581125280555797624592702426904710385479941415710027816616319035468405197124608365752407021381984626698407549597422827387265735095724287753292934935874223969974715641942028232259332357293345349257174945052084477687911423267680631259747477192773682341903422890286998091789299397460904198577462623177825297729751985535879411589659270951169135869628334912361541604951602135474008653486806819333372912785339734406083493836683937360805882240808205955762491826597422383835101916635436196059502830079127025323169955545551727816136939387967173762222317171284944880883038412654906868453969134939578521474158436905579389387368861977315469076796021174414805800489074464915687622588552850124292081765035016524524904226568104905886320503366069002570638431763993372850823267134471881064046826405868165709266360416058851533821625129850957448858719677502802835232575014091766374351752006316854864580451750797687321482620600404514243737737776337673466841367956878592129764734066482507911911935522193831548351447492152570128343370984982835228802234694952827963864988033625208664641156475668906763635346725815023762660293769292065746052291237204347214697121685364215784480957593784449457407643545047864884282326022719289709394946068412560963772248787220023953927447029458321497641426292051391575470679211554418933933235725571344525258716619192645505658762731684629234020281152581281710541848360530227181246641222906369902778067893307306404945761323129647756888666760301035193020421813282401722593110477552253331759209260411315178455804116879040212207802766963886484823829401872402248936201042706826432650305163007796335557196183436219518179382728362509250762337503014181027092378508376418352807874444311910525929277167352398090611978480733866619034843927370648397288605752498174832790148254027635430978108296477509932430310723278490155379441198339903135192364831669656086363966787912504089485834054088320252879159085901708485669002476459077813480215404449979609999242227792902257699759752880616946820662063218412760090467049616617477618918221970883234276134275918500392802873137510073973647476170700879722116266332933425733191541518043181316520045215569336210594056822345387835229678476604780799914241113671171435831722550722661565219896725726197753344273895682573390145873631102522937690212522124181453149835483834997657883798519186282576602600798955890583984173754808737261639928042236384272383460543545182798980138572872850317967094892039809891985202549848251091858858827282722762936148682314094244508461729973255226086560306035051280430226539469820631169716963800612648488221377473737786807425722705318104655692937108408010079893429791552956969691701457148834727809853904115215491047622040194653233947840616998697570676577134468919484840591972807163853295123829418466024171512662728301458971952839247702641160178131739436545218068916134763997938343360272727628161654307887613104179557872158660751542343745862193060346558559620566272235997782500450854881893020149860599023735247439739015417627110569329781050376630398382037498984663831602443893156347812104480378004109259770191487673533610427964020077493490693782636146723672910579348637946803454733838573940947329660066526813864062474377351538931499361630551823119250314411396537868774815471380684019722848311400780512636993430241448850553847109352697055932875828068683093152663128778395059118039848304156211650686781505454607707747461782877818404437922885466767063129057934476381058602997433174362719222558712542751808629717722177735552560292659825056313549400614597105587268317695907049896350985654161060709014440404948141894280738209932957266871930899641574996378150923802498241133120044377484921365866126372288221107697560731110698837152121451680776068570086425652151321351851604140338899338204112328047723757264439919640647019412995021152248791374711205842542289070727285217938215621503909895239205849309268648132150195209783318653009159443451354934973560956891477143396035720288877878986990571307904559295417998151087734204586713337400903536318820172645155178508271179544833012843691751130483492484019080390588060629702364913250954882872781646154933115857433705537367809513825517937943054385886870714266724125097001140159328246251599534514529817728800754977945608832408836486892402511892493915773006597680264035109757253279377837625569593823792019724892372244629099406247915402023840071354599004442076311555965517233199032528279858088093881830130931014330147159707966415242475819896951203086557483282407033976821111030173546060357949369441991119668507017789008129400505564965994351775653796026359390704310784093523209865794028045032771365478169002050252152715644888382131740053209847926017950114774471686755805003638276021169519874344551903819345313100552807269536140685663153976419340350993227701157529522718858288177278396551334188312557136631322130360934621850881968219156919883938039626921198774000532722984259710008174501529865333556078450141367352421225344646683446352546249519346175901324945310956850576929405958069605716771002097975204500486386360276512204084322134036652171807028397724669014028654271983444968148056112999155229091232999018339423086744097129750863810606078997970480142068875615398962644567129988212130093856995049686675549898578309777324760325216869577771515880323975677130622527841457370319896737372654096303110000113977451428331840365588052978869654962142615587615166991177378779762173339056560262387377409641467684517377874098416874861487758141600077387313189562021946903508817147814438942126323432549532753496272778770161183434683749364950887972179836333421046226003036330368443464665833909591597717381515666417092315637953499305735972945928322034608862860727784368332803094362239783028831920268024188072730864101051076757080630584277821286220733716886881127966091767476664463508740601915739340997070044832300904116710855593940592480695945538940461010000635139346878835582287063721573870786221070068385301954547210293941404143392370699392085992112638848729542779981095499202648154240634938849098830352262597438271719578814097342923112544475479915872555702985044215208018818329113157150534866318084971854505537814956812588358309762326588951960203900676292291708023795015968731234641690345548019293045621453915397244888717180072793867960448755935743464190832753734608215666373313894060524010521570291431648105363147739326346672326456908820896006516891129756868342162030343109717490310909402172068550578609924501088296850618290090260373306063244857489924814959361937590229307760751594872438890002408439711896100186517495411814704856999512805911917428826853290803442740579549449440769662875786151873582664640604332376115570242101628552049579897110406537014902612104342455973001132670016315009637197592763877313727274363831807378303875282462940665151407046773763558374279763126024996398743576536724144529315299316643935580255852377892293687231559262413547879237016714413931091328984284710377509663007793207054215980795999364491453754499196216521960083024919208769776076525843429100407074715147508552310810463707634919837188265046379083429709460507819973884653858216877030685543368661676384278920305398968961753717556625513976391275379435563032431897696443763275124997385389003954006017332503354130412788896234867669952665842869542498960922177346416214823139278391702787271856848442247826719741558440177313013738783901584008973944003277772271078734464502810786464632672363729509772769393746583668105519744644964508542614425297324669155712054405223769403933624238136474086383581651789551517482289615798540510027389465762763559127403425402419629668588107948625622502023276042796118624841591927772484087189968856259435995679818451168743227674061539176161045871854994971082477055680365783712568257453905114246217379684210275181610432881519917050517862606440531254393962518762095307943743111402649442257436119779561446135632339441157762666608427324031131656376592176688606259746728888175127861094173318317523098086345691726812208677897205129307773381350483102326957146768503925298816062687263906645445940164027463103915913736442011159597737520653815886467040918612432894488656375172631070629653836432993033430635198754462111772878142975989422708270553555128034938776923041310790733303064635191870576581765223032874064945231737244938643139101368998649510607255960085218326777371763979490801468115242587400780263256955505516461964830321846873005028772775035871520273824589828963308732211832936917268691612586004101187131339589519313409169820504853588836887844398754278206186021980960303798870172060399328500042618447639452488554673998411486775635081470657841280362618270385413471085940951744451594377962987637567124244470254735930458327608308048041409860382221417993260312019411426895409886971626936091216993638352333161642645461945780397485650342046166651758072276985709439049072019328495060932837929394161419581891246627651092505402796654720678508338604945756510237745736307737065931634396450592165357604164143151182155250731919855141874539735789956036310045169183975297328510913880473443858868968331631363169217566840078985699683232435902630436492800072888292760012660418645067455920038999246392105324793403333615265043285072451027680966621571780776303947015800029942629448838274384945079552950780857255449544123043275226027241996921059259538960773093189421085237390276826350949362508599465894478391044359011490046048211950021430386524894207711613361891544645820935528431002405693748957815240868731019470856357787753618198908183945579623197362441773285819578839901379974146182470255296976311423643137196204891085361989519942339481369639285086309370936000466103916752504889494514264118647853071144225162422860838739261744621500047028457870045122799351650375773988444900051839431677909506240462494824918650551543885821141092840969227346739695998353864074230742516675882070789475643121693169003288875625127128576237532634299840213909791433844090813116906194270130057780826839613707749439527598005456773223338697299342665572143221627275510689523317171416828240215262444604499569898988961856023648347174952260004564112154281679277149335567399414304159127893270566844692361896334661686767977688407414207658603398232435922222116015782289561578641418001895895636675673883533584142544899779785492780398469734016360978565343054989317193158938286620483420943728907434099079179505986378743736861516798639599184293891253355879821352711929503091867567993648777782440217695702715712474138700773665824873173798802085196044713741570276673350593681601409485500482327220684480094281199499598945829859626427224590884726682068931848981498802903108137897919462345815101165500939319545386167303595374322277855724437581962490908200670462927658362900693027486642176634121400272366919355996701905415612676327787490103405109928490155239502076366443107752674429993875386898764187198229954679699226894794531910262294890732337298980759372852473586039274610800621849677885116548712479891858454960137203986074951615944353164516871415291443244945960598025196301171454034988851515465027030649921288384286084455280085660740574177956407039552690234541680063361408424147041930569271489376636299036898223535303535621724143904009179251016813602543150124785967582065172619220158281686772339808876524772440246436188592288637916079621290947464211596697832167196380912096153466370438057328393420015051047804261497426909006958288405773184817260265232114369142097227008268243256634559536207468591892341802897248159062752565265031395811322313656536784454081959467385803688416314140312619009835946230011075823771244189805520275326414878731991486530246923520790296393605023265808946655844801318864245930820037070697658028257621984774016945603190050342249908274833895213814619302125725998952311796532921996300352863766455872334444850084349909382095364805050533281795329188247273369279799614883171554109939615678188072075057436679790866387517291692763568411073694938818400927346623621841346152742599364958813341974424548007075542377206533923167508995345514764627783261714478710691936624279926457641132812374552058010968343977432821139989245887262188777015635250465367507457982627640780252657303525518297757137837982951674527275822328858217623451145144268326178466137308734616850148867494037525385228054183413276023621993068215616622773226500242888917002988350764619433729613067906825489279867289341294647087781037082289776224351721751035364632286555249476210222498093559070183317640882429219454093964503150268447920695474994564101899212485042088025945291797553533779780298566819547291734124999294577985365729748375966575089054703190858428564864631129787086576556358412342467588520233115090915815184816735971853760208914915456254227137915545362551510923955545698425372690190207589285153292047885261854276911760602191241662024851643016417621270186444370221840147710688143891147602460735957023320714593752129576877023388971286735814346303516722586150746987446877452623063752410281492111247864610150898729154508676135861638653572774902715897713295491948614644188883267188649745838049002219694955321761565472632250470381686450523990791094004705912696447892541344055307487987926807641549819159592781728406971279420806916527532896972695118520473658438499596013516900316431812267296637018184659841362754703999487681085614709346190048899791246996030651317385470141211087482849304278508422262619669506318134040454272649696197592870011976745729576448003393029730045062997959933627400918508790776742141726732343298707077401098827221245389140183828069675352386754466094029409051228497673582618672444503804626723088706954645062110858311621459147785032493181691224349501662725200952959203313847652025964379739284409540154414595572481456065565658685007486246419180027856782690188183752597904409629272731770401326801405901190290070759380396847862947616623564215369466225322136874764450857180985388647761264885080535529195407149697131986088400915660119233083324420059097135634320926872987679317192609116241672701248464720973556560576594805191029777684155307703219217411254938865405968233238099283766950461454455039670306214417994535819921372719308785251645120347438810824664982849036541725763521308867798085455780374500468501042304672529121427528620208732790443868877746243936979044973187518766122813866753021360213639689691500851396447783484611597806472284235707380101056179438880989089413516169025223865792955748855112369445461478471588690728600601838975992387419599841748743449159729860488319445794484622158759991449385489703907939363452545881936124789191841929545824154377058971602411047958566404887209987492508075489205231622564769991297418000108415121619715957351041974559293129387290747028682526746191844605055642991227161111006984179337147411297074596067193540686910850739513724420834590075943217067882466039428175905899507606415995434984253870074675009920145874383148354034644241899002377397498574129932137050789835795228266703503787972133200724166667756137136521213212859188953089731296724845293024887680473071699849802615890702799524015345387899572220120632943619571514141513747975898131720532742481833567306815224228130582859653359722253691933212880111351168512698045219240382155946695465952469305502909018452451221602949950512844442644625362017997231506562484960489905636206906779682500879621210155904923798659288615058877478676763628875933622969020046950904746085666801313106325152373942836061860322008056739248806245759724978919619273690471530877133478973335313350676222775222371844161502146255627599588339669278939088142246342689707080975569962746946189678494472146248360632219363619751031523702996350959819885184034978835262375634718285468153983411332026342785806623756475658866876585661215169186701960991678082336111949652398257454232208213908130469892823827951774485923067129604669815002501127426766467013399242927210775180133771805406585710200967344766162564889053666786900652653675903957759729393430825435421118018980367180922006814762592753659784943447929435851190918007225149734066006032436089011883714609373224441325216579229556011649863517357953409724197164742885796190482077225390089431433888701283977806831157635253955170914709483811312987608127222607313344603137903721871169655701018137530861783991699384208415483826936635215691505969017153340665934167565071673455398991379359254473801947088875665060019416911449873729877663016542137283516003230962620521927743442041487343789692847605442260361853778120833067372365436419275600747012822945022151932125238865892605176957867798275138506877116095713416307503910260947611238144223370500235578492588211576716602840819668694680253357116966421420106301699380275900691519016886522601186429575807899618490561820960564174386285554575910626289362571842983494105757417125541372464947687171650243776844957584919191164075948219027026465885272899208174623261024533706194615089641945674685948063901841146899948161885151365633197824595210622652793313710282915264586823237640206338877199925147452914899013759003079338893749584371374798138683208136314311570823935910657739394656821461604749579506189201088373433408804697837677701768791105794323438609998042836602441993686346279493303166060212942458638972859337316208368059558065938275699606993018346553099081291941873784985294393822125315973908660704839033111498291412294829009549332748716823251441150745109621813358792300364213347473805673328250694968138177410839356965006961295974831875481455083094727783193616792375574619047503261010013251657921757733274896981151886870586477256263243286749750384353232667991916557960510088156496552731819798817523082490772033418728832691672600296615442876754495934587618079010373480020979754574711126383391906406222913560397472075997397087168053013932983978809712472272593514237703129421956811304720590791238489624101270851953968076152355025891348109951145293290162189104114024416079120174404459295558460308764927127423339528121890445938514595114394230299948292107967581315452582556273869541570138605757765478596330354397312702650378428878346725709613900399680635452621906853977264049334520034687202264242786713818302790441349918177864090105960163384973535870470047481295740250658673026143085740415982742551100617022928673273447255765899358649625772614844535134648523430371166982754774621461208628302558195732968507318590109413314793025848524504194703286646507145308126140333102407002666823656674476316952848591205310742428246938152929643934605580977843251074484608578923027367799310281887985400120096501373828364473558997041675083378314711286554408817942464155654010974486920480457950703817891875454108922280174094616295252792133140724113015610884388389129847471646615527676322082740629394693719172919415593373498343626383329679136797430778125406534632414045800992628028904247039380835890399926449663399098431348628075348369564803247149854332790866951649743421889818294244157648898860003383358440748233316261607986409719512717877290670087073827879695088505215164982243635018441197182472120717420559316437257577562979604934006536834724749906071184119273820410070930642668640402531728169895269662139509870001083509083731263009219464737961508414749832052110926693026144958519764558770714663811225740045388030118821782474953241219528302238937180993520660771659075894369992275047762756946381658393973116584411092073929171721034871514704319754660193514029027087513075329016194227998475958209712833703628056500037138349784962596080639780249629684146777943667571798845323103089480540678659967064399312787167743565053192031012623549494049424583160307027420047432753263606208236345979611885639576823912450263998149477158702723956662707033430652930950501826152395157321392751059366896138304277617248233132932238875180922267002849991119754463055197008596051716801862600086067284611379724368411533618913577826347237978982411824334666275533658460057762988822951509943825440843699112076195327034896815264783305775603355508223129895507134325754591132389849518275061626053553489379382310328196739798588822403367930030178604860472717296934818165371417429433533833892058811205243357654522987894577372448424740919279678922589655334233483711928063888532896814057714432144723666817579538532337854432448821834697184798880639139805497503227039242471666773489822087863773195564280994840518748260648649721911997038097560647584301659432876246876750965620548438350261718727199498446516388325649034757686471553142652213616736144823295766644474821062398195281386715258624285872109040450525882237061156027777836870100363529338817338363059916525506411723709658999580142546626381589585123127808586118106945452470730873354545574870006440411173400223203551097173487173934718439512548672418480149215534792536596579915154464784213214277841576584768315459492329659978868276894091047132624138451416492716071365175636026473300635534030817545665310917258279493329146337754711353185843290159264824122426195290297782739894351671826331199186722826847112322474895787460909471160180364784447200708314750883083158443022077850126880815326497347920154484301177882169394236635328666370361884862000601029202970560207561797340382224200047099385465040206040927461304950155670555118358050316813429823799248299416524121491321950980857813507027056158064978142101074801930846146341633051279600865831538788021166653318890326073518757780662022867429904174906639165240773311568882789139422622601493832035856652534492316176166833122953507844665235411390272400429984486578927376799542230542697619439918317640331889830228785451459153516595273583546036956961792089261195174707919050850372233906783376229055225715734058233986429481555029130096593169752858537682604950919195795747460740601778855461209448347827684774373915547388259296779894558745313005375559980840639768146302508493408292518093694636540965696561426862329534628610925234709428654133707970979852048690469594715092473773720737151579326717695789377777372901871839600601802797876440520412878011520368700119294983690562185254818640882503099931529335647407064034981142164065845090288880710236209608329534191620272604646401184902140822732828415148561623793091753946043866814501953983365606718706803532440947435287000119405237922754085211490499570483722699697159191813958592242291746863000904280620758170934415547086488670319413152343556808509847715620495951605848964658858801860226927458484842293216479406520542677535590213685937643407360962240530534732042237748085192837349150831355801232712069170685011167704847866343664925337527101541527630819766609498486537998946123946885199004103100741980338775010773179768206687983209528948519981757619058504726274967017521138034027139426828372491451648552553351389534521872065966958635190754845920274116480932539570164115714571704827549885153907868579232553449571707662830272195160941713299751344410197146121983101211384392219617860432507385209819502690914475560477991495294244899348748074856284443426890974632743715449817992283420348896146752067112594996812478519110481787522382201767644172757086954936793750542718495865961238507876397112991431215763500826316924709927772165141117263319305998417081495742023585128038535778025743273187734308282292042690269098298470456623547978397908511340492949030935429718289846962675704417310069475547357333235785719640017034287693706072019409761310329341745056933225874474278222386884509527298640434503179516298264837691852810846861536363113811785522162390445129905680247257742374348889178443631370110223473962430700011009110389407070453439887845191867710960431952036082516168773089762537733491359539304162335483408953578493970623053032002008829667451018082893094482776865343993255234041061917524000873205117472292553383484355073493742280852804689670349231726631317776363328561873719712913228902826876034622352364218032101733283313784538635121389468985487974401672343888160816256029256306321603418932474244040295391344131426447426789213873747240336929779915169082574697374735089675422632299425012502298768442328751470206522951853188112326559874237495914816188266578716694610681909812767325457322008562642958422897920986238556147939338117747101572576350315123704396626966406528544611167249276486275964403299895427558105163053445083991082550277767954534293043872004156803714184015684164002813434315004994302290301603790018905541840048192042873414699395958067725640877457069054753756918910147348835741508086809922035636975760150092974823436392313233465655637066532405743194761250231429803357420687254914729207927583023591365358072875806017054703475947750118618223843041302211881247535514815925718582341402281491558486798875704797378549218877172102026438953459545922902347229338719651976131078967871015686952452361961886533991211859537024471028991091610688132202450987803929542262851882443138603408011210115153285614144716847613888148947424260602517011916215102095062322031834500983648090618463065034116096185369149822362433264301940943655506305203431531938057020959165371664413250802915579991160013941639055343764120797110439150794684958417757955796374797613216057352081981376750446765780616905370502071085317241302934993548287768154618736219898532941936635051435565327572736556669487369119627562299441789819613834477702063113300043983236763994660466560529468098605588022475960853995283468874695391438021183850009253369184777167458259678151722517057643552452911364812087693361200959162906784496247744664328718807991715962857482221497048222720169703078227657699909321671695675076120320600756681137504346159782434397431907352311408755133545925132946702578711329705484282914397301371115404440790378186768029836000525837578769060066727226279554408746324979262054245475884683073164268872611865131287953707802482625291609799221343160269604879944215323900644360235663398759453105317887135989867133145807879109637299933586392029920654811699215768340619565469132806883409850115953293863587270902963510695043843971146190272657632592291717258812913206227493808853178672397612277010561875627066918118945528340682945726911093932412270950741138173308626221236651195326322096484477238229108775257924325342121998065991349014215793145264720696426650510413907046701461696451286087850102179068474756487818781278133347617548395586037234501784339113331703128135460788408308903203737603913046497615121240188700135610093828387861268681079052257191667772481123060302986658549755205964042044824181956894374181294006514036581562722459524737400183833699202439235343991522790354072223033381845118914841809054903526576939496803025787967143644600593715853072415226725224101520035195317081033364535493259500447562881276314872728732179609369449041816280163962189113749434532481062232919788158015448114310761915975047409828695725189507576077991619994522406008050763658829025643087929306981609748186110852917595305794111628372674237811058244711155983731286871877470341423236852904588345778835317356984889673536887719407418242307408459871713332188329850024883089057085354574920662094388288334172839799540876651571317427819460188477485144532806004074486082654147856289836856331853871257463960415788829425492780331409303068391865645523036290011153777275351549210963202151919179479141054577193737857978992455277833004552494440422893558952218727221234160511886040926228495275703673203147443659876164023129774761462080061768826766776801433143080577772843053533356219013239896939141801720533167858093836555261536121064782889286733170319570362130653619056816757653994019207738787354309949427381165493696945088174440175344108530666849920239508458283778261416434238992355454962364800458232695032628925856974097864199352114274123458465216249523085422175169961812834148249435671931960584903301183649697299959478025284393799856030276867008225676401059839778313301034756635722971756418591961106676396617907902873988343605354523794275606261332000383912807121527252275844368121317715606778480649956616193735106627535067542299035624689437706116326896407204046869418666444234315179960274567246918328139624272164023116321582003037303821178524516131422829379190122091785615997790163356116560473835219337417097319429452306797105150198510367507105652906092363553535470633606610866958875277700445901861309016699469228601337095283493767445947627863342187176955645981307580857996318508916984357556051563963848286673117188165628548736023450891145531553856454490781970686501113264075000653804314829440118250271197403825877211746393734797951654100863867045427958592008433655941385961901490954393213182514515562524623177788522842238234385946950389011350109702957997323548231398630309266350872500998254322972268249042938897932758132345131076201258314269653060922559294114808896718985431660564413533366225033242870566172374399076877842205617461401394535333086277961632455565809341264408098098130846186984532001707512556532956077933245593930610975464003898209416496654974721005198691934177388185564030281595794020646175751793949919118059941497851174546541412880141652002651384244439411243666565703673917904551494185899945038745392622421026893193953361699736861088084253561895473982358187946005198121861900830963007173452543992353274010175189092014022533002595688683677906203069523754163845295708331240679016764070360827178516204009327469545914772935568609696394438702470714411733889618825409186810876159093472425710266928027649472449532922175787253559859161280059032119064021448642258274294899639245875924912405271791830738946123321705945187486463903910564822393370860937572134400435785340219660972596292454910135924173029619224339096080389963792028933147767211934063727862588556736892087400233825247687405875313843585145259761004180856369542387491778413477942408537636468197937726550171481048993482520703207486349644432745925192092508331952878112138710481627855583170623857719674728546008042858286492551327996298678350317078684848440083070490605169344182091630917164665390152161889464132372243996185729508092005431807776250748104566124360698816983805224375461454049205588481218252968640250805853978310619836380599594102943999811643233958882213078546718763555931741155523882089819442844591837483933977936888763478546817662209361300120450583694990852717325950130045735077586653570100114593503383750620414531200028332518305067401704279875963533031995075743121665626526543075856107298048492664636599962849660960517992552691800260563010139514643539312586891410170055089406452648529951167612386411052276038092493151870772164075404057403664184147791384787721939525044074217262834033531405561437587291823297684249822257629024452474132566502086941369849607373733395270795791969254944632695308030725318135462111205522200361711337571397113742189989295679327026931470093924425613436749520950444240933879947881013667951325250329491044693006177646811431263702324916671424039441149326936863862428887636907128925489374539932230717465764454241774812819165122368438000591599782244597988868367798975745012890025319266880208405535581926932724888689254991671163722398786609416829004390208795391281095657810045362823919026717970373903029140796388204789602606744074520895691233770324140360472030837859633779323238723245300650317389857738848444063068160329359791009199327393784154831978299963685564904956294644932981954897547003253963207792753893186812972660447744896188263582511727840397344391618996957671712598175609451604171316733032123048816877781404415300028845200474722632418989421694218926644939091038576301825959784251591542897386209075981307716417950638233260863486722722218898068416625418663237003941191518757120575337562654744816914437722877623856856436328587615897702224305605492487931055527283574309217725604176999876130706608521397363060791832263273599063690094060713063703994783278722061622410974817996973644551484469043703378142362221407447036092893466559234175421407122757874458759015113941692441969630559916403067744954891605087086519879412710358130340394106870958071287510413201427106971986812586527203170156713159902337092175437364369961685270838745530900272071922979368158784840698801966078170812432646064396443261912139312714165459673082192406876724157615188766956601359622027549003442638507582889883906991884931226412589551551741161985809686643338457257204333030313265051067089870645797479917468044927164093950847523937642704685699541277940840465864191798275298829143205544387068695790301223023049982376060029868084277363517009602210579033296389487583815857154156051929283637309500504494311213842887212140619162092192463107198430860817631513050120635146427483709921407381442061603867799524605327230285604240058278754019140820294993575971873185863371180866839175219393453478616881289221864391216707129387225926806460623766375019824128821928493787448502819213498838417660003951128684607123544231466862670168750455845329569922293770515166152460751253948091709259516202266831835467872244493030191850363906890206778251814843885572030459202092892010099112879528652151435913990334448516217997344327651483588352724972824503574492306450559937401129641640374915615238965209585113262467265458655376530540852331142316772207631433475600535569706774256269960289915871054981365124022869044506960303041183295552490123329488947837826423328263348236642007378432448930042992414217840016581730147195287283340434039080068964083830382205612905529476324456142924839253078922103105988712598125212334946155915339605815529905346945909195523263423037105947927708766227287564669811689771215242965164102889441300988421722501097349944709586450024725699084227948113142126816695655965462001560466580202509064273679456137651625215697976918606498831999475358795835511133803808694190348604658968644457919144736500984882157613378303011565725768442970394909494128396659143709418075273711071986296356913421597480264260478244580479534459932504416339222027683993935797139553912121712148198776933888422409238067655076451576600628831247912160903903942373224809467872428480030386596492955840620937365392294537370116041309549422650636734691799221389342917888329544714290980573678603212691569334832257925650629656175605696981790671760889892316292612535615116094837347028314801247143287118858238561631287833222951673608546464100059099013382956964429526043916674396313842022840551248795187345469942534652783479368481142798040988841195739697572152765819642426181884038856958213046146461650811877456757973643529795535586191909800218327394336045808644514443320340018252290068613439116980539144377243219120945741916920678398990250585315302772847996950785433227104608830868303174413643257173620402112736147816415772877491298276626942489083069440098618946163812702743628638046049065288107136634863504394823587237294841102714326133592225819400480524809357990994905490728962594357803459951237937072771537671096164178972132025706913767463359244458995149110530025099524347968858127311765032835381464935606575834413216153611314265462056881100736390598098146831619403432355883049378617684305096976608614923468380420516570167554782509114354133117094539581679380120989207001390851775087635146201973655598567617634302551608993760450928390936857766830364963719795656851219988567780219418643597447764495488134905617092969536282179993972955147517140234293237387218956531909113856678327778034256329130096034513492082606157366579626693833660587971492058272003242620685235962254170203892420639411807593188611734806668779357348412151883797001953023214848044420299137029258987094218648692254136940565947949170728639358672137986554468047682425729355219645843048496402076565086795727108379853313758479491850718691069799831645423779990295533789943665081589492597774401149607827665750995448413493953615811691877014877679537766073220755084978244632031626917983148946832477761939471904301700687315382047399240348457247565192645772864730205150501705219889302648181905738964254514206513011547159028077452219502364621001343777582881904010565667176411644552066282150302553341887348469939484639817346719276491194484932106790021237108612842684347529055260662032734991092864403383972845706723519173558474851189370232958265132931757968946985905376890005774498650311513286445918622328773089174003193250083220442265030119790751431902021658150775425502818484051493972572822937054439380601322789431359662682089537472992840017511252458270310489661549335196991134079213653505221601234515076314846221508497128186716482224478711939972233295931443425470984899323889451608066472838644764238965951756899087076504922393229891681918305146194235624385667521474610679662855336994275772457918333886876760963866934836423384588842159500460877422386707594229398710750311570951483568912063759667117004045304090255576372158566478845476469118887215811638273900230355089294762011809547694378397264609784293631301454002358376791350108949433217221296097987197982347076965154416514679214610674187079500336207151671453688126439820982742444700766037954507579284443678860686384108057267417720661041091274910195798218339923127403882343314837880230546914772253378851334547010936661850451439754683877519158625996123747120969532035175420731217322200818216779398358993729820289944851639200806165623411153352112561136343533030658540018434005997287179996829131889362627510781751846857433443263867912320127582333167887800556343595606990108538249877891100390033329650946874093540059501321501148299035465311108928940900252590713278362230132417801266795721647437278023731911974364919776103387033262474890362542777179100979747722587354370670292872780158007191961474277605923012320714019225273416103262750810646564326425983094242074339040105105403036155444439635357202907680787629078357781323173635762299926256844423464051903224340104932802502954588933292714324633583395172367177487481044241786137208887489004483789921296552550032016218986592477826594940765886691693803643871910206877457568210198857081827227796853518572388943550626064146558106974687283810711017557679380826752581182902100086522551559839408361422257182938653206445141213788840345657619537189803594751211946041096507898657812185118368554406494434178112605946676144719957708679107916841525509378308327272877246269735862222679114906443108483418487904568097605461149489437644796889506352640921507995436743461553609657957591750337355465459974325948661783881893366293273911761932098411445061649171395652648931093328412340100676108307672126238199663917753791101471370643469351216216138722266463663468654934566476486610359480147130050267766288964272641933785942550607523940866877723127318073601168790530025120130246806141277505437152323185499841740314258268681746439558173486285597346734012416823095946533608942895818736571895794794421993531669027229887776198973767365744128756996524662748910641474670540091671847098537012821744179465356047964038704053699255562082899003880504432878548076278899109285088809928613113829809828181769235929289599750648292419829937838621512487960049091183752613684453799116765239810664340826577712229443567649596366170094224895551263652571211233369708141117433473138900506623891384959266971067507691587749168744730399994720628748736176484513879280104394884711714923010145340164306283133328689552171717233360250879525718765751967679803855635490279813709120721151479365492047753491442075584035432076803806735070732589267353131934385246029153295370123604215052513183007458903652313367521196509230053414923552120245203883130226690593479891729096184586812819397258336498194370080013536663952925354785463384072978743881523429243110164168557307949317119022939256673171821351983246151319428286687560284911281815929865781382303319366110054583219728526034003074576896706249870348744146314890930713828635392368282196862226163487268988822183832013731933359880615453934741300205024124578486462455972771144845179822482184960713705987660413950342320944208552256502415300982392533721229235962065021054208027812236957278314608466125570470341762309831116421865890062751862866915573310699066370774795445689249628768021337240607428904092341013473699775485643548081351523826750344222941192986739895734096454429244900884546753996892410466846762897175731397465308279625000236117284995627204776625259316313283626205503221068341482628781468397508289895154237714263430391335635784287016382964411463139125603116488136520244932506752277001843603168532208979486707165448153324580484667242172542796147885667038421390907109144585930325605061605425022368925487340384381564383596895785038388563032831711389939393042418221138447872928936693400508235646633526510690048227873108447113230466444731091694154935636162372870048933153394488426968491034006199407669815048093173453296197827973145696442519847343523007372637243706211427258943788747344521651689086941497882224431797151173797319973893543741199440769372562549043946051354467245578316535381374043518166980682787895279379120263623063916574696870052330284734747920699309721762360870331169149595312127053948243279848197357297971419830752452899253945659249265468233517881821486995719144065723254638675318160029251625628894803135511052192497155602574014061076480289651471209042232561107767760528744458958896636691831630232738520848948205834544306352759575753051967938121522104607460631756582254100281029711201465957218982916548561584937157088358858357735728599812213942023133655047339056092365395338926947827270512407767156375989772739323409541946671899837627848446597754361895803552066207271670969771387302191153721950108113797507603839235790161288831924095134797204926270865443452180009362591659336474168044393131073952794763605447630541452793837696420097602110556056256984528320797395379880860061479588767243869443440829952986768554591840761786255633237195180753541016250053871052412845962361616420758164700300041604517101024111016724930043729381211175030917566471142471417534047100095307151857565713594367484491221697527235559088171416929880357470970015234169353365237133103921701916740565411856685945125335449678638510251434291189924104428847105524216964219955133268320943561550228252153272679734012009186558407141217284013440867509801540105886470521290350991435493921296516587115708270904836928039013260695859092594824372271018170270574914513229925561975705943444207234756118747098292680540142427079652885528550446642794141765887615639546491049812352692663113010797593699624391456907215217325786247305262371386893522217787697162008725076489598759523109822916861548608402669956910478696562734336526079397344482837763194611775241176229802016404458710358946103609019603832123365661841534298263323573240062325446795781064114822075199193212553914984465924002921160510868312629019151756801075083950555785284919694655006736284531083855756141975409983909086010700561997825475934188367849209616959934475788507476670991691198153931353000757113766946238006185886769162476932137258019606572354496408864789908929244338312527504940247890983619869557520991577014382385276873154307260020998374761607860163683860469801599767456963012863549292107132603544337456910220628111635989501586512068119461982851211233091689945600452306046852612570670793584930731288311460843785484819591268981607504952105157789952643271702567982241739361326363148054101377576898430342714742664909789416183837500634178038195048205230328382813010765281198120138479347992086491032877453702791039794673014947794100250861817245657972718861963572755781185865358500098588159980041951902242928044424175417056796073118860983400690729992532472844266628150618591141171194811923840012820098221064302363570798701472310101909817306090394988886552422696656310102256375993139321904800071976735891906557140048489636827875845626861757354040519649352491572533544533289314189048902549238595048821611012704990806308811009124058154314541763542356143015913570731498406226275955063477443604323367221956824602413857236436602398828642462257205785153524543709307566186656511864967488187564255520802737850179621871349533712168114120424261992071619389637720693284674982397078031349550522305428897240074954030636538013908067021862092428414659137048740983368202722055667224815996298334663201797299142220704928019081533470112123350552068604605623580277239790850812044335653102662793501955912653419160740046685453526185293151440899786972047155273120103699246723563357452483335510439460808763530041036721507149407885031221342961957567817068624934927697090512205858456644414040110832262002045059269192693009436645280852503524998448184076555518546599409983939918005261260330713211404539526245317964296002141774743391878273957630820856396435163984335678942022576034551613506528342645474779950057268164635811334945819695810637227899413376740189124156495695290831796603968940668276675876100838521386430028396341009423862718303240767568128365057723274239855158090429165496971525332058414948848316945080965209693078823517988951453184453019585513522646484757289394799408002178706171028962009628598096448111186749281350062861523073578369102138106807642570076113536807442814189101218023964118973619847811970492910133139139877266899834162315723757938546722438848910645918235956539077013235521802011265722888002913985292518704627048688349076299970806323899460472623405423205104055724063139313050019120093071641744644817165031545479791602843583824768484197120285049456001008848647133900289184861999454883849577218038761032255526607462256005509389572505707252565098544740714542597814042628922502068550006952254697568895395989105638884694063648323491851791020083076271808103317697084435631960800454087069127789013180711288691965013508607440354072100515794313095147158359082704710151255640519149628745276882918129577704724293160070551173687068815987159882156340795822760806142545789028557567761216438696208863620081151746674824003431557512738217639032514392336342412999647203616959839237981003666398245801006112424954358123461863894617424148781197733154553954175978666525269641128973706134358420296835990584169688575931242791067874325187214669355499696792473881294195112988710873143365757183810491981209474915687654707742008195629184995312382849807435959161871820838758629825340418529775278518323458153624854594726053211213717235124507287378152038486650143720152799070532239938096662658858133444900560001350286542955396238887850040526513661233686899191897037270548496481705699705157123701214464033079244709054994134897879748832475252158740888294031428242260352773265322662558011650619369398837731282331069558245104268079134978237544400251165325899896907707826730465649004959750791398619249258194052695551939151248589848107075566170649870314121876123205752590288797299163053425339753599576176479921914223680330290302596107636042225538373508736489657561060580891701964749007455118394512233533197216219152372063644757756093161655745498163067719484144796806235602908756346654165460723394758300599133371595313964132376834164939423331994747095479432624870500643277069702990201498960629716926695740016642850262311727538466588250441396812846192806006612069756338844914604527213356863008303085419792986099826382033026630562262131601268280821761554619883292685593122024990824843680166916217530403941584222205145393817165282795295204378373626930773164822044208394789514708620520209155692861349620158294091469093492547700430521989961141076968405499593054134642516831754605885957956192611684777477983840606227237018799731902373749958757102727038821195529583291028082816483670440120473787231051993938263517135875592865133405704235088736320375117015849410461392920492837120201954171538670149731825482837058517012336456080506310887071963449438750648337242140445066014873211441297953007537333593680184787023073549488157888686598343376151539860098149889997790792585248495258097355843218546979242144662437424620422172020082619222540694201287794065523281126942344634363377884285610476770517547444071994793650182713349079568815801921722962302558610819627256241399442366938473798272700870351337068962633649346826297102320224168929979772218111396137291156921383579474909794858496772555298178282486456987411747701847101572928947825428013526284743233121565828707365942288938482499516547974517639955183189747839983163229616611328413080083181511144456843275889578688599721389369398749652248026732764718621218020440034257692973820362647581142179150748891013226689854840866314763911126813914019634832011852700159601803763631562918698818002031788909495080437897481873161707058597880315030583503264046977312214418192282715479840774348168211677058900633076296526800108738828276123631578013415196407334515175390707292227680790521655680696528752553370673737863387688695401939189808984678082039602535042763302109259026501886171830861971645843810018786600326097453709913635189598411355283385217779894746547695373663102893617550241318681083904862000657017205270965615385862916007290271204703346212135790248312821139362813697297550410685747132616667591055081575365731147069417962522537203193113821426359042336151059278582681785621395002257899005640406371227252447038743877533436722178989724948838954577959840504494874279190716942687395442718588674685958094847636114776018395205796930223419847535459642250833767526173432907611038605844019625938980877970972360078216876813090429376059346767485049285202026888672668066790765955023030627089626132574674296040994454275688264283477459946448940603937976359409788342586385464481409845446375076017807296868907279053590781308761070649605292184829480889576890216581382743033649227296779375183891741273487830215051575971379289292618632861040656709249260237861781302757544247283851946677927684442377305331451028932604653232122007464456006477804663779665732881825573411749583056696798548019716990544189861175191489670866989194655044054228212237750070793637916698315767165205598326089688215324710133311777100904867290436643956176453030066114918247807892684197812560117972631471119761854117570782120901991140069580498647860725054487454153338432827878384433121806801407344576736594488005391875577501400219133445997653282379402735655669804898006408673998878245668920149821271993336355031734423851318401576637367270251384507082558543736838195125748191381555470637406390586589863755300705155064612283205858468040317686714730198569854623186642324403528575560759873175949014732252459773629109745603589746027900163115102751971792295971787304339903741866679276659181835411835422284443127144687137124465864857098588701388016745548184803203800699853343104801022994650649741326737654342385353695140934438440876780325072301874086416367496456678734411230342429863475807188038885245764385776341606625691419754660494027024655817996982662001997479136986877764580302784569651852597594460355133563454814726726394137605097571117339412293334983348986520492116368986157569027159337660095994092320505291882858297267063032811597932212157300404004408114073958987465955667857210201193632016649810523361940521791099423809649039094706432888556936198111801086799095938304361358353998553806699356301029543831526989576206437192465656226933682368120585961823579664077116695888575157771563604865126932676525078426211877904860592380417080098674682853652904680037806389586230426413396405983440415125397010334533629438176436551745581831657254519547955679794337464160437644971040020650715324490494474116023627437206456415764773197927947223183742879159282962683147408364636765413423158601914178002519932107212706007445384914366622319969025860059984890508223171492902952024442928086675573859713558894283279553691142161700658771371250365228804113282243960913864657978955033955207387335297507175331090580414884348167268130173080872967154447062387421619074885734849046447791397613901408876698068524674454373944055292754576893977304210202832233582623320398044511256240324925671966560361689692930681194767587010579349584742329898141480989540369347554803992132103107408617232165799670294627361026010616497228145197311693966705777239989782880020599099037994488729983798750380387933843130620554241340674128492938651546106048490179332357304507331216296590707928975481198753495014277614239621321966113914052942164913177435069773913327765421798925391436801804270788198274370789956461085416943619297330971391157610293698774031103377282400782481226710707280225866853225615481917290058677857549746013682167518530649556963007400945732472629623568673544798466721348236499501935268137009390826584134134969456475368302042461478670157185148053232763560345283586992572687873952171980822954735795511269337229563797439725066620014793106460569612761152997041596384334439770825502290934553164134939957734807384767531087157236269792585793357067311180778145089420161137277257979049009054488457671959887271709387055026409709465270161644669975398243511215013475410188518214181596753651740880886671426426320462919711401320195402033744181981371966039956215306044349446768078826986668216420559616702296197865122054220520125224863035605915252285160546983967716634153712076556773428487356048188881900543645885830112845259675720513845116182841235831103671778189392864080356417206733723010934004009095345847560460432984231019944744082399807333173303568498539222784168996018871789409206220050765617568202755755670460117558366601498022252432956868825332238323478536067150186109566985219705846759056984849028067558682448116093502327181192600208931251791633301603152669880729085988777153692255781289994700257690868518505806359362291390506974622587425840115644010953835848743580670514691074252043764705575402264972516574824154188814042309160346553962736819231639477968802764812653659171146205974178315646978026038622515963612988276270339442646765307286742274421436714225106502717874161915450007842288385172586269760692858995581932247377626456059881143520136301873242771428676438942925631136800705550419662858848418197636746652198840968549190207599559057950888697666018009426994597503459357223434494560508022572992861878240157255606154005508995961439489412305207802688131514127565552637282184410660100752244378029325662231969648745895553237285123422882619309912839308940324138672357883074557851303446266090750195590678999839636339926152138921001631824227848385126456302184972389274306676701436070505664109640194790752800368813326971580307790443903686724775595246817625602179895730498715146795095059466616202634329111622890697871182675670038956851881369914248628311612335931535879201375275511967393657698954758744759374213282686400264170453947410651765993654762699898038218459149460951225587826170487132256825524681883292110822409178322892386195772621099903132192036962899989293521898288202294304972339897688754125756578561777666687471185192897119684154084214431556502113139404748348137340015694614909482757938197215223937499258374624412182654440710588926350145834895543787171821243392561502325388865525895309495750704880539388363747479681348843979712340132113275114866205578731708798331129773213832131616585268745305055646143385057660231688283875889187039058182638449904157007851418912400599945964446476378635517125397550949142237072428139184015082406114698555381264729725673301641376589098666903844543461291948601601934066627294513622053239488300638960161751625984738772475520708475436218337134246041919137315240809055896035618946977207040861022813434584835267927428153575666047111336088433870334442615880363922509536461341812078489581764571981827917063436751461448771050864536889162453265127661203306320646916239497743485826680697691852353982739161567696029269543600602183810808594139302462856695050800735144345030192714556141234090477182102887005921431986266781850289571478860494205652913467160111382852106388286961923902560925099520881714127802862011325077673895990256368376551776137937370602719623875131873547226619045466929785595143797556953857074748768246878542660861953338361429591485274097735785285017779719751749083997308557151928572124136182527959884020568526665867182971048781037980424316584671019949359325711150041961163420776256961679606363939313711764888585846748292252870913176923148970228151862037092662917853853619320228339844893006125376148623811251129611205001576230631525604682742365489845595392401371619119021957857314995177252100489573209372524957412796817664748506950431008603343607397854884892846366762337843298063498512560279310198160832239382073483992668859581934039198510653674780320256106259409278568168377057463152568411142770907882010018505216780762663126078865145928914678772577096378895755299814916859009336441923542843480373118629534446332727028595350391445425973645164738393283973507619308792228876251863277385360466993630245676329494615459091800564080530029087047757867057778334011438570364311787439939017235201986295654610739840146283262930183624774835139098633069502298715350073770144016620137706984446563761446663754054176729188606071049616856800741728725161383588109782865925636416891996263098699091049209358611202236200463908586061025620564888432160972602672215517040947122242828566591641525210700978186209964631639242933608600258578585556411021961275336980416897143904821992958999980505210105017038495467924323194546087020063278721990026280860222155170343984269584601074612575258223667299339366509593271513010013397743831947895095587945688950739718000171506442935136351964659579195754283976109099583264854129372100368589403610053885489984927003056035703661477890081160005678490066609063205874578269468681111725016090957688569762987929922301077273884589350901666492079180824615950980018807127715694754095118617482746154908107946255074021312531892585990678920294162893191374712840223789376845732480954244234961776776779069425719775846405918508370057953606173390377927185159170482603713839999564287844494734150583996543091960946755652914611763034456232759150177898274745236551999779198253532727079621883122861422454198590355372832229364817418120731479010175633752788769208252495854460779294591579829677550385783931033901131246834751359392679949387523445454141686790027957484165199229413258550941394546599054405743036970412844279255575486710419335640566567839630012962435821760974430486996198721320656209084410848626918756790613063361258246934089244205586030762784240933524803324316510326526611561639521849754283980880006252942431646071413543619876400203449164286564383455914616111482286452435007064447937224680212158819793323436907231577138672045528298401410004360048825170676790139551259213395156195744241195165481993534813656715448689129805640331271267609001933566098569420532141144003025974653058827450761104267758006710831994939329742611996716928484243743855479294408041203013492851189973750898220551122840889731442375011539879299745572574252082288171548742550786088209898422839801359539753170450005743472908222545589437384319742498230049972482805649702151122206396889215557111179042210404472204148997876973965899033571722821193593292753648230074742967003947532571810595799584455676042966227661408633516184436670707652567036563388726204061561150905800636012025604607807947757429063190376943777909066638084079268742868108443734987787922514310406696833302702622250292532448244552457186506153552237391906822767320337150442010059521172662573816040219121737094506431500355267227865266487351682420992853171257197829657874805566537470862025508867368692253106715593422677340916465403616467531812198421694201832200800740042344987713787613493992639103691180306811274026823285851127503555707408982518216204236674442996301222881614152608510523736333994527985714863985498717357198332395861502365180063115661719376887368078419765754057459485941592021368556429446517921552718534747103720249628584300035730138677517701509476205264881729318165253256172247493770564311588208383643018018518036771279383169542669226163030984504200410509628196244384213830565537103965978246496169302322783620908857526132343860424228167433053475038014675266589982250915130902248163691322419672405733244615354001786443690615338797566198273013590293935474456864083008229280856719979387375704476987127102847219022692873706560734213830622548221932281068354516190310316336439050410788533901119122014542043208308878830972995668208929237980040645141552463586933138216189287286160263678459814153783265391804054391603209875318137501019017802499569068946765414888442759833661089032758768399316083122412778681625100114771003358108800313804059882680444653681667219644142243948212159174299583327164775289881357403472685233100038772557683149850930058717562236570424066072949786269032074963723345376276896789335085669462297801449540903597162221175400566770951209733765792785799010528048396282544631466915610228027385518194271967656447123780114432515279829366758433461882756581546203497338102298078148342593184143010994143760578661776687645782419316321299725888617053604876435193487540198385266414709562778928434010961928382093954360614393537034477699580447767608057430794958116814123627414392638418216126754584189977809596053953703264067881599220057196915297745070280691585129795620875793775244092725359747294134516175165118630637393448306082451674298064092256021058617083270403422073554059839487155531774552675984797737430791918715396855986117895028983098433442249407955503960833616315590654452203264641777097347041212162987765434606504298362141245672601234952385711192991818195317275281400942294890314059308439807684933817105428250818262314672838112373630874824028509339774583312898681735021110403780427031096223617166737596345623041637109655799068214354251195070650263087922198696859099216661957963684323225427675079178757761912466414252069003948003063643066369888249907162735207589604944938552457945695021696586579993887283552758749447372644585473346819466825940124820568160614703022689693888513174793675848150353470968045443074137078645276770056253906110439136240250978708700495581929120659110663566510475829475415435821338140744907540160782538201709863449206349218795191998824494673721597162880084230380133776340435669925159512233447898503295391734384321768003848892598471771723173929484873082100993929782970565056507554137891373683043974652225793130379465585370952865672358877367956359855085796645599481540468564917252276263689901609536228295183198035365917653044863677983103254764679142055573551356962431711001991980543490707385600699576302771383771074028304447700205277343057306959002280221054064146169572815644015981213560629353265379334846482125780093952743560098989644437918696003480913327770917276436636401911862367951344231775700488503896097434932029018242243303179870925701404406736829179637121614869772161216506101790730219987736178145966436228409531716166193586770622550922054370523664719938108037453021815658608593455806932100180669372777323246670104455510967177762794020178974746190594017099825044741348838340907001287864345508800498958956982950633749948463002774078545265129660512762562891550622019849214100970032578185464476646828832860919068173975345244045677699903303200187896842418927378335530364405165935415748963662288305398971552036087820616671821262761552539656741790574649344229080498207222296611419810270519478218894165303466980235806169646598127754134502320109258407654547742372518703279945935859848581938767038703787146043107259796971036932123245374911894484948184062550111318627128683487411578970963036531985464137276213584921591658801262959066682780455785138131457735466080510860146931972112629228690562427067361631960129439191702059459422687833838441239650597389165350196144031836363876998967269735860422278283933966211499237573282363073848801998996723983168050251664723737712113596744022187353314084022361522960652253588608483285540160791987293560896497117340543761601273050123888103343510173489329466384200584732371486801961999681398244078274070199716083167482278064892828967645283097013362853807712745559726249090710155153041169330350970737571476508426371130822284476295269543972604819602683120188066529201070582990262277498151158289212825672712168795513260288534989262552689780569812084777755758945483179080390973989997954861357796100003443810161004196839345929172236482635855637350782886074263585203549262902703844752351561202801946317978093983393930335114307741779349411126795463019361005939661151413205106213701520448943969208126466973194911183423940859926152322343120261673978057140767262675188267506686529453113178048360012521699447889376284819419522593569589834252351408894400859920899585824000723557823067247621184364714573876942621481505947537433427140640687669251591463754655568744687312051487928601648652722933725376092818380015318048961511747583165097532049013708804511752616293030209889571026076555813245435905544097503896191562142025032705550712428783828319815119075926599485862570983418030786014603609180711452171638274205827195735909311505219735647149457278763130736762912550795246608091662836202928853040356593650219031637790602747402952056640790946878327173589334267577832978515538362868156995049515367165617465322606439659137222178563872452627445031541273064493375590837342854239286811921075920388500762279153452659797762426135200449562024041163946447963417172001656287736688938371802796035178485130395696432549567504539276778787269308220335028390704966111057133486805717371284089882045350912489052411681987112996520307907546138695152262440774593076175630942709659748769434546382086951855591402481423879455686542686542887797553053127873053330418286943705324115857825668702486131099571755369914562892417986551567991275434728363417318017865184550763977037179845984134533311816513869980940345847974502579546367830140709807321867351326093916573839645199979151518316934154825517181884766880987646068389732386872409497090213451350319184196741947521904321072617803283777197281126415016743795347251168073700252233818164702659925418612765016213492801111144720446327982402626112564370966651585845234964882009305174114182550720798777250277782430788599076999904079173089135800397826402438618927462695945771757637099460356568236648522708186063842477417498506028558807133421423694643126059000057917709294563941670066669958187380608480614104709603134841584562655726948751584403483020279201882427909281079444282649311462539324942652041814594142746320150757629320469100466370694821657565787320058851002162071344144153166660444602229819182464659224115711183659330370893690708446059626299374735121209595476673303137979654844149798079751309530149579598751745066365588626015854209740067221017822243298588804760636850567053919701516909642220914529988111617735882019730558304119266148220083339850935015884481271566361350732374141827307984681800608800084726137926338480680796604090577512087238258481569114171726401929989454690722420804832221503721708378060176317490203249504737412507030340968161856238967025519308361763929603652108096920486072442972622246316394043139052169862945547321065695087817993548902070301456523295430466382963233898830986561444947129969148515157697756630465967219988052273717456210273736676446862299719973891447711932216972943642328869947132811739506204708010119238996657826919672393294186842900667860203700304299710738897212916593607250061171920373958735157431844061138296588921028623948614826303481610060498515971035415776030029905993939259296830377656553499279027631853064403905522644544800052131555277986977464665704922877151682242532862994824974739825161439316673692770029285820525051537177159468752118669160726006794793171828740806246582102928976202985963082382524688505670056565913866614838626508689138180432573822318141236060654490300155107692292244485255081081623755942743793395802465257601664777748440103351583375410679870620595766834132144230724252036271444051824134915786186405062389800148844855687719117931118809461943858092683837374279798718840732206681929075903546397304544626470149142103552074328674699935778645627902795683673644959192730592362441976033944081831741878857178700372714111604866223847169965001272922184810760909841530598684967453985481431621486161814669230011273803725988262309603922359573391759841723257184753513185895367185600632946240867229658949999322872950734480596785098047277217249574641803797307032778217008874123887195794916016487823771275102684641784445971813683959791692570519287752615951991788669166590416426176155778480024327495855502583039574681722548842192138644019291164149158076896524815374183994965894032945567352129107736308666408723740438397008774009043567250370072430402668986586699033270295150267573339501292623076027457265221561276030943768054976130578880275213762494194599639991581896857921644936857656250103368187984122205635792378671032196430916949517898221109987421721408667843358495027842542692144325912947124477729268737755459331679070763010082486346918634264031418681410148724165440906137198772852038424344036151837107152044618816502065797564860261577488651983650211159661326012351003235966097095113860360472861676107591459674017693992157985967281409058791781454281669288923195331167020937093907459184997244073017413644041798057521140373950342670548550487271221869125713065372410276850075443923501785887523817073100051996359293275301742352439961158457631302937159715967393414497826701912329398231170521609870452967920309916002219469216233000335864853562666157575415164681899909140109036333714812752083007809792975595906181049147863818559035356500854656685362798319436698138939586240923554082360173606825579792174260635129647903671965747933870374747171137888726398694567912288717512156040035943706576012284420794331310460193287059221174851452281678083510811497780602662952013184173479652172639954023134692386560071195827847707681036996209455255062361594710584572503199551693702471775856612964478571967151462669316114234831533790483412581664803649870724001278609798198813495669929838452614228343723411150560683574879073788227028599091020153340981714951468464077989976619291757150563904921679480275444493168309227517932616673897095811677116908315068462841634290208788460325144574584302567955326847735552200404757979551215274936594866591499121630452851873156546757618753063882600779624992057748730564392070034543040800450326493226639087350075890220196462665362087212630830465193223485908686171899947579662018765638057774552662182525321404540022268718601830857616909891526108966779765625892605599989537778819680419486320334315396735613929524797592637877630336937520769253192229384531124338136364708224946737320292611840223330607920674019281535269859622419822064444273241783475573678647085128812451522493590224202327999493050900455771091657813341743199830476874389414060931801054752969421307470933752630887557903531888227257118919954327047586046941490593232979811407615478488971096228176512601854008788931041789863890565524426869728950092013816417694461660868499002873211522972841431164577759732729948849409195253034182238753834251441632910417096092240715365986771213237736930825399223052109202740772102766882989408853278634121893059623695132005759437808203957229745818380303957110109675972161474382489068490256145762108247270130254782226555186270720358481562923969632889654019697170615795079093091993600508254172014850232613645233971480819718464432243914648651400968098005888550481561260115662474864778985103572273631967778507397599838247572901765173036590366885388740264312842146152985097179127739617832295450229058061100061417228671047494335260047617950128012036562260381381222153701040306659182287751939595200081122891329431251438906663402500689488516347227378946303752621307110238441984102914075034664626581635539306164959785514415094834960810558942604909338354978521834431910502262816281714411471658680253436384749361006462713811588335499391814791479258242279386479120798295297362875677001531798146477081172334393192855089157254121881037931939358917332287286796727603153791484083256243147259041266693744819601720544865866862328638980881068159517956991758547182553965162865859811464784087707166740654716072706675576539412825143307877572479285354600251196217821130581463367107027389698489617299125013289372793053228349062972696740987045295483298090678901983854370854521615633595090553063279075737678625064760034835536765400670351420191010990738554949509557064384824418921804433910165700623932119445754945777950913550818681154815401032784122276259418620806314518021730758841707140888486301055177599282957213095614348806811337707561693680372508746843088670820196523815620200377666388508214561914798004866342555537131303714076186943624556840633114515321416061356687855766427489689723643146411205388004668295614883918845585048437859717239969921296230433339717156350716188934590280621623641953115105218845742558144125012302439800097508345148235265197767447246568603987972240343541789979059255519775409611487790233085012149980341381568115442447327381574369471484275214572664537147846380267567960258240002175547745818571731115453991631719711212649051187023183620945198738911752425341769440537894686326593551314307002684251532264562773810224455609465294990836480991552699288448298553090951487755568439469311580037936704412172530383347952447806273282957081774409458890351020998237367733666343829391453212384732415448180281037174452562558437874869873402674543625938970179005778345163844919768600070996858221020575605694490056303909785092793034218561777825858305961444129589385378734533931037401472846555290483756700241812974228182619724648095846844709918246876150053381487805880260825224017362387335719807554509939157772688010434047578097440143260892897540282500823440156086732129837773353881528136130864682468046794058015344790033057462193806758646754290584364297893642955825417333179275908748922455097737992499539215771197999416183280877920038723877569491670951506562668440915738066507698871957548258542381138111644581213530570757175545706898292078399635862092839208038338200295610507385050989972334117393545726831217336988668261652929104984676717285597476267053171330548158080204496252272079655387506125162647560168217869696778192632227318638533044758722073961153386048007629040164898781775931506591989648797407809451784233533594801287510142581397051169540785846585861941432569862217907253427981097118360871708744635206866533894409966305759908936411391801592682933446245860608989264335264217453846530907515199519335853002560807019453585712149990506929368697088592225686314647477285372553028224899100998368064425764914074142482428271531635525982856045323770739177450095572795291964207970637136303978716692183231985726950160094513380366943575208828194407694348549999369947434579256025051256061748389028679186766988458124697103805103595517535043165874598713292390016370617780268484257636610138595188541604167610960994825468375316592390462066161101127146804274197448186638547509499218393198981155154091919844945237972743112729130969737735213545783943534436880107958216189619677378847916272264371689020493866421056627326332692859044353945886096714394534983049525478878762877588608440442805543285117130260114258689467225067275035673625300650535100180406919964872087435414707736319527346010759000523129092591425021020509802867581069287867678460390297236717653286075676611628587831471633526482477333791991332593079843294771656786990066450608428238152296926872589495345461902354791385081362010315470672067528931494937658897058592669025664454291615738944786203318655202633065227687064303805819124932633076622400994710241631611235616044311261931759187168380468444995260935183491132587620414781289928338140576221687221929241666841812192509725058764722196869060326656451070790049224311772574717926582169067931186894413330256729956187576589712179003869547762490877561818882035655330705647014250840658991067323105179375242189733794017384784993277347507456900503465145100540007788510197914829683808637109061772663956598819229222148317928231839024514080801333720373502286038742023839267855542987980534854932251882858463233462603157577439472635722058806730765137894435441050339583478289715311067081734978697786741280739861825192590086326791257656758283017396172473119223516172097996686713801413757827469793560837464206213456906500242995658606469476180098093244757229161942553484973949296191960356352663221965963930375218594210807515075639282017812214982938003671840151771329700099677112471872916762770906157907794519330077403520808616443340515715013491714813131270394452991785579080157554832072678342966138384864581506983518391883212499127221432954307320124790246430897707846311535878777153418354397646756127778117909334403870013587652358219614501747877417021104431985841448986804614081960814712809090529250924140320978840613324550878059014904187729514193880116909978884527124355047873779445623982661833424860846622380429810710330207205886556843305476487285474088206926178434480367105824897041653099436944044725443372437808751004422332107039460855288443492607411337687516828880376185289659628318931872946784445882606263727645037074407135608230742318648511142397224420182865514785483587594972547626043874272321741932588839709277104057996827286384600198398534626896281424424903091895214052379157301281133067986963109549878016380170929565872954008723596539406792620198521243498269390439396146535141255056585712002493132541866252230074206765111811650844657728122776887712010862228404798718947699668733026514941916608041313452766631994715933878002726211498040598486725317228679989201054472602241164070535572889166362088984672022521460733067021689613443957772229581869400426270879527670103135402682972222706699056644870444036827765770528452621639978043683620786939274739344767069984916130146700234963908280822783533353277701434248729537480902446662170101119041972437176855365226862784662334457544016265376266471509086036779915901482529401321424676577598634735000603209759378549409681906255815361711553883726987890909009353237576859246409297669051286764715475950996472043380257016239151400661995171033955979900986721149198698201957735192734481151659399893087718013421750085107594174856382082115975284367278357454804168685220692472773442297124274272514294783428228939221076049075033685305392917899098118589956712993865511919289205793923568567009449412489780217379452070292653487427520371936753878667876278181438548915544890519287787769069541957085612758715775066895041169899504661137818532799049643882267440729409810723403259987818866800690650035637448978583083127287639330619408808048416295711849993902332880798087875328231316518280975413106604311170460350267141830961015723608733526715969754729055237388141304161103857421541093314863772010753358533875932596905114462136565472942426345794274624333405507858491583088761320631563978816857923475545720795437931477684873988469084838447584871452233255770923834304546544481593246310867908186087042949897226885937297443650301973875595710409189266432459201177505376006564576110576270796836426993462089260199550601879740777917917206068077099560671699361416421610128778377371818849682538168696901961964986541342335264990291122328235371900426541825123204165947959686716624751088831817992997373021373589073411692151344537066414179091565138962368555679534818405253987092141450053958546948800816244269928276957012291403474429011648127804478794936526407523567803415244906615197152662347938853426509783303742331949402251250484378141471871551978363457321968131234902551988913032038208333928032968876789544261221637404947519401688344980275737691128682798003671093743735799782077815048761527829013490541042550308676017115489725750583301602918531791962506510201089128035566958968462392863812760855141263094057998119230559171859986370242364663027939315742532265811531979674808248306578605292313559396151817797026678895295402408168172976606664231839848129449007482716576657816937954947160562541743527793449368498247841314683461188881562531716442141254405310327723295117034455536722227025761113850302087773233934984310080351350822101213122078733365755584437928210463479653325257021006406665536298580198400182982441393972109296285513222791704313005531127701056082039555074497325322466542313586087668762539400168993659001833983844444437583530971000191262561095521506050352945836684282733657939690375417202160401107980824129554506063869068985580014407501834475409395166244972997973710484699740839100164695046070600691183500780564667850428177388800558146716146047844453176719612687797947556478793058829417674456698810317600745678854041787693324782675039730039334456327711604995588869745044254985644351538027652052753477055422883860520186782012374043089100309058852172515551381930302610610191947201881984433506212751740765071829951435884057880658485303150133745062406081459440565439852463277150671061508262761476700358362046557186671804489007277331901982379859493021129807592856289938614720273173026168362082280971187577038022119864073934707064786228209308118164781288137865012185631042000391741185353041476281218069922604290719298348809311613792580634365905499482179439745376315289212221167787819064847925453138597076048401492668121631773570251124708244112270670711607663033607185222916181109715539854878417190453738115953312109240829950338006486073893127182843557582750820474590838840797544899391766433989431109339750380763249498601316838800787703427666532043118101674046311674817107342293650943330562163458317497712411859668071665067248537005639547706507780119917803188254651009946174993889385585820169347131574131357402756433032743486015051598171076314975477713239352335830596147735377312201964245924900496040905619042294953833399521292448027897168313600022999160975055578757594291063092226362480025151223796501175589123832679028336728371638712928890584562850337586416382793969770596120657279356820456270466421455176858656277462242695611288139661189494893074966327660117818508135678163466702638341982260730130368096821145827100912015836945420506241696914502890854568281987765960150622788380718241817996881812330922050508485696537767830534093206068948498556155082897409722004734769278644408556920196993631233727808485184833992024533112010617629939761565846510316463984768487142036048708456989206541863173909091776669545707071528625992909348012796525023029258932155340131692923472872453113803875962962551953172219610725226197160490402739832665031238359503611653256934021507258491395227686552561020459713913591360658470122822701197951829425100725855295698085898842933167475671447227456562621221118588825692095709171915234051489868462081807227010986657640815390608059909113983896910678307024651108737857931023027988405908286546075828102213513179564393134548180396605064298678132925299869079318266087475311920898316714673571390590327220765801384884751247737027225984658022044331891262892013928247497468392723059138139359442751692011201657456846987470769479812830839602991458076141819429622257393405555570212657331869731128698902164173661009126574955340844191506988135938089272001568235728377322036464065061417038964157302790030469680873716258426115653956051915532788107959592027440833340225352248261754877156371179223716680767095442317888852434000286706724447253528524445126880053141497691016022326051094428095837463760375100251046220411975078134969939948896839787256944309939273282323529933621042269046101421691799927802001239454097338550677618966160947819937177404059042017788873510957020942915911661179850760451736487580049535328756835205608417633836491752877261309398791521787270238610133069753479234105187045838026085348765645401601326318721509544961827960685091704170477576065969959034274059457799053241939662474621402699449585557161511017765719615235092265997462887068238641560290913790945738762425947802853006444307336898272515653644449492411767111811122272405097721701028329969436146273180224357362853559842652829000364844555956702372625403552959391686492642378611017989949084057888746137339345589264604734260473773686592181126571577672402009592250784660795426578963140465567569918707664721932446979047688070994298658488369237558294980043294910184046123687007499246067110426731177361416786519159825962273514290151254203968777708895339818739681332094910468434231223924277212504000262625587049809720543134023905509381470651697411521732501602628416288993226909027688184863110547319211969353461779614499637617769791672758851253012715764205450055403281310145439034339178118833414919861196662957996165550280123170293919663835835041304640088489150699070759860521362319634324824357948080848762244628600055903235774082129149828626604136961234721410142855976660091935392262018167058649660631884992694845927706610010390356187194460805068158012186734452918529208369448066958477976610510924902109358001172112149231803247695063455889162077500573089638617462716642331067691249172160598223877791929011042535879861606574164661506045563254783833270835446242078493027105765431911592766774747128744094676920263317395679194179996956343748893034608826309197421360722836147933587464898432562041293834188584341144153000107293058282264455748169265189180532825466248751501464795937964861951409836205504681300472861744176638059632469639223391117552455492680292299616257576169733662655381571824927871977164069869359827176605321032043323496328007368453414907711515901056621061921120411524074184237484769424109134904609771576326453585581961698455550227873724461438430001214371890453116281786574229825019365621656352026655820709948193737115560717722059079149125590930439555518522947143054947535010356741436736976136339960763553955703699338875020834889635195257823184193362290370995056451263486405689742819392218803020562462691022163286161517161051595502912225462916528094809009925085292917471513407068482027853670394084177785300920893810070523633913376884348462761115647164876017800248964044106133223136792762287933228424904320331356234295434626885965012904703297227713225433123257366789891874658836630150924898230549138987191392454397636856475220214212363974348906543965294327931992808618861677257234699193719680777845978574587640165917039511734145239945233101130545624773732167318114857008053267706527648570325030794045992145029954929785990355778577232603323287321736545006380084689454603525004749087378010578115544416227049830623912932518326192948048707178010348416202687716649910443569165329669873330442190956014168363796320481175001176026678530691620179593123790164623083730491456955030611223692593231878350011697007945171848092668473640976587216219838863238511206596724664368429421282445065189884129775749340425692058591935663360430813249017501845369518529350398770143625043255573036943251843131291758660144443704562569353202171055657219366790322362791533211101963662900127503110466691677228723707851809687593852666029782900372528173659788594993594105153969405199276769237186041729766682501837166325880852143513462958990163951814199462048043477558549130913202204968610252333803357300097552989027113042732672595983266251527661274673683392875373028716623773780715682098224805343603942442970480576286875420440928091115208950866293493631966067998492755598896207094320636713269863016379322221182062979686630934369293682584566296141475795859415552037399262895412396682838833143412648339115110608994559243382200948578146235656780773044703038052849095194716051085810409840364844044827044885514630498042729428561565755565755287668594848957400759160032503790398890980839090331311885525262000661094344852838734378475683186757551641403138933096427444908936958153959795279888800173554367583253056178061655131380631317905746825356922291254131891576483743060768875002689423535790174181120949230318106942479986680380195209524574856425081797313112008670951871094247848902082271673082879982311677962233380748214084402314716842460077139298273504622005514925656143805372619329578124768367090920707624500097458834772594098844110330592344441728199195446039465759202774926232436891408291484550142380784220085602064642838661191139534715282058380899082276168962776019236572607321301918282774596698932844445709157766996400332890850547162188484032563046866959883092895362806195083410920137743552322612210022530470630963021018614900223619483994486548337303205174815333376610695814982357285085309426014182643608386144017071480161417796544505165512771735134238942701947933031113987261414596563284167429282213692148971422836253040552102702808610103219545401802082142678810688370212538625442758176995806866128741343135969167383997064039819953020694799810666544312170605603362582222142658600509534926732464992857179294750072860019823310730002532072536131784880660330419634592818993388670924341046937363785448620124774043157278666771418441109908835269044607056980040475709831704744637603394986385553326869189730899813671911560479000848741130841425921335719303733601948155331524471918921570003273166690271103469284790945891900382513745130482118753004261180589614286975420363411938152777403741113469267782121164302361824405151655877924421975513737148466742815253903231449310502975887450534891757720409720249765833076347969587701401179219014763629497178183411547527678975087114954055721783196345239649134530624466272854508312019831707702738180548016225997691773504288731793381220027021285516880044851565571125537392269123360403245684465736005658016689835480567882424928159065871341944059487843402943119366997050444984497172695146265848935992703910802948770385283571535290747874006840804452189700990945114564817553853552915291074128364038793427702283543872411165275275069527116274332731838526062778499954245526983339406522841340033410546807544241439427051732026118179215371930545067302817063176412479511427086199660393717076571400341565805118075297422230310853319181297283237944428002331878347020389492956429320020724932004760935135675737678393202977291404919032858985319973479533303914410326698710242294221954563199560929290019686379420342328980904800233519500441503884425404884821834259789237646345229103077913470263417246609901462721366258462545203231823245167017112691347011891112060463792645296750980776762508823126593081102052047100310196851379403038271521042347861155881412689879369175144111033198155911265244961412609291299021318101486367389309738546763473143093562766017833900609712282513563603017420975828168273683244182043109532080179396687614064297238732987619975940932833792653636584289894105845764927631061871454271975130190918534917053878431364492466193703904199957300164105537065642840386988994227601417410968146775397276759887124646589661623888393950525124647121075025625780865537596007629087140583486408509418184287524151793914061862361448361103691477510804073212548278576175485404913186654435409410874251090036010965432335930448187294115546276842533322047398707201927838046902337086883961364965957704666357615584150718715212464224373051932223402655202694572022416973603228288096569412889780149614996981263528974844551151047581446136194491555655448771426528042555722835896138194083372171194473780728201295291161193817978039639061959420133495501709807345907398781722608112175072314701827707648876137004469387475742001753908455422519106372450076828851758534239546042152495632676876836930020741386136546485591097113258584305318942572979223747348374011628947357536273846671384622428992628572918632778217671090610938385100234603989478414499229321211386578978342004409365496173645795619428309515717117345659154260138520636079055938299618357118247637028269023469567082610074669886994751826379922923095255164045842517865303375850295507623994999414849273154494843939914905010457888683741381562225795547216170556125427450713120453298637596626939334078437760902222115173706171798160988690317553880520135657271706668725680680699657599431509363753056151006659811058556136572102514416011753003715990318524085865769677919007437254788688482384457759196526189448536767567142151649298805126547013258710738714508665254554444242917368269144737111986084217446352969167693298199826362117793092039250857205844066152879560557174082295397542726883538578152949208140842978149352798947599766559740436587283285547581140150982364321143727307173667979157810892698175590161579709497701711611435793088001409400260058916282122872878792572311593059859457814760546669319827287955307607849605732602162920744986745524930431739770428113006863866080019806412317683224434429721948142209607755901375247619474014767308086094364639809712037873754013210071289689068486658804484808947653751198153179403683651596909996054403558648318271430410072915040818097602920553367036876868684135003747985403351454013672463155594212098023113166935210694453133041563200280178234749146787937822047077624823638109155826956913688198007089067275942553929076412296907742424804105791736973754775114795930127789342156784873478604811887236782916144292579387069735794687282721130145237445113387645648255498419204532535334333908800205129656160880666985735548804803740470735701215163081498388649743737932423268609191780793717208949375133154438903080128032992228590658504461604460131914362978953131836638852468613518682958385866529634249832421437934189093504948946459020772078257559377778148537934558256750258772695344497025071205321168461754455191724521211249415551977068800135458896297340236135095841426287151158310159537301512979310867771114038636131771277598828817812741762481028210723650653840092963485622664292641333645363244249409897170423337887824155473692221265469058544245730169110568215176717834623154885814551357735129973606440509213521292367011871026746596992738767940183302479399416481971700316557263914835134683888751849016097941888668951625723755908262783612616520547859211895150048348969467136929432764234089305991842700853168803776803334551289530112256369335690276403518616884260115702081379906889783911280743101248038254237924439463433705877504182643791699149840787542697089741064997235823716528403459081825941181822993853900815444605660097470693175912816183702752947374714994571995776524837537776083653386576277457702970138363316861709933715657621432015051360911321552984268413142102145739522205279138528075465203944224928350431253900062667444663685896065982514610998541067018439455317896712054456503824511435621788591585307275719925053951797624603016712604963048703567829148202051973882950073705664874488788248469270544415718055473364963346990425369818728097562242350670357446077240267386873359022976645919815489528406775862026261016278342682233227129788887914194762433835726552489065502700215245990465892630355582766412798978043775699342375768031386063535640108086930838196808257080115827599147533780108408164443628701898410171433557170476360050728350521354939952688564400816192645927867768333500747384105069756022698043246457379181141873142211692396885737220209632401180267153548049694934789296724201484992682694693351947972881532633145633148366286585601785284048220895059497947815176729975049823015486122554319863552341574417304311296114248455479398810898199681226582281867250428770105100189287768512594460210887073658171251556769170784003070819248951609882219985168318516729287703843341261627562584928493299129658373387718704847161835053738406364501647933772587609240185315517841033160609891690196320346929303194760533543235005639619785689399245207114990741488411558856330049212543218878928868655383976762031815323363468430422878566505643923612519883742456480127299706801177655748846241292781862011200234954148069091397291082697415907335999913359730785241132391014780438817087964957129693336356786648781484603268233480934993789985749592357353635819237385335150506408651542636483099985902324948421253840746846829260947353530033593507891180984130239939410342214066298312110457468363267260039426616211910816981046555529280067430990015316855090672090730853377553837821972538126994352125132826945594998451599569509499680436810561574648048583024407051075641685748159428975281714049000972472887643865391483840028969864360714692644798571968099998316306877164265162278724388477413340124459301338128698289780405599491624655577312170595779871660324689288072328189508528501644468574370118194823433930650325588375899601503452015760801567681401601931306585552247449205600510410355891645048096509280695942377687326496949785697265052561750748758411176023210321177253545818844338973317535925990109934970432033550276737620732535703669442952741773907444732959525717011941070560052602739639676025585262726474963151374942069991399299412747025563548746194166406665389886249777634820557808226622175613015343905703153375257592699210676909466773603653288849933502057422321108580748307453284757428543711479833596908949963104227705217808515637856118730117811991815882894201149424442125307051691468385689878074982327282233364825396010897956844987109508170437710237874857785813582448451067432522672927391432454818294304451101876056272350595177047439403946426334631065227034341994872924575738321713038721245790804710367296304470661708174414296844108348858868733468448081128189771212181144640536890027583114556049876921090971874864457769300096092622116970963398264843967433579828232069915744408829352819997798926440414247891907117624938734373042032556747188586406902595668210825749933013080131858118291586330978126286651634123652620857533158993763583491594472998124673071476653746853373011893117672871626935341181207008632223527492806532152850074876478641967725313889709679961182507591813548947331431797009995719445388601006363216541897871659328956945243334515940278229275861169873390353215026302524829657053743688766128459718356938429089293883492930250106191800121289695634723273357332443292310596130983818587086380281996137892332283096424134935081682009516341789441533733782558354738385160552000252256707277864710403595221544791466544432112201019554759887136221780969170424252560815596138179101636276094576677823673551137499936343775183144934149742040788765359327452422055757852961698201613542368480715648822036259569275527290916502101498486359257542779306103372861281822098178229308700425360532187119358329291788576108125452357012058104166390858548547900492709741976400700235921669380645213982827504999684470261258323572793620782936466142619230475037794215097938700744893539280812157825230716678642214585669301537184314351069206635993346662128512561329239962325930787543288785758468846453018327385220783929863333431054185657639276782464284159442081219098653604285261761080241607748384695859312585151824816476772583221615536258619838614336986542638620821469836106086094976198767049064802804244726776372881198812864248727890694701476119685386613561280907762219901503863507264380843809357514354653532191547875566407365164972076052049998268196505659577930550647295347279743657488653549458346698293960273480451377817935637383007392109201376636765731650035102980170620209716817374543190216510210734557516810393951977286847443337021036391629627215628947134643857803706667433161841940633854715364583607881173971238817949148772587288490390947505761840653321036145796039216999613552077392115927335840351188899445425340343897094728427573716590576449973667544670631481895762040088355733560662424956683876330154474309315800093395255758160483068788951766844702025119208244816390970415468104809570688052880064040949325092631159483184229618654871207715861510792224248538996529584463742962296961842984945199296450809707016272635342637506406197977294445884008459820495586276274224434960489435529850700051520215835549933750576198027448214565852870198388140744113921865412845706615994204188157660439434270358833867298729444323435214353444744632593036791753194315461862431758502798753851360345757884939005559715491994171565188294592554733694933579203362029806431349920157170521011743374436496227259644819142052865897733797200184814380143963856471178602118314343763247021949488292654692935305802628589418370256098603844248356416049343335548757398860690189346552095925397312641416052066120084625809789929092064273577638654124145234644426308553627787870315097090854964473176859282603801440382051278373960604267011872326043780092610517777876776992346028491884924182780402706007388957843028809949443186968597618866444611852466807631769421030610640130825051092632320479041720080655476177172258675289794924222419105461038415065791292918287803683759238029113141637373945515730310838433599472522617881888681447725859045490628206247241698617177474922158669712751459552850842632935168906605187213860102315483820229244002223676513249317925015588461253545797115568756488020739320697396267079457873977421535713488101845130694182634155095083477715686184363605553400267000749612947386998534311564835293030701097231656253868335986004040374075584254588494653987813180425552575957163949487555116976430411420614772438611458173697107709198011348371513508786102313022096303396352757035953297555852048194566091537297484039820373450172984714273198297658582115456051632874973998655044726006684797058815102831672206691925995055340700950988304305141143271690643098403271389665861089339656172126870830452527519422204036737733546407264598373159502282864006989807138833605970367573568600439837892884160926424541445902480535247324870725008338289162289686987005755981945264201047912183723475522029768791605520670897559973378714737152709459440726870276972746221359555168316201452759220187683561816423432612691201742655285135356141905712630882052530535347927278971539658219719909056536985178630521659373324273839678647090030612662034822442065569906168012953613103129326375580005996670838667656196638937119371744614332167461550851353250876368875103581678431803955592217116493349705407338832577282856773767489707561571850443231136775804986571283974441499649366921690363879255653590579699822765935371751135160830332448555234292306076215148384734607254726173245975282959984279756903336535353095219972273122350407347068263343087058075576645904727740131475009751382843280536446595812446376348862552094440295887813757736868687671135741395305822732640203710758838501119047550750126533017967020394747184527072675874215905977989108348349857165105665239980071191557011320780112572532835409075648424221657092835015130798710216816327429949881760137071625126329734660228817911049412020062938312144914226641837681961980751454759121924094140535628235066991826674297526566260790733798329724928676998814415441003808292507451921288815411298955576308544500889626894801147806848697718421036769019275366410321992640617373276294172911471558315194779154722541182813851106602949172825122724646206569218375141706239532097209792648440615552612661522727550205310088387384900743228683057990447085722444700379066563496384297120242529712825515527263437366210604006749138205082595730440033522070136982109513260462661332554061944791265067593297703189522420514308454364454426840141271704304593040443693595742922551740157402604956543123052351160129580409761941687439052378164217940765522929053676418712181410740021895942354480265079729428750449707841875775103020685655125527878415010263944456136657078148458308914724489094651770536729160223159184358622559591111191046057324353091625900412346232378532123004629633691659376573288316688642005119903397833244551707997742505955672308960233919769217061282864701186015071578360077763137776900912389729375612667714288538770186601383420788596330076970702132117559074964180936158427459641916166222443412337405917662011859638467849047139271414574104943413528517725864953188880331198913687504166959225452357400213499655765903615058227527622479376878197693614264900905036509388035205316029736912613530368389101781272730150218848258069804595014313757986186197171975861422745846893160391011854739557674331569261420799529182883963133795206773139753951906813251284633612418013050787704008400231874457892836540090899439852496984622728617637316667875136119707453168105981576975399040569267852681982003130753205996492035276193922048905852062200028954620168916801406072189484985553897167879644416655849267088783200635622601012874840432349550077430017021821915862329271510750846149680293993531083348010315030093839953684617301515285535104570439044957993166153559721066385491008113811349261753775845106416166957038697765731907461012523486881458948388366526544761426758931339480050008999791489245857466116645137127239704424578495929334636672111814221610667688342409698552020058587452587280527867118931606069343214426198549418039882178340095300397644426752684978301431356392452669283759710603066457453524559170731932903385482347184089204806321932832083894542547241559817585027579751201437354775078556225970649069712185110286136381223509054774839467587697703890003375038119117281924577342102139527308207025516833476803350053523645762633257837126789785286630810543094051140445555369214799296042089018128396994400719794946564821535573497692829085764908432700272284756837904252654985668453003712245933318941117340555786547094625388334483337793397439472415935108797743605301335405205091195947696913938533146592788565456193214474448166132820975512781844789429335007697808627799654922745185612961573577095410873341167933479872795246437469637490993276352686685776883150884785220987775007115352742132580118902440616812136260940082853783922270490032030699019026223406268150021924278018245093569131916101954310764638199768926295948783507697605096409490643882613967413344624895344873257132236633618271573093963863187240270863011175039600185189991104161378579481356763935767852283904363939218852081695191460839567287096956051931989649546319721747783245751538078319579747082108527500715467490910842851349753048486625342579701631922590848539660609907379072367547123984928965605228076726995010210706936755521658506648849570511039082518650285930918574894638018550765992241391783314987296917483116276539586006814318228829001285671867037376634274858357601891868989264794950946402953470391873993129532796441387957158604844552344518460454054460826434409547636775833813182233592905429606749311150789045116702023075484373607418868908582099901396103997799758890424694453327224256024398966034718039565077935243188558472231930338737574960603712984270327639439643534541199974876922786285494429637015469982573609122905897732774541188441044730691581507084006715982714458613455584473683505475029585860293003106925708426474416011621183859685717213562407041067072556972904293990346443515365098868402029596180015521587207928155564331405276810368281621719730741819248929975090691076342255605855116803651952998996701641911441777213812895371601199849624977167039672338626069656385282267175648463665039237276097385379173937008745129057212127325975938542911127195959149508772008579745168964628999017053232870805023526098235369039859129474335301616286408092653121093604294064536265433536947071042887064134660760394277028213238261493131305612429344527550664801810580025956820169102687260705408406952121595577755339760731428178960435825852864049099155855099111385079534339824452854295584207745396433143820586902434229309562847504362180989381076987398476826758137869339257188347198404997215827642482830596638219785610938392653068391364615885812584722306769595060334395800593024627107389293104249819100104456822009666782341172976472106714992847793770883682236890593738918968070130231050518325220031538843157870006269181036978886605247080114478844026496388448395284478042738214586801024986954752920659069742075022039993550092081917896662266055680833955257024382348887890901004807006414996289140552470381637580268997605714026568501482650368317257832949102662044005996632739764951431888566442399257573986764872958512259227561135550021310439512764355460129400415081928998428272567447538071564806557458060775139302461821847641621603575599527192213961738994524142199645713833459995953505036426035873901608068080466346060063974353823886961311828984091742484008386831532223366818682986709126098865423904447051035126601080764952094187905353180241514210793806624450847673222914961236801815895117814304706188193767440886997983484802649545487202351621594864804239034713516172202438496135348967290738149379294748467944468779788794758516946308876330324578163553797424699868528224186822243388651280721187106030966386744971444864538151830788961606125791904889121001517543336125362218302075562795827190291274374445270384619675986147100600383120221526060967897381444284095362785460692101945996825131130325772323499309569619329404624419125023637253636728213296387476622947101620222172585666737550332260445061324969975876016544459994894783102067067056128892685220300490456396716054930384740591625969292842744157790085115425895436906480893359833303007142972290274662527328990224156625286810159013422449018253064846660491859012992864572211210006664628536349038909891295971758971092556901123935184174000629627236520495468522585368717483679080562871959733729632467736436879492905650260487988557530149790269831731554332501240465480977840182221870143287157814709267471877975162634139358180836868882302448276736046841126948069634421511690549030980313310352660429653455698432744835159416001631820910259132688936107858809708969009120194260256658703703107727784462023280854747611623560245468095407728429554925788805988098747295769332011301726096474526031731115724702612082195233771494538748685589579428999176137499503693045564907485666701905264318526390250538455151032979996783760961998449250689687924878202788998254414778622602062241183558701133350747662025854295365572164062928874181711397932275908058376023014973200913220429200685028464880582373410246028660627538467252817929627972157922744530519475779579194701786551717005730358429763057320768890763697333404220533368260257777090350922578811386031832252865191651284068134820093873100290419639638082321527150606795265434476971337011788907194765241192982015383764893009837317330350979291407482139354501004211552388077940128532775884337832585050107145965664100528934333414355700614350307689406862706781021844279437775647544605507677402473486522262831170569510054003007030409683227007251953919599685333500118498195587255652825496554833770841908049046295401040530662888190501676404435365333072931696196079923375133818993834848985045206055543842602995032428644740721768944829713880905730957095776365244961967445729716468946871113265021296147725102102664467317778546493278457124084862161372103690084142456600733526894092934343285177447077456363085600211269108215199236029965930824323703346986632499969941273130359732476146719565693127037091294445548639478867930215608502059779406859813847023509923791051220471532907197618581098137440669443058486139756607019533355730263033591099389004367759953138054162120124695528745852728890006977486509988684248827882880136581679099892020849524937888952226169307029296509363184785358418524179071353217075094594541714146706917636507784715681347623179392570433786170043229863978617767796200070340876926625386830440838275126258313703119526896556125588225100672965413392867836338823388301097142535613442496997213616628064527003272450157427705945320881390811403887403508790404072088601863619252066869524290640612982424914997997402336658948138982103569235505989656292139061632828111770089235375058026393497451756566888516946817096149867948353741507249939312218089754596010386293969732098889774404056071800596397151800560061955773530309263787376699069437253667333371329525044844667386380791557722694581780518942301126344795220081670732039001296863931689283520754144855086080298445846532594659247706811895335989995860118986150221219121165479490167490741471056610245147078303881229330419053299147011894219583052282562306901085673392467789854052069736886610806810471183925487762492726488068905706934026298143091366184860869623458114935888068702738508055729398723372724212479178228490760872378930383617854091326486281787089212365831539719041838978650048227213729730104298703136301294298199796830475529026312218724571492973248521813258072755219440768454897831167401944157349500067350453825440922019582793065777503684921244481704594657673217395835958074817953244154781989607936631573811656906565438896953877388234503428416453492599764436282013215014548672772082102260537264082367594609777463277173855610310205339822860323268983137198688312279232993618067539059310701595316359590256865623207253481694356781262445461068229816760210109447293168628214553889141146042460947461650293588187464735399236381929020886645624138314244176245864132398324562834798513618805318618518389552806629576288041595847610671679081817181165234430883888730762912695683960388196983092503338388498672071195049765480146597865895316234721701470508151443829824065921237428074168411669176724873052169115636322059531551357964805903527963022119747476829626032875023211824126584952738061379168396764432274481300801963649358499946517641104271191502236439164990650272483110262489284732124188289642796037678855735411124146947423499793656372613816475900011556427057407840479505106170475722159319393204421791165465103083189708279483091498031429933865800694947195860874726752402815518932050557902779223667751572190655323917481159825445074726677825054157071646168563996431033480825447084464974854833846360166718611770608248904024724908635683747392242459532456360239022916152175360269277497344284743697977473912240929609826714515927054367434960598159279303024900358115728072093720686328437442933769044799429704578024345825805768213503753368580273466883716710976415051179627205491709773195806173221873181218825862663186540861991932864915121318905802223972823326803008631763700590285354869089627971346391857119075562681186590029098934206286902050967075090780667449220400716466053859064646786645226654386490046204765779622855149571995805480914733979196307950668967185146615895409942828566534777833988808505021737183336013347060575827473272631181198776583338665291309851884288247978278852990925754181215891204452228881308760795332882172859816613454931746055277031995376684111053836478485588013844252017985057582256090627542433961843720676315589084054585318021688828800761464496114237986477921941324528877557328079972478381122814554156877383338205002053628590817517120671714053876146388511429773946334753643029416071607018586947700240397390346060857813684281670551342452031362670263815828207548788917853553212388878415006775060869433860632115162694019414606565600343041436258820694439857773145532869475172303067793548964511217985528057092667726077736898032105974365934256325622241504546528036673650272964604788105922921570490276193543736936432287261556042878125369608492072897372903447875210350647302180765366738783538796579121560417550138964199561847858763640522247275367206465736165447376559306195408133385179838990968832783497772114262700368539817938029779847555012142619621156360876015566318828310217086485327643648120732799671872574871221514276950670891373169664615553365897209984784091942124191769071527057365756989808312590238214703373523050562085987004728081055246894618405788100365685202555541302379866255938124790475123720106114480836986386517133319868178629844929974646481281031664681511020184575143449416520154333156627382867286568994420309997854641236327279894875779017930170660975067917598490523732230246239083419586161096142672274009834936453674230203385754742620970393323642647083429972115441048297426073427159028527374215527275332793774717135149948718730714808248882020998443584062735269525039697668117046461515676663402728222321051448055313291013322260784726050972129343280474489326468407662806045034036966528680647463721395412885097900901527045019449458092704512936381325558139294050105614271896846296062362961794396729461650481223078715148209942315143571880433463393429509846048483496979555954279193097018929072789854858951212936192316198775874465914551177880875454446005820387936918463905899282978210762065928625811836073889759022524587737702293423112946386536106905217066049863106677530309561128546524654488216941524275759905414511380976149324171260199246197765993379952693548660495024209233536286242652450368694333023147474301124759325728914427500166502492065163682483553964525536941128488269690799042180859150482217336590739476966898689272267064573374605284397745910408911272165889611106211919759632197859858780084380103753543659591245008020504719711123169095492911701467522487965057510514985596174066319673738064509374314116665853198356974244686239281230491636905679619150628596410496114136494698842093335024630361174692114030374080538919126019704924178465757094309692184398507705424975045120176466842509509116734488175410646962168849468947096425654846173457390737985280310589339245326320639889644897155667028147216287901947002990723744081364006992348642235599605403027711764972251262680883921886535996103403480547335796854465945098595088029309258569513328637133655485804041522569566582421328070836725890359917303638336493459469801177107767544183732431033634445367158285145001038681245817190037607858921719613257250571491624004438029914717234744755220848107489241297442132068672354301375442208242677074898464983869920262427395704104119976590829464868965591222992369368347552024707976358349253637675925890404274353106469917095547946292148011388699122595102920974916016321100238718986000050379800579149897681519207907692546957114203164848480510410283306950109596477770405436237580199024450437702032538454699269018315117443899313288359402076303037242891596644953718950762408025843690625406404641125051167300000547767817258820487092370412220118327256555479712217657393233499456431420684042340424046557788345829012731252547989329228418577790827130043509965853417975448881125302383422041299267524299939266063922996419206270589258552831150470614202715512099960998343648779009106059766779293508228622096589748479521751490147820997380899475635019910021360961437457145433962071427547904266241142117350353227573377578725486675794616779637891990433183785254235513207950382206032067072610417923422664126589651797800516852357747319426135600071927516465294757335476756084366825551300944481248969726438616980025830310776430242328727201340956382037359196826960652122277687385556935574534992531329983913973062627348265119877588034619477324300964552305040042137021780971051411924943401255016370673224550453735527544358764201722962055897946256144156584543027045303824121294611687162891389281127421744958854060483602277366471053150795782729747436502689389203540506293875163711622285542919438788475162698662706328678954412300651914374123514033158725674463210924629228994086449869051000323176734065433090968078152349171794257531521905507044847003807961293757150266691938566871316764097537978104421897210777967824847989467581672982858346893910822535946113141985888546142340339829433476642265203779111454545656368644312705317322657240667247991377700245868293068603920155616288538709363829112444972411170218515096713695316583610641801988877615851027867746112519079350762233172540816274662143439219910355562611882866540198089370082662046936291652155131221773416772731806844923440610691272298026008580584525994569249313663669671746736745090486671741935905147591402226197355201334556451540895155993762399305558061503608407138868910051007947110968580784545729618116444328285400411901274379027353676675143576099270337914531162767116848720219804295737918840516696357638801298949282322481948161570860612478661212050800821001482200212152608091351060277559473474425568988993373449317542066512563051645317798354394471090773573058516411688365922679211473613598784697539113964646228278772913490914830373792608461916904046863360636280245239376175586148500143655376555941060555898119177455357303807305654084824855947139705728255332130208031530904455147732345551170026163825852237221608503861217684276058859508432843980004766226571524197297260131825178220655690766196905480380207378956144032521032418515497065835064326646170364303263147163139141772292000526089199459927861077063983948702965179329675210037214864375314029592894200934099927566879819423120490800815687543825670387209970602272885713599613908199675134614366055788677767123478396583780069693639229889525304941627300075218564564269336479778035090539358031151696722059672933620459807214821463131878276168940743906138267648708910427346580814598623105195653870369254192967953200559171559640570037756054006962395879295450201976945658235993332517088929206790039227830177204558957410889606055107946629027421616753582112548680764269896493432932070326775614515990166961571211098392469395957046039300246585016358865595047647456195464495911743728405974045580795307265950794683850423077927165920411066050840044468056384149287587813794530026313068685165390440804969083063026917535356436198792710083909907960537314520298430947733612478773858748512713360572721512131236841354884886972421004667229544140954540345520653877981707072285267466794404989542195005280896885256505139073165589876716531217467524999513969248551504246026026528871656096140488427147572214531528291769525392368543871777051383219237632947226072198093424936629888105815235677229607703505187453064100091882582101317639496868813193355900328779170039544147894351925219588971256154527517137689379938633886010218932134255765198341910571820714607380506711689193590703767035029719375050793765484723701223869169680813418236359638219567648586195583346954187945275360620624770640657468416108432573047724088255931200057349952556017499226443237130323285893908398888717430226219407295658644720632388218478063063093365566915359748605637576851795421838167075349099953057486917540294424896638264788810243784736499052752452642686371105977112924772617518660237114423548204581145685708168350193723648378414626966802829301233888443595583862158754143619263765681174952718167399755523134862424686296982907940930977417869185617117783225260402987548570960438297743904147962158656720204877207617271958545870068164870657736629235304725387867645606014203435581717452564207372932458242733782976721709884181884879959167984126539959447676603337273044759116360634913859650940017450434020911382785491968867040951034315392223787280662733054895520643992807404380898266082189584004028611121217346322483046591512713634775489465416452882283447829405547451221496443708743769241774144015676638744014900980160075176240438434701214385935198151335722399313710337636489258740347412837016397184318962958004354715287271934734066629574117830036546131464646870865784230765433645935157731131345302890931736672181719589842731729616872256719802098344237711356463778431623990633074208893829041791704521271290550740933850492648497211825794588749384134666339990385321444511456119984519161089050645659888733518425991814260886775168134328034066783474017625905591401981778289553033102307910608943757571035377441755764893600170449306683397842312586588451607568661487384812161471613163355752117593355203246020617822105225223838573993855964374852145105463461811597697365990827967869472625817912360503055095344247594897102765322399253877163635265430941393940915043707263298815580579696227265278387456214811583540562849320032533552951949576262019894540054560898366810180655722684681372184219123453128402039127120945228149038347703686123431624560736505217569935514445123128208405261619346732747813319767004766257431352729271272633492496530985608923918208344257173679183690490732117315424262283410623983819828704837486281935987601380656454816680070072608473184424138529525348438727199988738756828638568877695331957391750950618873476635010121372527853579136554866034741796719916466874653702832457040542267936964060331124928741120354187579142934118960214051122790913794197625341084354472915535475082731470337145273836588047812628831247115713742078361808499743361366398908353943058940174884387326028275544040364139963869542174286968127961200684870968746884046494670116045069777750082062622844704127771977385244634741617092134393884200098953982284814716726636520267771578322139543706233104136360089576701150824184661007958275550720228487329097710935686694010373073539951240682655825606880533251802856391848367035946712002861566591037694852466071062539767617803308292039064764902137155066208271749185431107102458842315440662344100533860234936837851536208373810710185357196279524499392890574554127865293900498518531715643891399669857425933219849615141307863153799281343554409133554210358650629124691405621662557772097282818694380707253308931111922260962162745506603353076421944993497661387883323197408336923099074020157007791873093701748261287772090043641513372226874927092729245104317845848436069421529895642105127861147569808371563282925109986425425083617663994392695181348227357646195549564446877797616964095564283103877460831339502066582005430734372596584077763753008834988424676763704927951523590853009727933359954883984288443376360221386733891113328496139620051711808608088383848846872477852926897526027777226843052108044578736077777098386523913344672768325616696951986328342449593049700105511459610262076121704274677492993652245502505314619047275923493999912401375002374890577574182757991013985692115497272773545689451188793935163381444272756223653568718529736677347901960091576780516157831866443203008006530156501234936211837329609264504266822911166435686970275830765542559572558850738657773575133666209509318003783273870380170823184816231160130035122954116862970876734501101153668038037128676767291120383038065531409670671917705532259915813862439860217786961553504205415719322222036220603186930706051395574329255675935821476274633307461006998040922116124250143894370951211763504888307352018150964484253701190545001644245891304730873871989145823661726559805115895258626323099300931726081717936871615123115669040055574781175183099179269111366164931005831962774029800291021982487150489568079614256555446180299499154572919505429423074311194670234645553540954402063533635859416394092462241122332414514718064327369867733713911842202308004368673157311362679574235698641084478943458633841471356276020461482150534456873461140633931198266864451068024738268788917539439183729109949913689130584624362969090801409946625983623269464819747186268238162536304408812031384999585770508546940919314526555749649477192108000124487494427042114281934774033375261306090421730696994339799786207725602380603898307780510369639664677162225840967152881586639370873308772786761092202751296874208787485265710240618422420674453065865388150724526617435855205237419584814539014774061546482603439581067117784140654004685737451414914448458647988437464508222752570842932554018617855500521404260421381932031115223625042458640680624045712218932996561101012029040319971057466540873855487494766260179817816516440860501817075977392250597469551912216989165579905884527835553489521603809682011046558860617488604726001750890682273814094361324321106642732509930944397487225522465079340213552594967644457742445332385515913636761398829590703863375012632140894990540199066640855503761677798103980566505420984077376191597293921231535765278578280803026474535053388694428348950760081374597933824030895383792923215909398617355310829691193432704110657855556376444595186236554163099874888123738113444165077891581528134042402963741520797904829986673835272959489982422366406377800929658696765484551683566752191338563560612987488977358180065424303336162126165699785878900905335799420958741224051690635377297432279765028928264075475979490825286905899400698348375857006280113300234355385763647564667774993321711595372375762322387143477474400017618893334271342308945436019458636954858463523125014143142118046331553860952244096628041464427405923414485519783357686317823082974475379479544077237612782115636535832167516760637179374524565465170015680155787828906928419205577277453520869318794144193145015502323897911089308209973437171045473426669426408397714614209580359194813217445991250180650121226746317754524338433451502416381675706817086122344819174428897614103523079247884801677545699117250593018382693637671355210704748746548833653298290351945159976205850402222206358334449657859787221751132294716047101916926350058629734784373998570347082590583934540316476001253192760007972576423982542068611379508972778221670593834998715777908474375618061762752329446673780691199525399949272451986682892828670685407744587358632893939374955022028457975060552790876048499036450719588253762756922389070401396843631251994089086559108056765092276641959774738895320723613797682957664076382746795592577453925214448019290351492596245413689602566205501830080388918136129585810590948235610990999767975904569987220898779932370978470487001307075628704511439987788006995521446812337205038627828211227319930771798898800493536327225995670322976652651383950936757227344828729779546531159371514290213002339067828214843152536034588006184688414439390520042741059112957968127931100343795852367015660886054533038862153005232338595185209207145517666723227329598827992718361140402404693486505525195189623353748477747953649189157171359004754472983450340449112890840976264557311423309039707974534466900459982762508820470073399591396919590692266822331891792335696644813544457156229640677626063724570745636472908519776485045781626396166043408850829759656634960823422062036642035906279239460618744804205187896478052903427416272951531080473430150934010474443087337147408799197482933883948544346644793411001682407776952600559964023991689846580404878144427648134050111517963468165484771832669416873739032368221146271078337110811537470051123342456251517912937040545565344833795288047357440993402548305786366412532216141176570354038598112646265151322711441825289318356772966419691888873996312578255640360732443537535578066622976478575648846775000758647053636772947411976515033209522093493838749028106497364163582407739525514974550894753437914325807218845568846094943658891351166320417165811527771524476804958410029709069567278822862794311279747924474520432420730534398936094675994089067392398628955287324052176392219059778530214211160083083980731883705477260815521025843844068346561944931675556420491932045701223307855699028310229374697603594950551056256902678755344235299317544833750541890931708543819687340011929544963339328813201123727059009455833810941731494840461985745097959341018210750867248150840996938054874614837568441168232456478478601655915532339943164249949270197759969485465316679586961582954235686541266128689842513044882274014475434423019911841831220586383230361982841192659196666603435654253317729403289088669785266077289855782773394187172230660761695200480801666777030770838684749610280905616829379922703848586723112506526513496210532604252046636145235188847124272032566965101396289589936922911355043676634447424336033387134946300443157558102103145677945560922003531017159514736366565273553680108281207915804037135118271947930139059554975334491098491359852033496011352102248866110734037369779214370732274813812900003416377517073640943306810600995986238377323158979012743508042779781821879593765938686342260447558877665219466049096785478103805157044408051115473609143879575702053385214491500456108375311997337823621670429381791622216248462009750524349738366569694924957117817098793928604809309546943734780983100728353639687727362991316779942253097829763291947070032025698183452039595872054655085128569358390430389391062709122105702252092706886676999793082555063365429826274316877994139941782554383138834188042173453500860112619009226634290462861971780312660448238285926668474412904078056193992902226314235226844872807660315888413032766645939053617035062814392942526066499173315592364365940689492225724556180508086240377782865616893434021128721544496856360456987430219773532913603354333795145849883882766153552088066462665011834904427453022265663286177822570801484134722136386904298279713752449199414889168396240316474296181398292732944844013041402734004194217482134107574051922851529615142287428200720224739938216884946077987290469077081161118474637361281570307405962095734586815484294643619904253038416021218347816433517784762618297161979705314392430103783242485150301560308111512809251041992177462434370998632617380759123280602817727837845677811888991028056987953173544096283747656438701058041865316760021202241418269921976617476710366290709787720861388543989201669499573350704617330895359568610469344995186117058533656001477311149650201540000385986691631518622028247354692458770164920654119053794498561262874508363593287517183709149368807233282963485976224081925964727130006861979703255240672062280258909622358176428948691521967300969627208062734569451511795379694505491960152450526612025344875753651984639912027749772221956144518898655280577908108059656478053190408146636092472765655513473920582511202094827012729552016301248536596513481325310946390748618134258150742801506274525111488773916070121074323815380205791425071545823037365761658632937340357958272410603522478286064525017976826942737007106570666165718706271435362242701568830255514784874695314105238449507669722183071725006740670327671199246326976805117674682074082915669868055033660378180908100612109282448438405413800704162118995260588195759011969533497214954022519566768784265689970857689988660319393651864525200427663276253592668937567518926761712090685579752825722287858133432412529383452972495423760875661913143183458546473199557936417064582721102810914757986516909562696174563232349711084179008957826593740599393728350835715644832707856445196070174161385047789949452123191800903310684550202450365194444609637655973279611433384172683896065360516848800653491218558084902847182344770418476786128913940653414257853816622657606628433948810532097753684439617264394174887358054281243441988923836970089437642953932883355541436600719046513841176138409039947904338009022008966426145113798547954381582070266611862523738916643130056710644442519709540061339385971571063856414930631466384807190299368145320672331554082305665041160075673394475310149936837489444931559258075030465165900020964427933805370485484896598726122608759582590351690504568714751601917761461671770822446254251657015563906652135472999828781593142286237585106868275259247174986064159895349830613769583431587851548662065434552077757571522351323132812204670348441070425391020268546038546882068659174731697378466018526385448072462234210816096345768004768832922470913359189908842600255934594478282782782974443701640128087127040919414501758971179769288495663174350973503314718273835186309908021033559577921987532736682002511210214192386440586563026841184135904450563779365016473369171301329004255817705735786711250701997502762883921944283014380853520798097379895295644001296615796280534125481034067462564984490760085529386307456677013179057175621920945389027641187044400400759154890244981733144525845716007822547196430129593880024794538421707421018277729994406932997825781288411511401067030590455297031003721763371092641965316418321048802389320662156017346752234178977754384743844377276933783920863363518000066141552606554266820132869837173256771786026552296828938672158524027895923781523116194971720674590853180204328814567559662512629232700406976739526367287180467715194451802919454358495919602844494952796458181108272040349026987187540038855033352231176344924400796461131968189786344794448862305495394770851861723784251280790385062491507616714498749282341351180468483024607208465188297554388540611542638656819933609686215049618051571781307968953383733400136502761653632220171685599273210894806621958027675192539678903591439601344528789065449245837043152560911417919176549786056222198017302041654179090574586336358813648435759755744058154562284973667248361712630341677478522829360004357753182532068829223656026145853105625285450181158858654036238963709293635333705127576247142275702105795130723975329076134068581638897585424694182053747014880109093095867009411194812220516596879393990254493475646040146679179573218043578073153974975960913614421903472024477227599854470808388799130345204119351241597740106441546600670105328147703838833011361248451411889947766913829742463056908212269181529484509236337641218993316626950785921764132658141309191463191931511107890269368435385235902495985906977877474800120017520411240993579071438054279441953513151407107936830134976580347704736723345131397218127263151974496577351317876394609790857933478757738631118292060335688434566005030784311645875862645995484225788253103761225238612127874639588524149793196696217149589632456959559371907943694020539526933968156027935347785627014726275632991572434372780917629003475789839269313924351738124509065652008080043748511679202971777229323283211708284748286129245170376302972591318471634357650719420297311769368694824842097541414768084271162000692393471229926100742394735956088114494738966052811604478236839505805026384285940127064327587483485258943484064240519618483191352526442090076905488701853761708607081376235215054338732916569489118368777059085513573560628153499388460529824280401256996106315898611723441174686678396290002316788094849189996252562071710277697951738109694033861174518463019047678696190712389104653335705830226627106218619593529358598770259334013161168736527789066638107947545162782100199250869658950515363775421022654617217764486261836884358365095486129745230988373860744997572552524262219482071371151885905147700607910194728603766491409179608589005569186489687806666541760931251534509967052996800812797190481098027154392701763673166705951126081372922437861428302332292406018447689387150229670691513853609569179636283435576321087314229482976404140960960210586256986872813912138773672763718697330292362427938207743864313680536897145822879856906578281671475636765321805400907184176009896337450844104438138978992553625224005806949646647325318462656446486244208508116666051308098979680641186876814533554923335346263115324645914073319975573691683139987173443152829308006177798619270455630366094516068021046295549397271856410252844444494510713454145787891426851917618816915280124627586721941334050401250274923534867011443333697234676402119476847505040091569665765175203052845962714782099603465444762376084466119497618846628817431681070670729889905640616502750001982872153630457892477261467097386112202485128825954029118845561943987345755409970869807351942615498085753675034589126019552654673262943150053198604792247203228738275096060790710856071350485010639205596780795633396777255251670555185391925727936488542828620021982495848283206122862089490724991556633784419375010469828557064618345046338314966414088743803197064186277503567571769359246413493478954810533091148340513483887843334200908168759671647454944637662601709951511681963049553734172016811480717593479245052171727917947241041903467518481990487615667414816835601422679284977336177633751471833826187291763954003543958202508791886504001689038306922613735224380922887054228514984286188126981021025769467682793402713352425206075699668506360557532970837978424771659947874527262273201897954455011970279776682953060935145464575238669194639364850950353577202761408217527320351048988167609109527107234503196656680659997081776532442377535649854325895992159787331948193361462988063537024930054212802309723148682370861265878682763655579273287323299519375862029599231344196767854246935374191184220911639027154199249472860881041756891319650068802767050957456659316925508563341682623952854688053841561671498412183926097520938329958366885909900846400332570659062297478491759052792343864802267254176867625577521236291389970655147320892864085119296899328591380389934902997795333136165245206560631627614042478831868864488550110132438245512173909828914643511467500598493134059806129469302190662841582457545394510141744658073888275712060037545855081479747771095928307429363670241556747810097658447426798419550485616151128719721067028725104754087876518704959341142953519777723099413472455672450304841639025556350854422621973675215007179126142149234663456087716785669854249661042058706110934967773157604526686392913736011558558958686220339938771319377871289648198266255017830518407925770140282393788757201163297096405928798855898172681192060956174184000806336815805954041895389835190684867928467941133409428882391174127119252487303990004969894816538268066218193187901857446558969859212216427160073849164631698949555773346737349318235657655847453106547100060324846768760166898314174984972375812961513508262891837636196703358620643928858554695053735604189945355039336347571537160104170879825011678633637624605202708291949856889243040874112400879192188282312738355318791596921950753141150773692695540640502907025583648974846727599248906125628839965607035810948127327592497609391896785346132662103504528513645319604270887604612827118743608348396852066363486596350228453889075124482922552262124849344591629331700911080730953589815315762223622634991975583028970490762826206066782026532517098465119510257180074122698194333068851521540778220065528698787806147998323230855381162482309971061124510829268782562227256462524382227781722971476260992339332219623752111082657668942699804126157372908943940111455510128946761055988657837943263900103186996790119937558817330570606174861889119961733726232869658426531828779490879472348773359625956318754199357398600491198101065951864905649809687768296970229381257284864948563527303632681322146551719018522307772472975833266340193560685766202228339234023954908721191377833015266471353798617456141118347975231741636786904469292562374276079465368113113467901194432634661436529379929954419127045077560193900972690768685356514431556092028928814966176547299579414737051241067123586422154410833222455551726196342772028030110685317851125195581462128120311836819108002096128094791828115750149011395258833666302377466272563698959313426790584747090222545486629930215743723447146222161648370869296163992272192951857599266631155476358587925086414160049879795604227239997891473380525024389574410257746536128326265941801134087838489991092205738053584354607534821112058110209934607892042291941147579680876334311382275360891025183739557279251640199363636278201216247473352890120546225796826444865344983624530836474952164438496454386597928373224037009813590453736572565079581589493299441780588739463169348792717984187529040854774830153387561941895895342713285678536173353305574693937305697822612340186629406899023746007046162856765692233603023905600646792962790891659348767973000492636296569497434843514918724929122026933270528547674720117390201437924574272158897457836225571015909378762015439340207848416061114311900252544151420397726130530505950621801848023949967712688390865162509910459329896192895965962495144673559623441901311774965733494883980391597075909871363509963008072842266185723599449354739785310713053699994206285212204856359979132501152931937666169009113158668299560834636490242103676460118694979783276786734740130836850477973122936939801737607134900580487394577789849435767553562295210768136763868962885057614463633936351609340987008008570993290252581743356255685493951710886504077616802848028088461320149934063013124596643333754302640876466426019860462885533333721069904407332892542704771753306956650929210694459891314112964494377948569239581291121025858152584012359402609744364042071784221959609652670860162525608490642547675531349658684750538089160179200131153309624922176512351001623173850229664897248294976915936058103940867986858609881348576605597854926818368067020722647270880329042665580206135385347327809477624032078276461467821270717237403839442001854413120612525279494872157285215652696793816169983648935435492303420555638519962654464586277713752720941369827208705629473740474455134850048021701557744358688623611187731790693503581915709771048321493791317253591116132425637187482137599080483155815702681770811290443742995833031434770167704117049907425434052272564906667718277550618520998218084686726578009164089581416144880971043982753171377461542517187850847358379067045693924343263409854574862438629523903643343236741006746070941831956829729218709413178436329076033859980687901571030704485712974475436032892076955327873012131638467477924702275010651433026431563940731807734528749464530857490176775667254808303787628632836207190705921254796361668113527075940255646485501219855808490180516023305384317638472942659704663866342673154350458968367304299857529586169852509108918568041286557517190126311603238800490796565914432241309671541011416764027755013714901313904540024362332630663994157625642445676861015622471180853152380426813502604770504351965799643139522453711263207693241638177359595128335392008556273048107330401230913761205891283171472137848500030550145977849875306967599905951311490911689354534565486973278673549525070918519811089950444447752159739069786405288067781389281472226029993610041244449920298564798452755688661278278009063915429942237456140027271378948817749842714437717495939557893626132734563714279796634899602635299105516270665582527680816094443044040746122126859682978236918228336736771578530119157160662210073639247474704396533479052552636336099433501126828992712127197634405121178254699853561878577618692958675259895162120063122388219715532164524720808608346387841005348508857644029824084909029740427924307904398030382649719026536057191069878099453484374472637110542682352024249209912044526117512021771279872280340244649661189875890550599328786254232680072079359974020379898735676458421542049036722582300387907030263510200037873187262917581418621443121448480377507516915312535112555555089468022990663027600867717947831093371919015391940736348636121972508141686937108138025333392021749343661917139905642801171305923047384951975017698151035479831999724201043053107110819858526065247889281419028399105150968188028207332003680243502561752042948038683670551871128710868211458386535783222154384725690354797384378035774064186107082795660694927928034279162014873120986262620623103971290023354080106425585863921503018454387088147536887772575555753025545561994196128597296116378369536592200016285418903354285756332281289789163133153499298992036944028680070373878549200888426427166086238506706488226548587871876269741643015431209128973832733333499870299587380052185884852217556412944813557197734421302681472478481346524741258812375850715789170738602625485119552154987716501643304826124920937042633932412133754620588142551989432456493487511822730669247701413565625126291468417368326747915408834261169149620643005659031205644416295455606283895222498723253716415522275557926142621519809762016567313176186520310475025219710912034960081792953290329377400040510767529265493413108580156815798105485954710858838207362298693832772485889939990805884318413093529516389353622540438573297193434267379272210496618497033610418654518993450650620946425432959051784319544126647876627265862179310620055628865045909151706267854763989899918399275549984459890930859713709711675930858707721148769834520047587074690636711360194944485509317332601420949856995661708089879093407949163822822595064981125951225350859241904709437244911284759834633235095932635767680950733170086370086148944915332056102213958549603863291614637451642802660652997328104018436293833626397397937918167082275285765233464304368662181873728661928055566473413337834652320594791431759478656225139076019985614667884997054304190084434684009214705138269592119081171599693687556491880962675363370575521308489158569504385533579540346538719131431863494781145334573023836602909342215756064652008428882255298535284784700539287497525284513726608691637851491278090136989161889259590902011077891908177702712784920252518523053461982884504606287351461721502267581045170764520841614459578010782416055430868574174005123173658370285791864498642273383883114102688558124723279653315832799473575343576977394077779100361954839506634785951596830121069108478708190251179444640346567084482226605699280849289190893453361393982227480397203926955210018408943336638434032118950836173779648203526464717337731672761140473285599125772014629612810570105781732125915085180333064928571708562527633922967878109391865587908795663813991105734673668779123342348132489465717634258693334421019989706075521506388292867392465226135783885945163809257263920972152082298087744194851504460964594415996274915464737092582789137053125039473117208207350259752913579062918580885289942464842733710920272963963948543096071997117869423750830783856522188878203845368083277021187268858711464067730078592827783724096365022933591982213160520848667582388630499404873710432270951258149836458959717186467040118168334789061265337552369827650388367397999033193149852101286394374876603367660584157161279172204729693513442640387139731302055409186548175578717337317639651978073544576771777167401636577425649701331421675333243695364325579377483899865891762301836055983215799097035107337320394495418688715710214274646999904817453129156504873224592251836399290756266517068041709203751215309025377008157957055546554286860667836541591998924161518462335202989049361114936490459187523699218595253478955895019164191966224263322557810743534125417704950471686606167140971469569004664076614987340279930049354360219720170504604710479541573980574342032080122864739519241040241272894673149504665673229305597065609163465058673950093620902602172762564501665326927628264043013308463725950632125114886703631343048625412797516203219234340385623001424957026328076910930253061494880262104582312993693860746406430838491433218138340723991952661814082484487919659439724993336499271878135025024313715412735523731892806177338004829770848018865140099264384954848321064805960432766169470642027298348414575576718100704429814465805150301192669642814911255739016004384504134601565365393307631389314246716464962750840124534059281480196698682179952358647821828217818483468195567378751286000204918162825782518920401468422697684912964945708966585883640463930731812063253425869969886753710410343286169694846114584743208197729897092931157485407488092762463293110564019244858189652254396343575007374583391111490012265743996092082850996882871998337480032990213594778617693486905163704358569595610207154196809388635930556930405191171858330930780746544107409505580124398955243163017844857217821113469407292788711348884597249018205483508990935889856537326498813527638116088160682886785179797553826037677660810608676771520524281698272428391338572301066880047682582928696709459856997303377679571264331111220522246436269173423749780472976177210318128203009250863587152723183031767701569310197137942998589342110705353902696231448572435557244053478628180216702285495611177716723317415996060040714474573092338298518897262184847160598233050169439197549825408432228539890355120525074767692453113644172246856867402306374749108052475587575500036803635880328460435822669758476419608449717818754140876967015023358912258529092537074548588740272652506987014944246267685253914137349725806107113325659926289832346642329864208275507832943526486754990116241304399738761206850655502839843641369922155477652221164364174431768091729132101063165841266692359879135215055425898428439030315243291759814592608298393595382954934780438811219060806861452453428517581793353902364161620722100694924224891022418917337982657429453008631544667783459322586423641927321091373530012604816089474343349241331621066324581055215793679588912316243133586771477164265875017062209125830754899387987771041315210273591512957998552821222286178770602416548327292842184027314513468863907276910849078144659808162163971452119298984207821387175371574397705374128935702929906804120350753873319839147389110463249451658416395535979115578530582696806790633389700758775522259571092173898217249076213441093640892329180712065827828379922256652193163925880807188203087458000548654652190760579423902952786485816815507288107775260059248028241112657975737701513968507632526929286502992542181302038703005354324696985629244568486614635455124077681663564808655880842431431042014332274234554722473716152390491970513320336809307099317643525793739138934514378974999524770576473960232958053441728476818870525660412462720307397823818182315129273296521474577466552583962456071014882454392987963851316749324691848967088253404831532569859321808841818495073037554023248716069043623232614023317989045411913439484305414863717619512796799180974792639994184667652461303454135310958489612803629963942705600169552460552193701338680936980194972525912247507474026580839844421120890830581083727319317940239779254770185076036180676868756193553107056794819743072631282940686525242762071953270227454872859111376388566790854083838071757446383982799349406889849893889699387683475192454859114705004364715515929893119483552205843511049143841059826304813717816739386084187065486310477496059126976156821321072549603555377388839497966178442833239265342249076956704457465434201139175602875073661279519774995540057708768480652964877779111976227779307519673075402307284193103695044660413326551357591191628629461692801616169617508071103065570117914585859653953595175430326241132230308694457356376027094458074747558572010401762409138040891962600419258950967798467240931766975409813882000900969768718974584907989935717500139345663613039930350592683929472443975174548740000208368333245409837538675759235030600290167165978552781379569139015947665974531105809843031394976245868573893265809479447845499719970586229485056403198458637082068064923648592768707458504908187273419596783175640973110304940166789728900555709729472913578906093836207244666693250430086933317464053056538990179676074970249294645368618060141221986658532996125666969053090377764822455515272474814144404188905197235874923636121478828748064602294129955761312580733075757004793659623592763599549812330588510481420443833056196240613736915082002961994062894276264689596076165711304526079661706025256721002605795794364254585301041085444636698460435686656347579098816506315772071843291954174970830273413465376778277243658821266925980465123172874671502928947270886417213809727578792985004685716147006325270634660332174725334275182341104241976244908833655696598912329937414720521961154721113118966809986461617755300309482541827529028152525956887225756014886615538398438221200437498676978528668725571834362364800142635558885090240722911087524807944050657849228043501073339286460156980498785829929118183800406494086293571345292758122496415545695069660775297059316049529662717483703649094334526156179483208532241366737455286507942117035839267832292696580381771203738037892609612727782983579029738069356081602657068177567826731067375704968432578429678381075203035068654366184187805835141851839343387919676944386774311087750839023534090139440922771460280898976987698557639677897269441717247329751879062312741335107290641136920573785213543437066174053840585922371169600411246824945529851151424580598468854455015248016361115652559529186900602471230358304887792188726782120381204612160694540520673446235156460805671096088514866724336848673920822833298674285744942178259220957905250168497258987956824096659720671022841198348462641938887232221781108265479593019427145065811044022857702619290599882241525334859049134942033022931386625033433256382296735665462115761122356498824481685300638116867066756066886275804513016912596822000605533396919444586774148357545232004497686950510203418827699892038832697122790402723463577413664937815556470023782822544834282899264752833834570368688510891017959510586946055355204692620908876218046444404936091377260277549647807285581729274129072158422405720980685049637232730137064519338925085912048666674584725837509475330810976298461550069787448713454230174121353274355882541059247915405931849070575095713118675133387963843662343698401937643822433280067752727265461954988341078569196987025790850505843341339567058750833676460902447410059540462803281954983135030707151280303889021168311781644304370264224147249551867280675261769537400001202418472659082140802956823600812880883977092608533509184502305753355425651491883555404267893561695545729174852222320623888108227187796375411371483267010655685037586575214072839113531549555890656414624896443053854697863969665444061906396115377327913167784833044980187950266882545731164156735994529872860629244962548498061263558202247791827540064177863856908908285471395088010785804949767718167229858430586195935604787472561838044583822079871100989739904401363173430801278804555728961966037066394498686926020232845262277651792354032935382398716643927882773504983657485906088272717580422778153681536469176489832017326807395332432788846838641328284561113036552165774859709684991320926727695309638396782627956843887900615686346503427972014402773415967627189412013862853761684645410865416492549320940350460460399719491033815378518164257534300297593852098326726832290015184538423318680748835993957972917051885390090370157837048612208263340295824170953316560063237354542051166293762010385939742778621370377424128250477467687327837187974430639554806707748898276718611364376206850475957887154142741380973088539813049208695559016664181838968594749468596950779999223500515499908000000783979447686861771743944690641832511038352341000572671322255604712274096809225596157463894263944359050397493705126950140430147396801657143470028173423538424687316727200315088517608752568466294497622874913380215215603520539559771726382162832565513142779498735777619469495143405384732593617336859262923132742545120279404839933885456274374288145684979610383549262936561124457211979775894799043207940844441850504244728731658666872010027248021605512549914352482887381048641744570283168346264187558189026165283496857079715731753164624288243900204537435343618834690735634806021648967391046367739351075679158691330957866701444013823792898163257263262514707976140621910507827397405503546338467525628004761397666934189054580516510630179209797083853104120797075951522913787637602888904319399571194488705743469783690818094276070437608746996836615774018062522141017935355471157654392614943686345039603608912588815824262054797198154434856432480391460326272339155679982868345467257046606512317820196673875501338202684114119200018751053168534783161004222379371059186378834998716461879875438284474084223185422313503329388630017069767563269741528905868797483872501825157430884978475300127639434853890893074953832030325725943792200172430721798797137637914365541837286997086530429138508523858601533813408685417440960989614862579519551830559359862402076371401704426689099020496866142606706102469065633912862571315742136274720306224154883912548175571075249385891401491586231990483315928197935733011922081604280467701636626539869277642412732523262386795023999624400547953802925425722910702154224787077470375392727358276665998067656527263984518877461819330461049931751480157793405386832493418885595992224927282445962001938391171598925116653790037278552597771799683800029933588071995113842893344371530527549980241220795701286960892753358806546737326326493485403141839262588469293114522348797305073778403517316991720409379284996853433623364213213920739581964617426578219530593360866766630961466406922342541780976403145742141546655515671351944769860146396067652468831665207349182009351800378565545059554684924856095000417540736390794911177088350752192278140598978722007267079280059441397458686567173071978666595704770286876424785141596800160605454029281892049481306010449092109029781616779321822802306945684694602372769344891372440115080536762437807211268628871515586822687672585657132251511660048957595556897074665428976805611235738243503982045157225323595197068115092069245038743932442354693228479612862151217601692608098246906296898900636188692922781215900385343217931496651543002244638604005682181940637422639716372029407523758866777276924820695815587106388396392644121741838371202796959836682618192401501490510032559607526855868140002825280534835603362058493177077370171720946986548664042135563624244931859806047194095262634455955021234833416071411173014584444495573479553425676412164145182180732901409558837391551001217852636247404357990909623958615410560205582126115521787388679460985420458569321913072197650004287154536840595414830173404435589972647505678129408073324841635791222321871300501385142497514518550361345405661754382965067939194050438907747956140500439934977636159174525833546348501616992918745696458097241182847072733833706346555056062075648049457033580363229111728856013028346806021488040928579383230247867388995365624076386674253496169314062528746727783289622840304265075760634725926751563986053461645011456935491309186481495016037539697644396778780972407842823780764441657904422452731211898569328918208142617501470000955703282493694912639630502430588995396830722475041101858156265093707850716953387408967381667411389351568088247123111336952454130313582755891386756020033997208634375781530509168310283924619240762600162918036883045205796610514053784729751619159755589075095839402220626722720072473476186970068041518879517528013924077276913459382382699753375029305913612442085412603557113365140370977096737578983174702030467568172341654772995098370785012076542283273615277665117971196925275326370613301078716899047554120378670582816678270566444215142297110446513233078593278624716312243858628014335136331183404513140252311860142974591934327245495812746191869397759155932622365502075339661883723131172280550702862604003122481569363023732186034549204283694211629920653873384131244192822732271741875320233529275570019249800915136891116553587888720144464745779268299918180544827026266168406768933989197342458227777000527091517513585479397713787155288323337143102772633796460098024335935722142161797362325739686514707959844605226064539271551367182864741701959209378326266808260611445031541079148293480088167295163752722418892127799542919970727532868719920500951618099710811349499531846695954184716188854560560575050083703830402069253966813630012488124423559567338637341772715358958596465287034241538043829437815611640519693483712212681935850807651578312056456979097797777397884857833864148158733376646291104631238119054743024828666005678098069849222393310098212617834913832524174521016327976924272327739924328142633190769039950843273669789426054775768950570572707548056798695435848941560087722735452815217394929634145925406276855784256879737605065064835833524700654880060024169428958161460169498158454920572763773879553890655571629344697865074922752973417327070933571139219956164505477563640017635115904687138048287356833151470276543547295899677769854856951892791360355494094059622682659614166741746925790633939187785521772375600117417465257522119082482769254520580315689670779504597095447861296764328444429746501578525914014898713104073932792724171511600831388479173121882338625905687360952735828780618979312255090311991177106463383236921992320591193025808843926074940794724716697979338778544625438515620172310599483441872702827060187693172430807827813784606138609026835438382490426411384921427365930267158727279437094929534245730465875962077694806883252954556871013037121741344816270039395518104703826004066412552140199522756359634573827344544612205082759725110212577190612837492810030889490761199183102630187925839795693865917864508847037290763191159609213657620766439565423581987628355259085456534806110427800599765534582731349611940810061698627317940141669967098789463315510958423614359088731802230494857158814837658710001756516896173551399298206889263856259753818321008799414267006878121308379675405348950999746659191657117571176919067162515427545111711881682069152961111384104863988261301394485661902621475611031268025894224047392122145727468166483765947367537265124082376765616876887508674627549919829827992565676574482355762089529073811221986672027808973669100707002997283242498246248619345980138878609517509892281108884869321608791494580946998342867080647776827500386890352716552654611819571446473840333699710168245286525868077781297920538096081007985650009199393263728591646266181564944972543427074106878192642834251116880666532290957804327609157844351849387413316963480941495842270591926197363156583877587838526664194533052543803646729755515612578311846543093464138736684000901491945935387034473483715914507713664276367488127479611218655088594029308530502567754351977927049011618061242648697455690785149710753361087536622893293840474344075941455515487590411124382940051054005693321751949846943823865407460286027600748645650494911581560551842717232409882271751257939480905806852281684217352803274274416528220542565668135220600720747021261232588648639212861284523901977675898459906143814981273738508546442058228108039791514585989768239481727990695282844937167768360768978076534435357856600077585407838416508733387664742081825630488261158330529714593541064943226648172770900971429238506394975843931066174576420556071414893089693175828865121111878854271933392470786300582295637769701059983318779925710530086603062604408956670991800546111784030953919878760635658562169456974150849231592860893022524380479343130474170838940441331476465076419386041242285662816958653615458486316676878882835886592841464104869259126431721899906196580582885017535767402940324139023537033247126389476831608548863860974281927081433088320248339166800744263902462634710518095108619578406672057285735707481595062303630545357420722745910155030577826596277418082812004649809801466983140098173132872925186792036447498892202948020783132946401018600203293211921221943938149773206474635059624842473108203099923051926610789224791173406790526622406168461098257927828719631269175367095988253358639271583624832817657673782157513679376635218768915704700518107290918182762147242207106122097960237288216915392273177309181357928024380458899487469904090724954625105964519569143544142698080576493981976399319750925817956080523378594558961812243054785924119206319990530831309501480083689262988584632663847232896082238972995144258943453869949655678817197949728606147494672559666502758684012413297357827095974197343208249160400449100127292296854430020426471038515220592133089915490962069296089133783570414047680358332041110981920091452276868709686806728509497857606114229993381110319162417987946140138262403684692721236037378581932767816755731841383830551820271069394452789533700959957561592666227415745614604178374612028879652500187570718482715112430631960666108145385996896503416594808078133505008246648556607561250914101884061784319012209285644017493737178299196583916318492336941419635304639298374538354863026913136910060368215821488253997315165250578853957857988861373435664302269928732385737099441118525892650067135799692214579248364838420235125781529536715538054132750546638175548941267165900904812553520575506166080732372895214809135172924268819724380304266851460385412313290352157787063058563480934579670000762729452586300906022360015157842998142846612273515488693354049274744834568189165495326914646432248149123002326103360367189760036284476615762296350602349486184827049558072746188071842451610712496502943854868643457738940798520125063879423856522076402889867569696181471705288205329669550709987378482705372834575444209701092652347620459558564480140879725625481377647633371102784141463793936994204453010936240325086294147110454772591437564078449516467724590449155146122696229785870589152782796235368936766248076866165152825978846064565801470225897116212119668565187383601538443462985135883475909206098924947610684628438964610361473770390959930062098633064280494424698826841743479107060179072751294623543466994605034383275254155374323572893351240674059374639721725735568756136843280039923158200714507773571395050122440248991980522526831711806678424257223138222861632405000787639147268821379229416606569816859099094825055664555469490899110337291355042039071099225407532098141257182168023331755590469116293978182011407136186945183134788706365069403116521188739432711252114970105399552886847959338049843462691589543355457490926652671979935193299370990856484503672142282776245838079132311701059622150738017223133820173558009960886665258898561708075723160559300771152498375716381998648393536334131928260323357237283691682150347720624457049366406476262757676387641062633376210786167907819993500025102213476976978875305636086779841239087604911534619785662831878699815648731003773016210609312026837173045807004418917106971511098048935484470732093539975445872503855525365993408985334648878215435417990145658243235694032457587584024740400368009748062723647144292455204905916683012211399578889851208059414290082640619859105580830606246390187916802108540421842617131247841847614618874625831572138722154564006879014886688754747421475837145210305070924465944362281652827095964904002092081968840348543042814638320568549334995361444099404707839329300771374760766794869970631981737686051476673120110990522792804908022872402232911767699485408129177621649742252485543699665235132869747935422338153680681626488730829667264418162233337451574385363895998366176148247353990120574656217884144472709072552460743582614904388572382216849352599863624944470098443210915091935433409234641582355794644527813715882843834113554685504954133147441330465985298032346121150228647318329552854465244251585022925100534298744645727250313783566281775059264504697072338603444012331428783767450770412109654873935871929800073458702246684480674152841380778371733220249101759064722539681725400782192435859919613589741675667855893464517334772043618089160580517271935108612386901548610125611320813633145601487965839203936182970062751239523726640979516331791656281762224231459577144061175726007342664315778293332255721589246185918642818177783057273759189846155944780176195543140236116116795925617626437092465161000082386388644074861363477829270300944775245687442964247183232895294982650828942265950924166019452034663896694043083981902901231998565073915619280766135973786462120707995832796478062958857701331770658831676019434494090117849705151661837056559397355756782102946007996558382297566800883608689229717581347666046760783689931346009432649925850548482700167031308094079168138691166793484370249623699749380789533096447025504597432762302797840091691571263744060675265155875072694544059728558783865046059877789063521055477561330604651115912366168109281996564792452123007479949910159693920507384088156286022929700965452113323771311494089322338814393417328883558077682377695072445331408820341475413984359553873505009390882311364978767050825274951232439973359979060952982495682122323212827071925585246151678399995904005182132549171976416206910235364562774428168443572270211501501976938413835995428458665393578301395431368011680147412913700797815338685207176175569688322013175621884816057083409269045331812742124072245712687866652547519842078176174509851333613335490309035783012600928865422231862201149117126508274360665132588798285395305671392414601118224906154825216742129858236880778415224798826251332310029566733870125451176752534947049949424127243262708407903592546968375198195720478144791021061980824123772684634298342464294072014594174355791863838683856889513612823088984097552261942817961988757683436140743590520811117914000769492089563622510005032716080166444097769008049918477152221294841308412366452928310544356659386905971520190172682807931239743369904662306368540752776566296206537206716325415233461776530052854279988307343117668247474971555737855260702115077423286260505304194594574170025809105993875748478367982986853976033341754295135385722931356188353612074003357231539259565655872819325902078710705353511914856814472616280491488277577567082683189053209952183835391357675530804844891468359225053651945014868448117231930211599710478128676788989697666102636682312119486020537643994373065423267146428969571883294551584890588712529396151794086661825917039894975958000405988215597558492454866667961684703803300619474513963726384737237733131141420273290245865764658783870204619269407151862627608612933442602209610014219199915574708425757056603719709402887088130100056569753680568389441054165454819846418847466723073731066197176244970408910452595465659288989734042035533117899835663412162178016415640292910834729948003071612606224048721099635516436409082873751672752429479022483630361077825275695592746540982496342473718282973822888447914404202379870457194973332679354656393570596351597831387460352769496249994488094644522233764382439731326584803513752045769085181431257295362688932126208948591634481164191084022662804326433241607820367898798693418654144941753643817100083287917753173468905863609565470242632659075447529133318014801437823576217446805614067419603165250883067410565224357126811882061009668121713474850512836135601643301607690608140322607479844529744983012285468914300086888484436662267279450748564924579555700796028430057298872624724836857114531272153384267312893550427839463507524356483395205603720046849557065895204418806270849085053046078948118935371908963620480261416386145032234086902841249093735151214376179977669763003205146083688464690322393415643417180347786279680255829161877460059033780597968899898078490001580313644530009475431803064946890728961630830125652372151481771240721036348606110093939574380702163531013351241044300089509239354585185893952296479475160682362613944002338039884614704195200464495834489888555732043689852744502466405284448811379613000551730227017281393407852490484811740336826813012757945074204406637240992957275386167497471186411971223338852061653339893231850938060829972831747962090466308657973903728379711824739154327466815648730253174964194551869717816954850959691064827769003058826149348498632979757110985448761332762127041971130283493765887569535913547439431134183907965380318543595398616066605545687280569101075425728770723052484726720546195895194208529443963632172095916528292608209650931256769154625013936076555258510376219224386179038504687054793681208342595023370060176804767063815799620848904766742683184459678260522891454687421319529986751169978623613551038161426060181489365793872409352388723064960615406376111997698578119369041094661088553860229952206497256078824555079404131783626425700197713452168267037070527985166565422654501560046988145794024037567724088523619353108865221986633274384191003725477947323253198652468914283721093848179164447016619364523448173503741390915311690401874500349813959135986685174369917810182601124589478647856436754990721668238687382529848583183056022838286419306035086101480206643894780271591373955491717311850394925819531414476747731067158289851646055892625548157593010480587375038539187990919806325240216514091636968273916715772857861938496665388986551593204765777046151546245791897210091318940938624418455969554799500780129694961974758882194587470882749615351122770700895682238515893507798646107241191031616058452495651820047048403325966682498413807103188638911896817090666499470704105715835815146329460056747040453607575805610158934178676315555247834543954926800507298630767961509607126228622481060783132383833359883617609135493304838329958965192454138502131298704991742630672002709649133835990818096442411335269564823431552535646431408666521736463414553711192271015939516200018400057308900827745948829368351338112945515675202129398129880890768376255955913711437348342428336645405253734581966613909252058387710907650238137403026689169602844157189755298294280888561430883701976023086193589369666343738466745689233733030021606780243317962694221316336702709104838102082511804012385408493386158619305374415333567283314180734507566771786052369133485657250177202079188326265048098029736360064430832760244121231783417295406874578568578446956540519060057679054133484295231222728536885361960172091120901576526607065595709684349279060578507555702854831956475692974869830301792901722989060570956828162929547220070449380391590004467368104730220476567618170682792569564037644841879265876250537828165307180619931154951480019175843899040285170861644686532097521013969847387858841702499098396274088042368460277994726045962566541045602349516002836479786732586209326735324040827568266085624067804075310605362045807065413989670075933411601872565876115471812174364818748223774085879778601192536773217846650771180627223947003897323164576851137623001982767244546540292045300463642474491564727632050192377331792259857453257461396675571043731028783058254496711327910771718231178602259765325881744386133354180342610914537403270743247069941562964799199290585125858239944512503888457366619315143131285899947628841223703251666583916653872566505709084768368339034322260159346131941533374508737967115075527019064009912773843115079776557117130438130909596674465732831589240880646866640755541459978005292229686102785031062142927388226396184670099036802748038954964569476868472856368642356939585372955918009334810199874547071959692709982214690669432791899246505726344689139415851115240363545145327419655216976015848269898742966123547073644429945113218288611099657513813306048480468562705116673737861527525389711233060519031093427693528205329459075877187558594119932363682941506872600242619717872883401699988868696071606995379473876000741458168796184465031293837227056779657674421731162359518922014615375688523750494792927508989381239996681980758552875064731328831636792818556255466477405594376944040133762292693390605850357726482318549858397599016715646970409462634053067139714688359616399165472104877991863257353902501438526250340916958464820187443814076920762700788678437293970079475084780269736059457990729920240207177337217029611730021580181298816456232127339339717956491484080577113235847276320270399870897363654115208203468554163433159871738684980392228310475162986519114210580925195062634414218901982929539179286786647371917343934328020371266015789005115109242078089825082836344442718809816543877786465663034519535449745405368956802363806428021200161190693313643828809126420850250356461675558759437632417683633486923143279656987062421627805989889013331261617898812761291440451613598503502065246818157269960365946801336064677031207191334582448312425352206889563894453548410546214669710476238054804457135323651609969471185212289059167474247078901502887030176664287745214769506978708478043389802064156557411343951550649502394289890702694018701642232886584400969935051149116943411046130683242886901426710243973674767211569108264533344205900093960869934752784889441241420131859916809599269891277315859270916140910824130970872988877160395402599265897361316637022368514993585702795230043401178915794409730079261910400082975012435718815611024418542610407914233268943317053685555077648884756839749156083669918818300399560665256441194210517984416210237676287298037191984291379271408382514564895061419097053970577341393643972063688639695127239714516550072214816050294950267901841874523323373112769425817427110020692376188799024970809076479676150817544903783820001875843419861918313839573506938626448170325234085210435091935567997675471464566163090188435154259065983707105314367093446000111484360189948217815082507104632939060108628651565589109831751436640455430769193233516601212263456105784714666680537132623029854189836687534625517778296841252822303407874139882362183450335356355428441221820464788506307980100566112672129578618187859875184885467907600055533245023497906738469744067262878299027542996712040433436709015261269626221991521180801055425737038484415893223377486710009876375245410901368383164820254182966016456819357616136514407089365803209462508311480871234893883155936788535599867200471677172077241585539969468905486335104853021983971362226645356060386665181305047993392350896936730749611202078124781722183911512770204288154862226398313940517402670701408597746833595635138322138792909645480710849332277809320039817633324841728999217220837674199564311733437756242919599347660514947873473411980451020634416971954918191951038272650065615879862043126885046444282421456238793804616404871851872148878916844123737168077028454763548894420239795562338913879688633795829996911325677789089713513100727338091912552886614360309129469767292324192141300192325004583684138450185945016322495344249881809979033374340821805042775012671215785022281083385801272648659266612980958456702940096531368679246750348024854324126471963832414060323752133837759972643803280675472089140759682629291448262299869882355032707488984921020767409862423295429906222590089551712196694026046058637399230153926791394726825582958305016308597273366521916502484400891592010219827488583714870555262400966776229957964022514703231142161233162015269871943436347361665815418254622529785383865367937276181038802887238293445331115173720237213427682107438755438578504499349201689476335903477907957196244859625871697456346513187462667068576170000541811308515820565589254237404265673905480657277892510031473506284992837221683621052985932779465770322438247777752241349256624118361257951095419888175190492085014801513665750801180326818988207514641811621481939025034050403518348179192557893392260739394722579699400712669117056268286773913469409080321706338078872124485210668874287175576465104740434847490953071309527455236819916304038267855871650887421069270446391115726548324823339551972786208706873860576325838241860168299119048917964641010779701743747303856477305647969370655152938469860819345377326271516560984411655828074093719820979797720462562621515519421042146591739381111668122559012405952475383921389756102580998423090274167548702223396005994114959412449375948669997710408603211833223020468252678970934408385527121112576694897726430792483789269714508323952367102064301426962817260977938289448586889329706423143727613688696667749500847240364978374650587727362832187506355499982538871759599987288091340259932417678197683891715881006041511783413840516601488551360950295648189448300844238789674134087856720231185833203489999626310658250342779265985126392799205571215191297292933256619697960217748144245059897319535639980635092947657447585629368550669771200467716492736586796654182576519207635195403349149738426301366950769049569863419854141440176607106502186843826083869282550959305356486962215047313675638321797459512000841257838064253030394013458725914482001363307340111254645271462638457009293683241506186373248646306694692034132897691720047182970543420900660286764078337316584122146324525914688778653525662615662085232402915280177466553884085633587050715599667290370943855736057494518393653006242170346810409807338489170355974550260176515629229131710661168266302655141218354569426291641660166535878253802781777520521029138277517065891772355730810368250231393590154675590503799610386687740694199658592552091504893812178194041557833715436958286827058170943440634658076629035105233833530268611440529063442792952643393589040001514661858794615446623480807482769827191719258744544006095852859158667506708015459026292160766553143033151040910709233641137898659070115354367369117124355285938619315299808684295369486501110897491881864613376976485878489245053305605370606015102897754039971635343713224702468027986524760127107083415670977775816515370342078905047211843132533653242024155258757788307532914637367433882865549679116943874841447868406868024150723976282786879699945786539562798423794682023791539428510774787036488648097183131448747260951034700435655813090977494576026864708049166594833220725450769898517626832142076990078657944275689917672842155427540105524491588068370874065577002640348669416922921310354326703447494849777184863369407413152274392138039047688252123263455746183325458510963100904479181459075472494814897050246917997372905552270287890604627290949083115554192884226180370988012412682102691874470581068446317964140066680798668430218025151549833575673438208123168926280612289786128137373830548089971235213480691918382908964950790023039888064730948160916744149635062821153607107228785481131343990533270566021789176613861934187959401628046791553671809200141403119375668006634966471155604226937999325643260174240618245994757111063973043660016838840123720239777452034059848013840876262664695619624660731478185709121987013498155051366059611475264843916909315779895313471601596980993235517858269103129419416240098009286087140754319402945802470050558620307022399757836584208755739395520951543381840382086492682231381296499002215850526779605708131327868231326086876500144837014271782699038193961468572285646247506759496248744905779522681404507694435550624336009297935502609369501503358945887486969795941623541111633823458857314823849353505094097914368655175214762629268899452149512374286185739907612421343965345189116332471628170817158434654142107390040391459689083285697898588527005736897355185789586913114636828747792217125378195105845072672006802736606622756127598193777413240378495845000839552221774828502411502172906173559309833113974784014583073224675235958150033893160768297183644573861018220562300759051883205360762853940814447367068050794633541666403170730018794638445772517920157298378572272884466390428135682783286258704728580820874563715204900614512501805014954081198438454078524510042897529066975203670044188359330252089620524669354897179874675608183489551146792992538011855950508869637368730954429261376452701663061245884275175110354642837416570431877463027158103641004768679381182956260549142707859415502589361785237809555565623314203240023176403737098593222286492265987433526822752476094828335046134671377005717620344695457647797567839669926835344228776108812616943896722211370261850395258871452841241377837849992697171811170986153714099108309763769565338966029292229462793512089622794631308923833154696534565301538747006339453543308823643149933738257057590208409473661912128503597730979923294624661149952734237797717651118281663198001284111418287816819784810040063203269001072646018148640022236500185259057711987544617041350709291461190684107133010381954938630253212918879183339572095725901860340454398303116936381831947545831753440820418775483802284750080008894470567585392503753496432254930356144769759055203620555996710465566914836288546843868083411993951466579657551592930839061825479695053071837211768974689979244365494290095105683237882751596172646650561190992789993620575033909501769268263820708133761278400522811895357843481099774797581169923118630960253985981224037580794601286011925650486108204586479841676087104615790306265009030889760165477201006317485645824511636547431994796990416955857735258004778969117860814214551919898382391993497928279558972993370885095586964504101485363209631163968368389946142945253273864746139011295226975142029057244109928242294932560148162483292662765647287247280078617437700153871675292850534895679266492372007652363874203305485746870774182400799668777749407508610994874850722322657098028914046978414071221165328609935737037931271292024723428673343136637446886447635756889948821169140323241570089520561765407928126198648943048963359449663097940697235070399568911111995189407521901349665225440978713533294489818085141240528330054575462586925448080946419970849792984291646074120988698491561689782480911231076100522768449788095262666140264742898664665615264049578829625111848471897483435234986633350906421323561545584358398076512878602319723237669215251480400077987273260221492045917163015556491012582170357511007076551400784208055652917572092387621838677989189494207546060619845199234874322146092451251240567802304907515126216933886293586221146656970951729252183749239388978542669196067845912455412081099005869868249824670517248429063605524807362297151930623464085181386883542675454254938780879461529568043682708150092566946163565460098741344196537072862434665297738436096747840303633832319426675938938340355249219929260201081286884030307234025619537947363445195639255788025396724580899087157770906471174506117161633612040520068999203533995619468364486110942921203763795854762260366775217911774740483643613853206440699341868923841706840313405225621876109527873261270362818911521385780308362481357879931518522298051890270736209719931382123177694154048239923195745428354199544442061728173497578756701911984041430870978186536700558570692350371207326111846396447551268936509080910703693971767817309159900595354611956896444576686698892121938808469656414850137393771841921291137603885282197217478276839653614106622213802575567021571337922025708706412537207613800113038328691955355599981699051340220099107659623574240461813410819330219523869657998714461700725669596739950934346114137082282487626532461472076254758175722390783905830189628523156951694808553103245607467053448436806892072477971726994213469190417971493888029573517439308640976300726137730008834302516600821025904301577161851227916090437404005418682073580634528611678953832541918442429853126398779404584226615960625977165271285084092160945009386315320823667164525922008241452790743566118878321432859808815593428629779084444448681347701340233288090554609032091463141960443058990772885377347759758435815143292947661896232059168599058448054722695537025592023077196278001531355013019141029105331944645434948437185491944355328195195918861097149548676913701824989716444288617101862345525673394880759033420208365725568441875793028713654687610495014042288083431984724142828064312886070469122237950516215360800852216192753358718512402683153592345377777208046734895754767391127689920631529857255512976198567041294053675619320264036142220070525994392470642396635119785833814286050092921352531981632826434910621008660125554649550761914784116663555183306283553345565123425239864602115383991380627840940210647957161649815037164592549321683686737472910322549779116195856871931246298760864186067364674395865964786264640025683286715524988790659138672576572134259921865420544112669126054858334616618662789848874699790296790303827987349047907853259592401353065824276302949887375102626779885921608154788801766675578337502126383112610691684190777790686725839144384657583302480797062438145876968345168134532546947302290205917091019820147740907130449443469782897121989475378527557566957863565746724324962055222724327215899413663206921558479333351792735677308806852410000822153383821968811314281469726065003959154495945917594397935506963879491614869134611418147093155798766670268101065336013709166475827365780381452724225078918628821226783796893664487219113420957103578565998891614000193865754743454924704445206944692630345866654344652252532441272535806203830394965574833767690870016287770351869661301057719135580512158329908891837572893116397913809015653630109113536342846769749395292078100366036343231931874586669616700914078124384063892092543583669871314435216613094377979686059168270232281716860192051341756112014729874662185224123456552006096187669641383559911381458272214304603202491216996675381896304487549881803896684551780751104712116600821507909419938965475512922037320654738886195999025768273722285859472164774879758924534050081293124262588212265709516579463313789123915030431738519829460197914474539350196734293135604827841990220232795107177248683270911627487705680308955137187601484461934348680221302057979763150604849387713601272468682198969533104045169380552069262257181414372836036482794466663217105379399238197234932797818945274433828549476259923574170646856804948314462033438380792044324835132730700124807129068096868692535488862375629293866657007143067353622174950130923248821282985222590161544244140119230096610717127548234776228514934155981385539664358304631855166594522935303679529873262328703618263486923209454419653298872056448906159442934845604543881169521442497436808907975351257746622937387888810084348822948770403861820183024357397687248298734705176079158714501368997591915706101904174293325773519212384674101775786540565731084518325753048564392170033796461885300893135805000188805961425736019375237132352078943256236378679410803353291598727205630904027302243965709307868283000673635465862680709437710463771943094124084865327206508081839045903298143271870607898969201724100198849080671671318340333555887573742757076855597364569066307050617604915455543687206365587671972123183670571272431646132968505123232396502605234860715887083537377125501871696450943299651221613410333709738332459644444957999441418259064482587666050485000438471097039472121288853740809188393632448175009989608527512579271847413628944033672905825625594936823440693225894679068617980264889913345394861056470744202569768464838975087459723061906300250159615643658741513205555217131117683197565243238501774054890121816414631821776790589721227804584201212879028766801118159749100440257797855975595694708310260034698583530417094026919260016968164484993967523256506992899948813983867864884560971791595322992685415895224845248048016455567138906606852753789919667559994072905692642494110881613665998992008846952676069379377239836653646721029394818242527345258520332394569181277208335770388447193888872618468824104681152883605426829323235647090747177857196007980743773331349558469213668585938488472559694263280440969805930252306614947484293991730192336152276520229922656221297572777096033240268322791658934329794229074659618631832216462303870211260287779887624035641189159441236764382430833001605099280883362952373046068882956333234895516777939135865474898964348875177352898180330649805530576186405739635920022829547744471616129492682091246314742747671203099193732083797582313186142792366138489108393212396183806980126926996423946379571239326604934982169820523321121321229937171945130871261377448381377212196694019986581479733498875974314821012215666425946238828029598507125437148186870025847548282916598904629490037017487910589228534798638428856759345175599295012431500851884213078482173471880277581434633214407899731285709680104263232922213976669593398399967309229275029548014703293375566203995882676878510647487035656786083403567976686256328410305326718845310574932978473523561080618740448563122918146869411313993749205985679473617808668069912614478507585244836620746109298510434627619724673979828221972977990430825085558658831558589605617081648439476179959734431414883455757362131962839221105618905222736415020722344038502456471383022905269153229363989991405535224825912811688642578262130869544851810989666715120355912327358018893463688397341843349449254230618434397033066451765713634999056672494451232408991455567560933474604541608577286863079574572043527142259547520161058721510501668150537062785450633769653980812183684256503359970494969765752210378850509456449438206830494399946888999445218640751928540791597395001070731075534917555776701208624076791794619326002017772746971952888988785928084342643572626826362313366399271978674228554250628327777339415913446300444392595504766528250576758959355559850799095244224937880895576940846774387613596453093858784984878467073782182405707303129138138717462526844008704506018513370566781549084792031095199982636346429920166217263141758058349681133400095174947113415752532916836094068245828751558677327779376394750011253096377009520593915476800738043860130342566606978760429190679033190489318230335815490726457095077344501748958978037254511945492191165054623975749017642057990918969994004975105011237512020450540113500787865159908341766547734659946258167060318645181398183491859344158531926774200927107484164963890546110820720162590077673696580074718962737596554385420964521175107165395834272640425767787220746029089494645088394990087158468224331891467469044004395755385081985396906597285352008100841621529328543271498526938768318513829992980730394201894141630725247536347396894627077728910049225736987229026094724413290541172275206156312190433360704856319796783429151192338775808519648499604759266728252304753257384383200244574923752043645981954088481517526566390972226459219744647329724643324347300894907030200944733478836000985822133368117852959961944906688005286189122164579522624513175362386007995752485538110849757628919507805416939689165537172000563702335055348644271613618826659811465800570697696613447473835026532066686030248533473867742802709480394301021789888547342862331759528465648051564817057526725931211930852852005822060006234490438391379231957520214698689952014939947063581836866801119507846610443371955577932599384769276065862169355837881311645429219401687250738848064049142932361240552408240885308690983426939042470721060084442685155477814815692028979196538317937962637214353612728430927307678912352336110924957179116851480035375830972340547559866000368116103064968219697233046595084413520448699636093522512023475870717717123769195102265073686168978552072364429126700479014123762876120016376796271499854815035446240411386197397070287549462339579943704391371711157162986498903969864895070987873627026870827485834137066710344627054124186317732684826835365606721374628784619968807571604899271259603545678155311490934062060565819797285572316748147313949576161262056655731390565561734831784182973231160073662335801159477941437983542489593335418998454186381164511712246359353381505695086248513471162911593579486340486136318233697566396509733892291331223086883874203356527447957661629558760233810056085011098900882960502249088566136054268622052099820261432502128473402737407105973167706436494279750035838327948144769092645236275786100281906635406400015667734620939961312280132524195303906699352568738096172062231198221706037010445840609354992032570770936316078694141992289704699473195962869972519525404289733443297413959665568562181660166318728579904787612598394689873090965068003855344674819400789969792178217460113503369833156507605195867305381809427389735305867089678847004474434932094425295932360053580864645577973644240499205605081255716435627435955023417628328156616699626914997871908807978928563095723902116572377780340904766000068786915783429179052011832465930474965484711217362828220095720876571831277864326662820159283457285259274182201149456685911027168065449576072275597720776144081212453878520573301830365833271389001263016488242924586103888680744477354863019481004381631071414432995074776931145071557702998148716980479912125627162083967241941337181172688588114794613251413301390707761243418416639554763514342942760100646575618750021712501857944052848186661702038630099920306063847513191983001496841160208702637886201038525975875392440773631320911782059262635250242509314770886018487796501564719510814959959639271631781245242373416053141232867849484171138767078635706220408132975754723995968671629925725990305330940365168801826013471166401650924367570431092847045204511010977329368236157149490065336957952088230985728846542131141169180323326939631588090597132773235108127077158384183606339253073184653725444998602042853953508966020254535340218736423106935654899041746427550490655618413962605102838674140881549683471212442921397621977590788770899026213900359446576145503290169891415429496811113110939006909717955745204718764043682856165300639374656111242851910017822088361507452978775563948824782726081819745510759134829236917142504433408135040824262823661687892998781735722132439419779265053093285534026677265016993612415329461686801805129683897325500082003631614996534224584932204852157727362043961317050509877207394836898477502553757434193359467535023206406845915492898866335294508664303887047449574916107097082033301789992542551221826127928306681491859240199908738004117997362744938534938099945551792933006538129892610339211471431392943283600151628531016306198851911901083015395469679716458146804455585842450333401158628163393537394240086263622742167196815970428540843710310067458660459029141392278114804211358062307682569439910036862326597540119028050392495286557678210319124288585337812432295725794880600460646220555524071772329980617036566764126488769575857240379497292738796838947659659844073063858222233495186189013983088554967893139402837617784986440300900387920634810107565224819593522930791353286679473382156669792465313380554104817138734040552256789575992727458024636786637406839242557546813231805169756518634309345583270360031033075158173040823158456030760867215553297307933154946772266209328055417985039858393250705464671040146408197635202586667586004087635854568777012081743474590589224374465114127872643223602754472474189036897581285752930093225075908307616150093774808839424570940969487031844738408046022357306377057726476071614960010947405741426306324547106443687740066131510928249525881178822495231546367277665620917143316753222700176080582583123690802380785396275719733382936597203206657045178788253132911360115530055506318449015576099183607018444312398146848850291489634765408995988982047647688133877464742640977246808337053987457702338517323815280635397548338859596236484852609855872714055156808351219376758276751981207733688631657811519446512936598825280266701836887386468001678720540088560886886044029590962044163963698900801226079335521926886626447961804016652815566634764315675151454788680388995134490273399420848718115289355202605647166315433327643085280572891444640315602062885402643356760145751029109051355951005880185367759098790013490361357613778090856690505661268064045995745427507496971181878678637879860499237161446500019666948358953161768568420679508951363106120894064434766541715206747104781879530231224113344123996528595811129587041239489318544950990542627041889960901755764790647076258916933084381496756495349237865713249393965728223792562489505219523867884305516936314964696565631760591960710474465174593511137132311280284972175846361899124631804485623699146406606917195873454964956443874098636826014142583863719308045289917155630806004754092509298665027458212262929771969207383078879375682069459415555052634732739726084679699834178391039426359563191038981290566757355077396877294767769231257907574800191248628307061516851975837586290699841536701673332333118094572573345130279855446295227416410315161120052723183725762198870328560652763011870159613428350789016380025436860460102794522932699942135524448983170475006165221170058300946053990938335413707773074669098404183808823159971563590978023083166957482919308525205091210229825026601191406294822664111637505890682142220261207508785325800307825339354302429659808469231532082906469943456537549041399794537274100037691424125063352767573940649005301930125168804225521947273461896076439959300195960971445694918779540409902604044316622996121726257847373018824599991809125281780077942265663141409672854418486754520916075922486659460962851521519916640639169382062340163418136918378317756503207504866773833628074449606480037966350082868910064141590620850874915054333263668559074729058278602734173855360579287284176296907673683073597536793176806519296298446440882923280369409786070260438073371016542021748863072099742911645898807002202223132323930520876610110560854871808725098823235359700887231142612806562146830749207198459509893598371909577872672469874193789471009392932896598850109365187314461780848470383617135848404778689422766369125133953583714852061620982570887899269542087728050439276841654705729347214928756227280251505954949628062091935610928819981695525234920627747238126906825989303236292617895112717908204657771765681453169419775088569341006272750908220196551006678185962181735481193752901536210379453258063089570146006630001634482594290954794376803124234166275200017299088146352631944115429528862257799317523220653396387449410991816309413729548434024762129530272585265494324718729276300313279325766245620908254340176421819867288267291758233932503080426213503113159345704466555376918416970548522178963966902128889172305993550429070384248490771963358319791535296849498101203388520661247589944731112935456638833295752174410357150946943385976002364365497150814861411824619062347591056024535395710392188315087763020531432960729508096674545135994205958454550436798452463247321795520635478609082635481372905982252741210789469848200219587418509744070917336220491463418467361961193453005979937021575623885619526541131560366593720777752047275925534177269193634993668025038707946505153845937973183080684467483606514069892872701380248239942274579934493096366779799965143057600801542438473828208946576638781772194546556933792680828356245420909502605399072684167363228434605457975157531165354211003812636200980413678028332743467290396858447576928704851950153435575846668169784804368947080711316351677850281117694578333726451211645874313527851913072050699095727063427712583838430351047674152799394904073075106039731424160854160707700217813160893923850032030037973153777896454373868860955605249974593912886331756314879414786033891503028473652682391752020713132781573198843228981993600463012958088593129703296011823906407218491975618152487083812204387138530949536938681407025964063759681253379075997953059598400257158554182764978936506190586863840436613244949279165519796025989972594451660885184685764267512311307937076225551262258061585865711974833323590263082777640577891041403051913081761678345717545901611267149823655782866941078412568151073707809464239953383006764470268147555107404771869637782456946680651228505376205583492681628172373654864999253558907848137540043210812528936270653741014806206753765665239343341374416862215184348898275370329759113953483956732709319548392507573876168694910316850166721270338078505104493057102533525503281094654905734841384111635752259160300934886153355553912686104864164426922996221330629458995729840422144647268236144005397032345141654877585989208273568531240264818866714854913947216368532134385044848829755257071490777652103850610834402405601678090531334306473248983944449312042105652276789339448782562883067543151072489066667379062382445799946928013957644991285219840051345684179162636142802446480218300009609961311757129735160532500257551123480356377159521089794063995279355633482025381335500934262467282860487865409550936406038441261854388118170434529597293183014963253306936432361557171010152464308728710710291406419702273424543096631517186376019946711525770839333400669738157786129118162586486381791845986989403221706339676382283476665679729973499577821555131345307283813668260795429845384404935151868704809687178234264846917186827894298679540559560252696896612836749464232858828631875536685795760008971059312678228515528215125317640392363061153120258160844616783879826736232066918854305133732361081849281709716096911316745619522564830684912225519581865638654846539916596627416341588683303003772769575607765436647820687335080120432978893897297164119564353195899815974323654601109832717069584030814770303358299290498244236421699627059799730643310531928014536360987005022471546369034287256993001588750795893143045133487343998457437411476202736652103528030778491006170482166552500911598396536935109364888085951614104733547930350645590559412561720824653595341292605849739348749774607072758068415193428341863795358156630148826422169611374327778075802467379521599637590837319541092033136992352752932287626588027310236303683683625334897038725400743216421065735183230892014720525440259601498154722610015138099318280561662059264736531511907102360956559164368224481463521112536119387601407498134386185913196835975469759703908478362479170267376567613045801487681211503167778227698276797447010729100380325169136521825664159370918339902204939322511936091308554383077009675680262505328071799239273741579393859519499487006128251168278203414004976682691415616278799764500786612537778988571834687288980343639344099269244712369709771874322143998274572149636931781973405927338612226609270343458955207713961763370429009146401361432982637329641310796241465693253712640084669246188593229641451929240636235240409066543367855608346918478401127307462044669207068517140129690097060697134358134407509046611892091478147775567567692401716066644026696458793561343905599504846334856026700418313068096017682909682504611310561368730850209749475749562406257686149767862674076521399274798887506082352162840991155887739256705684364616162567281039891368190219429295669920061222368147184770168373002674354569054640353949548038779594862919844799905335713119633522970569790860115351422454690737788886515189861041860974539723826815790028373571651051167109408219669358665668465030797318471810234139938217826547390786074919233569839564092551323267264214528371131505635631432231162663608881986519063237778351475359096831942203624544993194017856241210580863444983396974354542004168003969050791654485219659702301031313596977115082889459018692391338766368088602107356767021831304319949558135874347456490959401099791355067381839070593510207614927168113900324248926584686415972322632907214894698700494584772391865908253465152629525059443270914219712455837919324428760357235039656440637861186955480274357502479787090137875613887532619686205314722812874415008696186241357191439880820318303812272309065632735839089251840718740376148818112842245972278769261446203081600981406424528776188873865253149714951330010240869362004352763004031570796185542846518027910377717613043891383016570205808896780964752261065262143214356684518591654713648602533632527123721719569529662825031924948394114316134413541919224513070053445159636597555916062914868210640799740865196393239303947733904334303373934811736240810663701433917520789751060938698702631090810598180154166584979142876017375844894955658329558173253000847629943369263947706866333410872352788308225100194255098104088967894430773769795665823562816109697736940480235749375289156894824136300739010812652818871204575124539361957436537368198800742961200375531384788131588779447252813446815738036125407413795658423525539674530874165944414884622424761693223466420571222006021968780317573840838969676100847665810251552072284664973483077159789159319342988972476306445510277607871709372327600607600794380069264182563975429909780863221037655461927545674827605487207684750324638232163405460705728845681526379792379983900623986680396849645237385485415318744707026382774169355374866994406278518026619648153205686037671360365735219756995512492274796750882267174931994348883162088677772345520571510856951767254026011202169645514305275172519044779151019664619002647117472995913050219687812440952008836518789757637268584545716645310986434507788636970624866793931599121231526594642967601741335254351020131298589941258232775801875468514900525042605692436102921101129718437283704899247370842687663657088641296331501651678757197211678879135133786125311363086188661694480020585750159879424407227004232756028255077759362048910475130034612434226524306425040430067994107419331617132892967511129268221038612483166909000417823874253573896397763685966678287914907796114930728525391781629820708039385779030152809649295111707428436185105828583508302495206886715928346830904098775065088006066097243291428110816340857834055059192865631127690694204584938140797252954528893998743086356838429125616767704204644032336610500839017377750354411470571757428023727595097170145115511711667557659448312469080342129772790462950836529483196945527361264879839047687192607566133213860782198501301898787145549785644744602437534275003621649995919124067091799086577003804222017985410058691119277756460003233478979492853456255416204252201286518284395407903478617410576959633546476250435888969575913889502000643922549103807158813142724048463690590070243825608630510119319047038367577398341854534239620713892634228695338928346580411177025669591227143079944093877321509981998313395441530576830923070844170653788058566038942169393840220060559815080628261278120450047775343905526819988078086700205879837051097979167916446426120134168021843714057639493520282591295164851517638079692123064803240662701901214554760912190148495402485041410413195037335099663769398262338375068121426275152486314563385095108476695851934881376548695444410035764608610128999217860240640383049891059964010468793212326781694867298197018158989961558287567595275946776514032021739763801545119327443313802953241221660493549556217463681845737909167648947594411976088045076757801711419347819356245760201771926318881465624395275975103466571375863461264269932907327389302181195256211333064000657750952390447472346381364091071001020874885900880680906600372371387285141860567559535850209818522513219481821239652393888175061128357815784189766992849725782069796927433627837420461513735069501672578214390155108942387354965100268560164115598435313150665294623842051874651060930061344345284093348063547541289595103125900081851773587306617360803727378193885860244178416830607104655555613892143246845726834041362832977448937974547201877892782187396469882955926737979366386048303601587378228739133946396458525091135701967158739699404267181339349201045926854339457476390999929165514476449540443647101243858886415625571339635046983455326292861240246585952176282266947239323231511544831165220934322817844188622089490642484348686652603545538892899151514065945389694588651485455315021973592929568616967011892308090079826464895321667361045050457256191032314264119865251003232103965145136708571895492490981248119527046423901673314929598080942387742661711142391687511126325520552347100222380983673307365429810776624401886905273248609123226087215833773364585723695362093927246607505316878739609314169932370641705587587975458702046371077755871748860993515408231305185527005359214891335556882527286384192341712440378117251061317630301595674058134213507703340925332194856258385566341703264245854581186977527598918851130303659516372699919145526193968040990955303372695972607199302811792153511207409628071635971270655513278628139294111202918180197956429393880208607236327543359396276951656052964828661739699211936897391161258016725988890165335110166820559503153702182475975240653733031058977955348153730454640267097688000600110397521599254356107692850515814710882733991713701632467809619272703175904582724518559982590039055761077709873192339992203731753961088978916481460276738630779480825475618700972328540169803319449496581025452084058892662823776501303357883665813418166234253267696650021182970942945650860820564432035297959108011490990674590815695422535381714949409915472266428619201263616158068172302118190774718579395775498639688665245700175669264146866175403839285910053436432289879120909911121923723013051876852708485877837048025502401221684180517605959642025506067645863292363468172179435760812442097361783899874242763749259052258148076624707600113455379053456355852222670342780734136189739211486604089074332065780796016466005362428719843983879987605220711838121760412601279907449431719753300923966366362090113375309265272645670063145078443041481172076704478575534329155524194358628103810584560819804582869017749538664532174516234095291196220735777911539928705317716132467676669134335464645470088330682805591507272554040336524188977808342904783522465876766591537275919038739863593129846141089430598849578285519810855110523716903723991087826510922953419339807245071263337000559298519561894159404289034245543606522247977745188884124405684081750069691938754193888834460193967443586119943029627941673587470843656080671323759781266201626241462492299324970968494932889341710059010451734740092003636809581090887221830122846222844858591725910953436577430884031515117690618581946533400023793129248945317129563771898778739759389985869284619675526012619824020082511423987904502043087801009044819602364407302047922565924615736386954074562074940132123522871004329117647281164588351997139904754429330210472482400749772265917004103325036029858743615875692833580770820094065336771060308989022388551269968421891093115060144331405810502112850425877174976774296860006186121037938458891429324190727440377679534234173139748076494796307151578617088107775920621552040429823611814146937594287079816600902746018764859531609285383010254608914511265363890077241560771947127468859900596665793543502548252558854676377730685164857610432943311961056521317011436123071063780077130279793314387249894722928719991155268516283152349174684012638073855512114661240064878719895449692998301542970987380132657590183808725361956635568119867165903738902753189843134371060821078081562827509316363105862702335266745463523696175530656747752116667709878368606335342489776600774828215886933804940583159309610943878198661068722505672711878061654631752607682761184668461126771285120388112496008666623961524981055785075456186839299199846857555290564011229692950001597206194044439165879952316191603185724905101508507061836398480355942559921027554073366991658190321460888887272074696154924120778411921954764192578589258053938648330022941703079138112101052863192608131824759205833936852575536870604671858021286248822346348235228364765767982506618382719564717525042844854971651842363003938309852712537462114016860460223902832860320348198128161526539131426684981216567668473587426472611670174165484964726904667474517289683366194434776426628591573289410611824143124523713382969203332534066994353592081826772891089215442137419509950491956383527450149122180618696014457670840344541210959185087782070482486009976732972054950056166216867222074295431801287954458051657694852811619826142248832034756143371520979513866099964840640827479492042679114984482998223493311318185000475723824952269715974334681890014600794366331473634106346873647548349763429270204273852151007708568068945179289373272910359199959980075339911958474625388382344542075076622129000783829023320002148038642988734960448392779702407909240976804776046074663111864195338909532531764010398459709456853723317076050964849767223769073360725678224026865609226115564299685510068524470724335591584385237986110041767989741431837675328213426364039353416186640037889046747179266028441061087863041381488978401289547257554225302284014736891077595737225372465775668395982577765435792288106439123484976017106341432826346880968771548003659560349204844616195127972147469282119303890078081304936728758119087084038842528023343657309113750087978210334173481382545293062791366063244515715424599853200649458266728412666773014371525030198159781672008528533851191617152883635399219817591871006463610509100267345078458945908543103980112472710140874642938947445969794244449535552342827845964242397896484717526265798702895106530616039972051021303539858547618067241671867919006208824635271185800119635872663802966278218668234281842315615301727038652147401333951609988994712326527794705175561700771453800747296504970642959176121633701809370681716000047266191834019310761138434468680527161775035023417676509145074977763675357903508523873557148543219873192466261317463951922669761419849501849026588700128041201663060760689821972894565935316169585427850342339835493080016348261193142853821567984859170551512398759455518938018676478186543416960390565492664792647556387495205790157592429098814722529509187907857853679935682835854764717089144305167577263471439231675677567338494636594630915667086624703779977797799090446658865979834711938057526122597915559820598090463366739334906645587567805048442343644483862298220253361280955669640224428381074399303201906438023699303513135567225727744897242296348866182358865588491267735606495172224833469740442534273996302152483847184727206062643489985502611991808245254932334006758937375295799705050703594937074236748700082162432510537876899257652505859786696942426450142530560950278499060836931981509883681955010531771325282983566599091948544308881772017531832429985328015393057124728734019984236391174086057736231400056661325293819847364474216722137701158430987425986519925658919488301328379293586002043459887383002275321508391740172089460980381311665424787319710382542050527559639748956872278850818732547069200612391330181964130603152214723390288554335101761241470880880478821948366928230001799120015128850977170066889127168874867620689681183573912184281512810687990268291414807810845775372080349051705732637668908447886169046423515834361747986291003216092934506048840638569083622301623265194740203452612351985837598016933111849443377372207619483407223867282742905051415615444085795680186977771852274211424142686591264146685803685245738354850932108450281802185985333972799798785123919081927402334170260350711450846529370035635424370664301190770231574746142471167345286635193536309153225100190658968607246966130073565603276047861910451968770898906458173060874379519386882175028366508401208533671028657915676673291601277504792397635549249052592244845963999262619168034748072041329944111231414369190095966857484591950896998611770479621636456585880858880040517257390705229356063616650752882585059182359771542841446210653779318468397558373001576863634045384281555425312833447249038043675503419521968630052594436010176029484189801581282230231450246666765926987854452722858389006213089980940116852311209767254455358334316383171967106983208206552343396506324394604857033470338841861532866976351978334499522114645811651779405535169745945961220082928093518167022632437550862960126799462290507927387657397152524230886103394595998395920252518365413164179525564692793187329744695418591685531567618356851551200837944910647627252544162853804238590155481955577417309394961440584082644237762519021815776149030586863604547776243928639800270226904513920344220294345854322888528037977744867737344043974748128208908398476980035051619275578359923957078392823193862130480906584084940058912220147580448076172925354280778849932100203089508644121037380192339088856485469873781177554702531636464050493241778918596305742285914554555280601894872044008188980976989722523089258710178230839173854032611992768829309202265036963856486567433305168817972609746860495441318986264901062445939586567461992616916555022862998227298162900800688198522567848933395358210475911652037053742735151884981857737643235587493001097876894814741411503304408658522955938639145522165533748252399358731027127350623070545888112524478103429795862908343307715457546377794900399232637363068720770075904519759245269985877924480804387292648811011985043834293561595898040297123428416379155748935622682299287695287100516236572798235986498480018822490466091142290075099032913002876352597577781651141375568207008077399952649131282349802994835363133945703270087411999234927411947200646451256839383823834534751843296999654082153114995513299528262473729681025601119165783453736053857103963296127709186809107253532672715411171318397346413203213771202232964428039653785819232783894025686911413559185951780963691211086629334488047905772802220504227867575551848073217528587085643340602732683184847761830665771264483069575163336939478928833640721987833795951254244816102251317878922263522725756872889119444353132184197850028628480934676973107215731381175080812911781600052623426844716064319986913181137447541914845444115318276562198314493244097618958800242434499718308932526730897220573479899294448934999935007767900894249274580372562226185138872610783431504804268579613910981918285770031763570662556731441799994167054628749723211914364536910092710683758874580693889674466587115607714396684023082564342383312554898378694957386430920604556760393917970940056503040592310026160671601990951960475183330464456512547428927092635975651686319022016256155946020940714692848243108835913623457203809939212387365984842421258463640801556277313799113586530497459841201974081474799463504005842178647279235300653814578692819410781911922131029710370224235583225117395925626292181890506139733693699622627260606126698168512804542183334980843716460957099110920400477277917098822048638834774594167485828944070320496916652398516638227881752561446461208058170415233471311162837295732859360893660047224229529551732165585737154345039029045292615956133652674098448184317508749379743906659760758625520264160447188588433581136542152014016323670787815118563647089308666145132096323352923296840005266359785993554565653363637512677636137616051892396731397084936184149648024442254888719153509797392441637187799384095818929323380845164688923752811839191920029029300470258249865095949570501361542704597043463660488310957253632994904324644166754435741347405962905459710525241180356521274400723127966860364502829364040395660264044335056791297702649707379959681107277903825770666825752807719690665671355721297779067661615934247619652769370618567640335849519381837295175855442814014950932550043746427147690822182625028766019464149792825575285955757535111805421117955660876105504653366384760643706979452686720988802344141022878280813790633438513150111142687048069776909580621047701239886764247864600575748855934432150852507872290003065691354075339017772920359463715297317806457778850517099709837982462917192366351492094469251635623956717360894163109055413776773375495551313169676521991822254840551696760830014579757715938962171725311462394312436692399092761101444936577681223791724095725175682931946120098575828239097081925439179737695715982040368422837581878929352527121567779036118644720400154656807325401258884192647659733155002852820054658213472224075909207508446774994515846196077905476488229884479014974971518021874462106419972850651872371755845793871129261487199564639900548567100208757656875281922612372833209871646982567964688294751736188071143339847010755852179092501031308591178003236428587634560727116662701548897727656888478344151233790050570639367139922237715716909997544780110282048616050923188528905392486955570162124008151068101965274186054983823830207234818664718282005637021431540107798003512331243642496876298084766504638300586675779135901135148193561335376726494131140070467278298507295404693043100319894334514974556108458361296953682563727115260987861518323460906535228552528864910725286433947579081586137032281276801143782865841866955689469306551389723753340901177724553207383645310540344646952894377270345066478905498915272287110921114785584020155001866493527247812202304193240590951431688303223993371615443166393314545713330735891235040443078109226460222740093106235885008760769816406613112815993291490109209426708041728690560404449424516148673237545225635009520139678921553854985613598364319257219804633203331629452015341306536493677375514687845219658788629382922355290093546298704910297108291813577910853599454671639945270656887943444393435921947258241263279457017140951968835610875586633752230844243884400136446761710478419254638506508125031674811232923422506602844657741761272325790049494219908489065125204518238943050999184412591383406466455417291248486909731139690216800331329355293999470087616537628849832667010021159091561375489473730102132311899849360604716201429526089703635079476605690882789542828383734821371273069893349394395033120565671652149242220026867582930233333706494360622532587797894409146260563096944982076413289621392198493095306028043849324916948065064591752356980450811580703546082363008643825995378733831753212648521582496464768028947781254344758635319737459526268481390060368987436276028760289851572329840167305287090057990628647179143852712746549626844950684222812291386579441510182251856554433851251253219091862524434180574381510697342042284530110578512518174141199091028201936619157296011971773546081906765256711094761479858395476780185570158638968905987610573479448376817113523105980141549749298478012878722776327307135073112272844220940628945378910664255218067516901522640327952625019876302006722831372106450540787717509430779067056863772238271511419848591842438170808654599748166356596655104662031416235220611529313025517394344858042149875454617942694674508757713763874171573446269033906568563677212312380080028649243955270666773835870679432959119800297564725188485102847940922844753622980555420033923153831425123329986348861634191778268082011130650008564856972697711241465339195602135943262978414773007926364103521340691920845757747288577331443507721025284279243985194870875730081923670232263332139101851841353306351094305557262762945848443819628288715985603723027126435218251360973454082583432685458036837818587079699501999258673532192708057285864887031095513962173324680374757873526146533315987142537803623839577152573636046070776630143525323918965220967743074418742223191491267548830731468733925240806593319917659951310246645933676818044104565889465380149595723984217162168228856875834593487416715319781887141302772335162932949067382369880121729314609804164159656958681138404218800158636683918622606668654783074102862496114039472530981868038569894825425620455609633655024319759524206901327409905763973396605667958363778792840318346901803664141683319532069368544670534381999158856256265810289122495057290075364007517198390729435265069901197481667858784096191569946859530820104763029218453971365813646470020738446947465013431660606535518170716346997544218596819722155467929969193605858598232044223588608812600926370445453427084171346870649711657873519557131854823522579858751133917932447481596429742857088785070609965128955473194409112605562892148981683793018971024878064660289286769497909944110030090875290933742542200098900452966711887691304597070831156408398015452311549945945628583684895849875338460136957129067325970224039582170617420020899784932819246617295901935807854513850509857639871319864967453569156845016152700853511821508803025471583598877288827044229484864977204549544863730438474136721038002439646928684664760638366546726058718899337132101764079963841026608998483370078920044467071023255365035849475558308141310732402512470447052288533986936384835909472754900787529541948068090743142751313757017418787880525295992158656601613878006313509550634455013593107025125545890123114238295975890848002001298821616738797150953260966271169501255320612972199887231915366427899397298670532721480254374827464297069018531362464037888689085380265054562876608841559838570789311239776538079065111722939102605817934261785542523994723833883378600817552932695777419627620503857542217528666546181630005224743099526789769385316939108399307511902571158752665588197285205019617609240291049544755806700214803949058019105538635206738689353040488312355222491641120095468791163243711385685938641606153795822595723180587328378361283713741734186675179792543000730800499205862635933967110156711892643902119998597008755234241626489310566515807387429728356154463389805708811188189925684528087416434363699803707964408485990360029909135452599857647210679247594659330023523510125902292388171998839305737703623620627014579004624624976105719604942938364090086074249568605130896255974994957506943097550042460039033871870798104217573459576358766982609766862315276088046896989792075606533205320214226305713088331923911325653787870996772018730457699674782834919468111419523108015252617526212527508384449889990313568820484399559908155867404672885361850006785498490670863074532346169149646380877509450573704998001187685496654035227167387840551443980062339291851478624172096999189745883069647157336689416918650264685113459716998775699065945266874621618540240219955583863268165205245944690518266280235010375318186958708014948725944906914594059151895757924734233503784936272961241875425365234263612582629420314437143959522071917255009538403155225006869211821077361955243587737878216293271144152472301104076331078108743356139977965394221280050745463034572959264557605700817758321900915996334993387532518369110574703051170625460278335251860794862862324537756728772642010813870422047945008337279068463647222081672417633324223876782987170799591062912946650027081195781041385471404085581841707559158813212677896513346008745383832758365654989426468437556442354747498154274250134137733224686649980723997827188735444062101442173983763423977585130344242699586258733449813458309897544480408713122233747680777576026948311569801260950976796092027209974639213447472131927510603473367771508371792820937801655070383756843196830917140603709388037457290737601149066045946113279556846759964445442884718472389354836647616998740962856344828081282863125649695388151052792732155769326738605891498728411143392650741625029395920463315430156070840038661185722571007272190306755642698413053485344384733700948705392975385365576710358299818290909262319631349142590560578948738572998849843588312507800788512375197995944407013328843375805092632719611636657103259015451095709920634724623349255299195271183774046229726444797159932950200763546345648714547282697051453764669434756773938800813146155684906320706607913649604041209479098613875875676576406035742570400842562057830005780974190194193462997758179402320226686368459157622148739014405121636149734759187770208436174792837037323122893795001812449857698637262295748571726726765530924749645155934830029143297138879033723283913724645861045453000572818193459627334144332938651510353500822821956612269910721839041058239736091069843935564709258715394297306074766558216955635014280174802192274865578255771260497129199658277528729344069927763483820656085519785034285607070823265557580149373905268677716414702707473084974959274843589756794842846821776618760023176742203339526716442839324728128990567853427768491225484084216739754226331041084344086540768847288539757974285780845916351116019741936226872522663930574661454125885121517582132319912159612556175873791435923407861681052740962408950996756785160501214296362828091760028067100667049508537663385229699055904434718879162710439814227210229534564331493111627002065020087394317130359850451198793085729648305981518908598086357978392110211346914065667055401182776006255719856686840491877959683938787579939454825344509851251586673689356464292857956021919228454655896100181452992043005824962296159696598714199176805888778081361356149001425359209943304520656923256309740364209114054623615108665923032449367689438326073892712144766414031529214873789105993650524376148096564497959416837085561798692295063624009192548704372740863589501996864531646650596122078069514071352852569329662750930018703619800153519304982574239955760233427594709631799300869007079641043733095829296387043079444274741413365920806353454641160040770481215074580406201915683576063963853017396567110912150133725358511172875450190652556961450651331651347307615053750103066507531597345264746081304455440493411233673513070921240188507543670210212447920991986276574194883119785637772549834254526087081882801226301198222487569921373449910173433012412297963414152724179912564299856460011822072949127476446882692147986483288810910703553206235685749683238429445613400555764927792502383807557755709682945812072089079153809090372760089670279933333045646229871650777169482612032391989831371849490704097843278586687093066057528420556490501464807066728713979229198907847630683207427652965747871131622290667414414472600975021423568687701029931823490842333826432548328598286136497255464262023461727858164958267212181250187226807391052849833847332487339669915493809489235681674809622543825098417733578317033991318461901536087859188640002811032223126500316736171263371842337234628749898259533669317304695539119120123488559438883022856083332917321458062257471705255129616277982822467200223525803638252356955395107648164527248876807634532190106327932187039958709288903264060373937050911907979412984635727579979876343495605192739909612983686404874786863077823277951946874094850449735136677544946718775553976658725261397099082232333174187330758416880324571995302361311260081678909920840257380080293340557552135143574422780833833996906550794378679947527158889101833255445777740521961743299064084448686198074546030864487549004553582596601943601933768086767711624082216403507398980909139073683727289109252454855186815922538982301414375708748836567359608780525983201089001876091262647473518947087056179365167182826575865203469424836360057566754744735795417432177197295645220005568946490723027979881068358877529038969074220604427295137948146034017600661383856240230519581501515441286823293979651316351449979306984059664525555502749314941367089887354585929801358430796188189855720762414115359433939797476944984469990453691324770993033735534201342099132565918174169954988976570142792921358352894726581276964602802274020462256361861005140092970136847247356208529213186347566536879652895020129935940124035606785689567544747813644711540702233853383515803644630431414891740094935214273286417113937807336713968758314377769795879397741661050159499211236927216799164704793272433475372228124519912959234802763575154045342798920770471143086532366111480298119005123419975769907667602770321388311946192155429751861725378683548467174316411941534032097747326277366385123698864340003720234497150225282794720455655464138005914133928164908528044391817264127283974962408010737483747659897376646956477502771554943652226445627148868990323254787271328619740677300336361800280616410591759556039925603983222801989824688300883917307709616843475435383949343204231822583683577145201280230168178623243555276102336598468275655200463804235377505313271012718492099929476201962147896907681608674532956677136616678537184459332377548183813419700545212243414608649179818446190468069172827804428071096040309453032252215892852529743702820970687353137968439453178253930043289680644853266004029877363567124889953893042093510569881432650864068704255502293695316809777110878986583631522663057194199188008702795304051869726986974657500120972326961718724695812001089449189776468797672734283658766561822066438541628382759683053078920100291509250147405863015930672537268972395502723175219539754882315514614109469803542605826965545681103025061919930551315789512945111112009168241408041542325918175416536339311837393725027353340895812053138486128365342084780471880794169095569521000755773669582240126676238294197965462677447306421161623354553982847060616955620849135623715877589954328853888621516315647112079316505396912942551943236582829180599209405152321089324909659398866788420787064294144703088988456206042461895271879305186129877322714567777540583145311589364163088511196103984615356494137459881468257930205042924907008483277400869701682227316945831534205490410593527913202086537532840012975538217077349951843471862939321906540072837751262070777235628019218234053021771211281320333377067167353809574650338327532206257246926023513943199536074148882257909412760032526617387141966629574493524928215582588356240330716799838324549466956412656903990922838872501109831941331827138375814944407551182543150375475696535500675447895281931646272176542451530660324973398725559998710933858218244805374286327115168796061537202263262530944587466589238470327555531627418102775394029852803124390845782067443596758404774729277688733545445604552111942363588125727611559502726227969777177067355168445852287587366635299262402807829828870354290305084540848529430489627179082695872071486841155971820235059203116724239684991012476411457305854891857745752986917674422738278701387636242443086286602626481596832779218632461510389479927255210539725714267249671087100145506804745764889025187079789557065531049212755954320321108111993186961360923884690673462055712183226947951764701798699942704839846830279504162818800105409699253708596680375990858958789843541742168704406671352405954723622780814658338355301062032638492846355344012645181361162091425601116761557482791502080454546664454460560826063834631359120579852066329198176951490844409370507880554025855693846527209286144585067288530064167866422058298763429798683967038503067934393390448677393193239263044912188103928416539227489167625752084248189289738151150360073921674057507120825431808027491507401103478928544265584504018508298297676392172598949373450553998720220464389488686565496241774998894537133540489623254330118614100671669442569094890183285883424718946415477881269227755599455545057840900955103794580574483266675709777830238492880624031687628562698244960213711726560967226484936421769255576158852456764700329686795529543024639840559759541513485466543398437848249556315852037685858036254741458021357311588619977169532273822675058654515264943404149572436029740004910366292671433462930188519357298396198056469389122529354697067728340631305924493855179247141513676714382060808344496895089106418996470319924890720095056210874564026199356906491439092708144171348283501597547769675443823399012596384163787565780016403604869081898778633212230810918730302205689401017619643662913853202815807520857581510593575488725255581753004235134411707873916028756401895932965654525368665478087953599120757855959795666598350453820426823428422876760986487983267965814460347882824857244742157217933045592356741513382940401344581029890093752244291252101147049191513098144192456117419092874105636935322393772831948254216323262827212173997690377001507623308516642809071668983495970525335845440218905328166209047033590311919126817135798008885675213525927393585574004684657578327324796502372492603668886273682051509274609760221067795739494490482850823770514112847964432018070060543518615939596787875653353047600701087671676958354970852195600327336484217401374409167187803721568599073189827433135031965864521990489012314803756159653260437569265688548881742954953619283759086292546459103863386072466667295911656807452388074846686797517959423769223020180504671198705949983350154615599003456305723101935748916474758292476446304893089287110590869335619814608390988086494380782582660645003634393942829099667730432857410760398936751431735146643188910711779517902125854042970005470217292499081560974568630311963524440612703787689103442645204007698637617936526414865149089471509122147315863239386448014084932699358871215358697858514502296555080642927914033619305050792003905064635479635598598551264970575689589318276034763732677808029171235069748513436794274876822128516111400555030350597945270749651349914197862972700362343913184638542140067436901335469608947779958213865810704247739701776540233309737559998240939676150704972459105968586404735571566323991265607690345258546151460906425964260431587282482773673186571361626722998721545825523843562006280742427899287495321842993017048344810923688306480602045132131716407028502054471488246517725155843899355794085228476309072178287376599687115165497658649572813335875832693671410266059430124334721900681743362678221254120353266040240663643367261773709077107206547946194494338098357092112761900822158617759515594279058505484511216522648757697887208210475128438239009107810033438525098619006846904340704438495280196978843484778885287449411292736757827468311815973750987405476293583977456796114308236060006644462266038642509725772604490026862429071524186102093424530034066418127821032978178888687411224528535506924809204737520337495181513309205051536286734778227162273784963891230286969476086195499617486088862634454013855271219116823229571422962256343357020716641643555320947208293794477831274283969467528215405897786756581908940904099804904611154681083512595322078978156344814390487872495429152467818654864974809816638303081525572638908368267281707496538337200019921610757878079720500342611707446667687584685370419577251018845862634991646848914565399979310635513885749575277321719439764267768276654500635960729869295959128366134522275425725792660373801771012144368816033056749511648381630406676456419210666829782379169107631154440046604722127838389885783064314917853094868287130569285778484681188256940839787103528410188226347678364584857849842674337817640213589403715711158318641205910641300480298551493606049296180736813733432048471020190416463821388646779852373535024288477894597295717035653237281086883802590290474416847724177589719441504603158113960137038185332668463725706827704707328695452490518805901080943735748798623665638687583218064971866141443140267785849608165678838106007774875070960892554161148556735951547607955794663132015164823369977452578735166665793174673504411741081469583181172058359380733496722111342636441719678832970969071659028583798275775667370023858245755764581003801453041032214821277746043771280382878711268974629228058840017469444810896434589023474798192740187345379365220319036310518754537981760836960517624011013367502336336996704393432827306731915096406009005640279853746628597162219729890732113454448359257045544695199240274769420945869540672096859667527929755455558697140104646777295338249208915340492729595553486630262289332683932773924285725015113068698145769038394655614987814275489777392112046524242887225846044216591645782701887650253475332814793359419829841138880764777045789584759477816474754469334166559681732413810279706869972826525747508508792575475126752486698757159389951671074696839685979299272068903330463370038504528933791540186977890566295649821423244907319547911481271812828881607933700021022603058490909066164479165590382067912416866516473974858439815374441183471430857984584798444950659814578904445066048406841841603777729489722453681086342616521915958748901059171718157966615915990233031055508109999325439988011085345545940277331465601036381682427494261044914817105268037818840169749780354124924659365606620334088906065179681116343711747498680027685763305361264462922747756869817059384870913115994606330604137790099638208596595211554838409333123336304475615559226765648032661261050256893251238958398839281279442962115897253606734706424038791738729994079102607454910522706985855609551198343694175123206967403582323694669093745922543862707304820648398814991015188844936646206461577633973280345519633945494415763738413488939760565197309461208286263159377455114024289311529563944331481503089150799408632665908805691534039039964601793087772584475745625373024114179959060797097031377690899659932159570554634031997022003538765889371341518170169146187904159828371663783533229422350967669111872415157314120580750943776757740824662477597916965375136265818719050230554628166586078289783045140963734788897920315555915940455225506218658481884398780988909229705558245963342671038490624807401524484282624725549413744718544957735743976393850771633828781813028121592002051468701477971731950049570574519973749736080694955681257946717745820983810183586415094896272803491375583350948487250519410712003496418831834758863058565332066342252378577557445408156638076922787228342995086381513966381706135685520009449993890007662124353621594331381010196774392008901953133639881436373326120582011106964627830880147117814212815344966823525418528575357321200671353105923249019172513803418097869680764202358264183877867719942297454687363965722078620949114239302512755809435040921440900680614116086553792613395196015528154106792733119724477226721812886349341498371314545106504658859532791022880084066413256906162539586889026326295119500932526489934482527827724123678856254872121058232878759603598658041849061950042353651861315893447775836253028504290572919677820961141847152775392812373266280738952107987550591431944852533406172480609965731601166674584534784338125445290650148625782896783641284103742162844808868508199082345905153284584277150917058216949142570335020843760809787453471344463969580656308189745999432350255156804314649496417394534211407917418430494854452926697820717177050776647798157732105964120036724290289067789273918364045343887074063601333389045525269714103869651327709039034244374933705697490576717643804252712970211545165756840087471698886942207669460219325000387452225042709231735052812419000650407346645594826947826736158903936196187801464933958186400059311023791201272053518906693110529611478241917536093592657671099445993536273861567233512830949431679736116532558460147367586516326208168924863686477450519213370224282975928805185914055683889938249680401743551498531881140277465555635330412787213530986491475454437325117472524064495589891041797507547380966316988142139246064523524013146743541695475836833958183746595109308627898773415480574053067805553951354888657409065896605628844811380301475679773628345596003211394079760693358316899321365295698832668940239751860218540114028714988482272754002297522704397418185529979819491245186706612378418629237669330094588149491056547981692637795464082939638616910992573815418989739105513468517557979456748596616512378847464536316333056157555112000050592738004440377522871740432704548138915398013422405018615587091259581259585798162649327275101148481616773603531266420998545190561149146778820256155419522971670774672013795123828939189970247154903037030263760857933328060553252055514624661702409660149755763541297489860713084700199744005863740347486012948468507838886779711339439564954013882011777290891593690471033201557297001199855535024254223126689427477091557716085901720984371952161709580919214123210126695822912170000907892723508437944599351777801839131377342113735971738210574244052942916384914094832980305387037696099505642523938121722833095192564428407922752014957509038783818136207203560638761565814806736148513384646605509444949658662065556403419832384139542507967666407647167881057796255569708425724499330568520383189219773701873251539830606011576735810669076850285158444020477397114901458586061329346797291947470726960855863046726221936844188749057383265837156848323439824924980606973027576036879150261482865265247162130375246424738324224605311940699380083011620778091751265515906772876119076462535065752018376326016675350020408162757030003374592794426595600123263562033463508082661790780652899905435934757646631032662009255594285930323836981868047664653179046654423689503380502866036289580056735245299817989119110982819216327559620666581264156141951898550804391034787766405417696374916677119908120181499319374886168625425434730100660803633414478523841410231301736746058484703836610968975021610488390507791505575543128203286692777837735826532249105102603249818327943608855820166639399967329477576460846402916318552107711946165059540119024442879638091211411011897372570088867189487973723399869906984189396350806605355616496239677621394872618705275081827876439401035651811009823802873772346558022536806470126584000142809757516185792104501369022069440082802950182607803040964243224808967387278368411186318470368557292608819654282846751585582520373457555132751500841781116123409263850004044056124764573637198955341748932783952698642510676823449745229883151927134101979374445514941568680352041573179593160176124236934482388229098206397484307708964742396866178588975078494438576606572184145865705061418735527549988824490566620404487477851275621883363423251587166420121615992991323206075983963828426838945854711071171784488710171333987327405248520593708227665575790471582683706749790646211287081058173782360020058950618778704649036262873578917045345709698004193667566756700232344181856618568748817979170476597768227797651486204466640926582667599828061945872752831921394925185615759952257662852989312522682703426276116614751433879010474392223931032516916276029927525334432243301920646665913966232807550125004093079312021090250287419806902078459077150548284052771128649864596818192195042270096186198443548923384472498795701686671384632889218986246865609049439115218335160098092124046586298895439562341465190738023579482616344877741064800262378474943158669989949457618275783185977402458687770932262516653530672408400241560018472810233878899435054411883412229852105324866751037869137177490705065552112327872608551221054023792406952589847145197563358258921893621769113651509469905187431737395561190373877420210827442551702850906365611501505659267721571693655991418724951021474715768484121361853594253995237880037038916803573024332192723023703488040192608929065755770252240672194024002754723782789665860717042866438138492149231264695815544455185704767201903667968053862805128438111104861118292407411390864435715256871768885343047300119455456502849593046047702956131719944606906942743044555566184130861090448421983460462581944418143837603825799234292467095198695408979413214192747537266603750448761476626516260246657213303894252073910344223861126593815335185758290482241568692834953791315068691588572214237293483620756776677630528319888226445404327900839507865568430175556836297260529099337980049641513475976045349142614776651254627758698696091576692045668297256967826409554513687170746536059521316096804664146679717810896397996949432353637018448126939879523528961535905798198262151342735293613963767995487426352674482011536918468356038973425177252266903449644167290883727410883161457558499561542197588518147392412252729843190173725908322749807712821443686080255969603864182913690199534090972516936482136965898694196017104728315604677655969983294193636340132946496516476509550956632988183076568074128428872785636977588285902714048222797545967832026808741266599147339112577824343584230549556804735798309126646534322555430136989703581930897270587908940306027965813481499529873932192868903192015758640561868657423395630028202229150270916331344431059443141557358515927467445859481028707513261912434239019896324048071987645016104854436625716875531344303243782795812116597443196156562655432083378633000530864579256910860361036684922309812022536887364145850587430290643859934658947506624217020991793266321990872048760229725532328203906833823708994162729126542994463567024402702837491928856928484172660240632301073942434104639003460804409529693999332098180674094259206647108766991667215335124932575264775354481497171806073159438356241358561007789706382765611061904334981059471789664566760182605894267816800147847526247378357687736052950961173375056346535638086726096286045579988144606138552635656050593235698467268276969950873661165768658396887240344387451742233743819900099833351607534476875111436727159894000056391855966203050959895851730283053267269085453634780263351395046227107028540611661858900863327481898923864333194343141772140462855683540438620117589726201412473210566548762955949034305177687085443868135341712427969212385055591870296259260180698778679357692171826262173058851831466959310996326483864004283313252670757479166938451134894753658074415952751574149657245450110378587503523318736455088110879942608529432413973228685909703395878469434139792455227298736963431892107412728706902586777180614235173861932457126977508243451893162985787028905767466084790754262492664546738565424476847573591622531664350268557577656557446267752670202546922963570088230682348290744357286975558918491776163235913826654366823192163745060616847758631310878164064505733813099813346326871967819610004327577024802211961856578400915513280124324870960720045281486862768336149117714380067479659540291745219354309925575304906566298861235508696744360596451255763100401749425783299338477849782678073919815440307041048922176302216813300041678415185704263183143363907549014455161337655531954942927779502142304990085415466566565214622597968570827312933449406444174486349994741647198676776033390679190870677461843829498973111854324871339696055273286789722546310011968367849576041871080697083999034605173942468597455976904955719045982835447964088290208494345434079452397547152995995470309627258800516143174375512046530595996784824837286275803001938983827987433259792805799925925568314008688508922790914597977765810473214180651274184314653077625107194597755752766360699363841403904865833309261910458623473063391661197752131682100020220342116373342765757702044094427548454102427065944622404343546446411909206253192147553515844948593630760354195733171114084477009227740712670089824318384287784191865933251758208431192612398095188433932034010637927723391614943800455679159176536902784991284373129587052027397899980080929059262510079421696751251307854643416617383179328025148120803352197630197108992803996475270202137520709177550245278426625617112536489514947643218086174100330297205697568349490804987127021287538220194624251411437457668131783867367500583512784890654510848285037424542043042449576845781557352701052972795569873111404932644100195296150377718254396686766076690387577204597008274346725507084532565808792347847331541895520331547516514114896421283335859768334543255803854410861139592658289828596100917816686510927005589041121306344380752229643955163411741579144432163250528797018522447513268677974081149118563275276269794006138322210616709435916801779767603221018176178974711159510242555820660467738073701241005673959350113104435793203132120882553015698227669206696208257464589916648993298855655488083373613830098459182399270955166048653693088570697353555284304112407701446626219800309827851392302204352592357347500451709668359899721250930221108613292623041875579995811651325652121203119663533128949223560849998803464652200389247800484659547759491457956983523125757474277766792691202450767112883688098527397571009927561498194119960316370782973880264589994316263707089994230819287046758363136092805602610125185209722175299851721639216913238616014356981048542698497806336221173309583526803701594149790557670489205479721730650561227698989929759958857085580599276131674519376674323921993060751019962281767350400876648141571033150370088795382141670481696955636534992597753150826575567473307963296808528777900526350707456734664749555136746527914071538526314717833328098127255587562165461593072895433169953099946551577395767152405082068298795839624405030575442369710724675772150641955457679528392136678191402501078851466134055064277230890973041573258921236641826065263962222300167915755449644640228406667625147556666707003643887130555283739900983758412919379712436936359084704178772079650071213961697750368787017943777369829272041669023162305549253779894653672704475147303614190475877283732011484241481835444192539378208581489858632907314236628834825999847298657429012327568009316300500101742387256409754968284927997351692193820230057188474044076943012432942342370808772699017283157417575411899300905138374269366351882589941077792661736800204244133298606261825891740560119827277389700575656543285988419903212628654615786695339363849448153570768158398503159930287925515663870240022761222046373560825122625969077926273863266742419262370866530437611219411031633795179301683556670757534400320517538928052131640493516891353352659157380733445399334436569595905086415642858747838380357886427683072320746644565051832190256961248069890542147368428547408643971632476440679272831933470216649928024441298634515738464718694560496941693101993612553724757551428752670379373970678397920242325582278358579143767791039879810569976982672057197782718157864109496135312536788922745246594962855768729249029786385616387095147909372228228414927678022058858600976200279410296697906337872166589868381678855365386044360038410558877392732296848087037118666436712648826098148838282833610859980128817351779266024590246415381891311949328452127452209351017604680187976400594139212136167843719433634651493952368535806547572217953922974766339424003288302141768403214561807051229817401022517268095217679135222947801389560627104480082343236174814670793445856898301037959439859759846140943385604369981392709105154897127097726658186974038089142867945646746797581998441550894206391438817937310348710073996213938896077694329615922146356233896569899079009187961417230134162940198840427098665327260067937704094786280548192406513487385591896807272119838180272070553213335216588326005383504163311730580422440526170590059882261894165482797522043511879154313228394396791279922108676681474887786659076058351474180467623485853937055182606112942005090714152854044246444800527340054861502393130848785876252781768429993282662769196128406962227014792866186901762713901054392924171655527871701220772748887350719476916743857298371942788133939186115905490447134583173963814739834825348857011401481034885142347041041752957540851595489901725151176995877736928257817035101888319950048082752765848357785230044994597259375543914434787841100459465075263259641845890663711594490155958376080568861229120721008636486895739985892190814358088356893319466644000898297413875637784021789244763009012084501739727076327056363212228442039930288566207586575668908095426037136571219051639662853327077567413586291316796776150084447007560382926298648307457129271126727176412340149721512087936917159953911237827081490677153202895001157339754255074522112897533410987504687704553956016855921969726373421948953919414248091080203588735791260557046202421936398518090064600373741540907265670276807893208208203732094570434324415551156039324307691248501880771156046565150722646465527247283058434860240905015895935903897260501797543576345597408028331766972562472614887398342259870130972476813012348985234856610199193584928551358205999037105528796729879870821063959611343021318479000931299489219152521276002805709341475591602733199519652461922347731976829356277603920061487496793466089552849830547161617620021205796343011740647731123470780663211312331788409215542971975972505958520145749986850988480088448859860327763803593007286535173646102546719848976952171262890752996685411291221778655662168591662930101803120527124409229274998957996980790079066280558657263777812472083000090421688265674045241926638436316853894740123709161205090164064448168747616269080273296140003688037781188344974344475628913157889514184370786688671932018116460300456028047744446908453272437082537056025197290232777701942193776921924668073948990513592762945517876509736408041415585283219133992336019080418360192317377844614784862274881542368351267290300823385455517210539620172927860697024551697430068509373324413980439846464597114740793798473146812582626568411476131295753700478149037749900439170406905959944142859936701121005068572800784564402428805254624248383084555470455386975846495961168745862168165179539316991089797899593864906438477540408589930728087082663962182363265100122064107038361359646909161376309063631111162642166223179522376283991558245457630309806836509936906851165174016384833494785728276744175442534378890945262558122357818278665831472710030642819047312644202403629398970189889484769158033567465436710786210773924678454212180501258138356569855493666640983463516760529749199838209341972487819068531319523949830919496952270506483706761367523240891557982481694272934268371039719224041164929370512365284236047177409184260357016649782239544726421486890717099564242684177943647488912447639188539553266965041929746828031855138339500239530311984859676860171767564695422956018842841003742848321525541537784031679670281025805136043601063951848153302578951712000926649569340436627528813464467347217088210247914280689993827880636906753805019052817684524718286355756521270398396042514005497752178059323444714901360541490734437165345979088957917642813820372121874373766402756628940733697572691936982931844276915760244660629777940056448634705617662926498396713090162948689618307350374578538357721854465734282463382588716287616438617350887869200499695093889353517841428155997736409796400444718105440062382608605723331284794559413461853448599224067466184272340928775451432740714637734392105958737951433361497919338530147348351066879926349275571910859778036400858228822125918870005876861948485155933016798820717849580308259849581113731187578058210127496129123065954696339757675963829225238397361996893399241038560186713214752267219436658466765487567546474910606833255490386658557025507341596522926280488803424533048742182546770957105783794335533585998745643659258520639006476206081194693453840301196700609199110744428824492846216571456068609806202326235037316675996576088249555990167714224725123774340492536646813832176978646930972647630927436356271475519892822274294347682004923044161204461106689416192378216828121381739770260874331769178006233433768088906091929039372426902221624429622275153470536964599005505416422517226912427743885945195755506815209385815487415784118519362095615349000384250025502705932279699819435214833733507997964880729671501809271246635361883823440409896409174054929761794268421831707681894533062217522836719761546478388350950526259726513730101075689150859745032584559195338008449652398875231258496190935827423763916673213390068415129232100333038827634104378599859780813393530750785995892143839492713524249793660665669417259583959280130790327369910145092131527166564961370389336223756839559186512313697319030148510333584454364724381577841849702708705559707671783496372055148648420881801487383916248231547673064479261669100431289160249850536883071681122859320925834759927086082993749239675840982308996300633942265995175527591894615351713542274949170477632267145301749370345195708154120279737930099170806765249797400401174949652738245222969086365179187580551486820779084765407033029278425090313764441031547134677304584755897049139946494456305720767873031929829636139829836837600931564500160151189044022599441337928928525890873795338513702625283711877749636862711772345200496905982955191745018467686360337306105578937703652750965376633094253466249166596470444318143721707544528929062034631359224846975027905288372190455804184058514920938161472910210522383222154119890636077243482440944502177438380601497530313028927836810869977807332687786867415500047633541481191955376035484316077838994784218049565142508401379292779326202482159068399488463177640900485691216568525601321837698076481412619294087715637243007569246207346034661213036658678524893159774143013525981645219306379871783004198954943897998349847846351154462540804381610152242851570183537903304228245665949745920411300059355598032890843885761954973978924363423236637111930576528585936908870472032330370881875923548492758945514844413146073977778125943723166483559298777677732605567315005741180971354800006181456165147431661648194324122092157428664921421711516090676123175107764033322382946090534371318266300831280726873435065240657384447286736086627783162855256862446325378007381925661779577596463750884173132006006346026284629613533097478238369243760626618133800554865132913155310077637563807533007329259064616029588903242041609554473774998193520360287724590316230840404740036692171005090801931124115047260384091449957056713225449174038274388671693529971455949504345770062144794812611159993243987402817291509431897349674265388159268791065459552871070414409864723674377578725149902117605469062734021573020807299562351552668407740747430517242384764773410092250799981901769315825518028575245352943745979087013361927135073591145431531235277612813543826288113443656772662546098773827203904900850608833588104443724337861239768522700005009227758717634966668182881724357300234684995156300193606869166925703211697626294400083848609064040677616893454055725963407190585870176217191484867902759892392793826669821803426984650597949956689403653389979243061673542928372784212198697012619058483341599436521870594128812215736810919606233621332445812216360655715213548044465740758799933270833098768067865529630900454345894187818027608820682380251996462389018903039150091895940083726579078466928216647630660489409661835807960790613055338639760319575955993372202558293580848918730965340498878236404657180628529846454658624057488376530828843349204899452591814301202650968197503182630743317212086197498833293269821116064476826165424402844877999210841986313091137983284324216374500984490300536128802012838233313933811128156492691228119332010872136428057436708894832339414080286442691757298265407453746122246551263288346776487670999017511877103720236154354997317202395151571497485621671114563526450475084757618203437099428976032384156443689230682507013107805547396711325614794118106806692506232328741067830482202745896673093770478825649276256208238523277994160269014182683953094964017732724838973724225521589320033185487217940169230452481090590583374606174200872651062058217326496569274978863023090390629364287200304265801727895374947291270128269922475552959090820476435594886943546991141167174495011518600419517172634433031803548188974745452292077882926526623846197018869619145022200989928680017493644776892954313084546744303197258453965950310812034601856517296396977785615161989718034651089990395088234651350773774225793266396062285231750418250013108653692019088266530764560274625029768737694667738361376781368147130544654944409787296342231323001106958452391686423101390276317111722411925264789793712074559761798336537952527755420231532470139255291241351682886436161946609550703407003533624404091849702116894572500391112695737695424284782991940581211853025932514506870381872210638706899621899866280445458196690035712256095482368380515182541597583308496990180832316869472795456050309432000783726685427930338405732305605975455472018773286219604186885349979497269229556564703192670663234341324199787976740576442281827291683841827333772733998230170519812606563386469647967440940712878236052962046006845193052087612199763748044639531872007326629351177563787159360293537516677222601085455762267279460839290735731282224145375753512226075930253521742609993990499846362386880685975143664999441379535928356086305037502609708775486120487507038470217779065681712414490584353037258424112519659891448641334221089580028305150047543023664091879293323737892685516179314190599741524490920682058701275174606348328221513456127101898620202105377179957726948933702032838212838194688610866002483313517760203630938807763974982334213799481274873605512300306136980076598622123780220311249057775951998239348445522284669812065542188577228711496568691087663559035295693647158017563398029281781154406026046917981963108168985366747245435170476413402606378112917974334807262809434002644295736023750511462810306906540439905471453786001751045994644501028632689131696143322270804980564690499095998458997119703788880067228977579877453575449870841558251387127384520901274126782760463945232009832356062971071281246879239035186629083913507554665219636744116554474792529462028179264326041802169867663067572261945447736021364283086959532326830341914436765046968231772835704457588740683176216939127805429751893733923428539527446741454859621831144586121356951779621264803718409800453088428673535996871928778904794380493421301245363197216701136248512730721482629168084827277675953634810352377216755639916153571614409464834695879473784626337011351177984547529780915056556026560575394494417181468072966928187010783798763729713822350825826382115835490309853188760008727840714053870375807090134018767544444842759331429406175853993753484461389093449738932612625411767719525367109694759563908093783215430758493605277698341485996510785413488650244771235314470821221304288946198486809791272393281544268583300656195496719006003476398586841000718602099829476898045156760299955912381603083808854816623803930883177394958937907954708710364766189534832990789456979243212608773556089850020770701777425051561127583289351743196831882990560460794461923035417390658232365537356642516485208074860857074258454177988264285752318198784494559547221386472185776133617196693062783864218911378782084080279309390521291426273802646590624558951780661908457244547334226475886922791272336886182153087442677127776690926129930698249191758391313430616394362082033732201487567932141318490820445570290216934341957577173407423398474606223015560698820774882893497751750462192984808293859125833427896387084596794278620427624223654528716034794117760999140699202292271136284608097834966480278326438329173510687557179254033722643675962788610200352811446745933637293512749233357879810476426061936502173765748336122046304434274254995336563073492572466037237077239965060249787182230496125509222348551162165278744969180311533517860585807874209486634131163106149013772646684296186422023177863542428907477615504483281780545720311058550706445227151710407867922925487869317860364168806199676051272842884388165122236818929873791094560434383855083637476419679414906542557583796689890158992406868245545571952314123955645986456588041382546717184434558447298735624432867473484268154775850716643827832665105879156169838588683473835771349991575406561124637532469926529706147410138226965680933309415019312858290705585149260870949474803720915200356565053686916866602514592485212054331694827418806172430783909469169397983097192648573421770051539348840962986811728836962130911290023505687977569431157348168070740035635388258729586226001472747444635926498840755937615305282880450965318429863082089280277909790000757700832131483034559364451540783787555534727285056364091996312766951753032103426478469721913719876529287974736383217836336950667964743612729851816098643876026046909954188508196009174550779962941558314261918168980196352829438978697725722475743029898793597210198260400931410262750630159680660417754985237600845900857013938877333204432541662008986809042620639550399824408616904489949601179415722905102692776897875501139075368155826971595422991423820733993100994316007934593892938306173807381745707626328287848376309380055889672504578389488167928157877018584639091525575873868565850879758340672690232834914158015598035710448754382446913630648050602134200218243870585038116253952339402826055789469307773742783258628973513655026216472134151440533188067996335003703589347069057345397397284867433622756284769076219584135791133514304569287350310811686080138000611529519559480502738249958101585820802737667265163446445828749264847235148101960542861365788149764080352277526361140615944390615654072383198831094324160168835527299026134465531815553889407340949011441935716097126710570680280525316528705669987983150265735505180308898842191950808280813864775803649131774555495760153322027910230678694666506346551950461451352194949962622927132103606927160705182893536229783134535995884005874218427223434230564758128232700186763182563369233763483880635008100280261751466378356303381498301806852665602031287454974571455957064395681994816345459325718713251862155795845302090617648232526462081863634365249293893256975299346193648366671149951081056941845907561266178599281292206907063181233072564927786444342044684207453090219286508977871728647354002718176468468743843457040962165194518811040264989142452904760224296454395216101225107441382279228718092712872668456017636600555441471216333720582681016352915974377530533534665787505453227307736965527305897094409998604734256692303215128598461485666700433625121872822636367770890294064552240281644652403747896070071180067051059381424090162996486443909796079229067965707106515542211214830631828890823859689826212251178102729137280330418060156551624619712921301220714341263357726270259055053075475492872683291858625673448855099431057141668816109425127804802670137928097964285742640238778262543942653809743216480763324720676967249839969365475346433540982795484953563922873815002260310791129627598259589055019106521359734304251996077652092702716282315582890317151958748762948213407054949885834259765090908117833277013063475243814368787425253371985765657990565450907552288844825385178044622523981000186546236439477852663898070127083817091184243498951258343329642665192915870558741982740785057721499392055065414300841449632793132606587777482572767103775565591557632954299757545079715057644728502335498201210575024556992475926813084763476382750812067510997138745342578830767782594021665986608336657563646278435297605548490783646505419905965200737684903384481925880203095865187703476067713692498013874951753336938893482955993600800130770958020212986537097518702401786501625449269048681009611695823840601974001803208460495467490047550514951352378165934902864553896768584352278938539127535235596156926547760913578103142040421508045468698630393155462928040286050084829669495061716468343702464480640571950320142020255641953238330903881513605986775611883021319326572185771630223516657435821158011708533300187202287578213772619946971021859719462968415119732705127846141754460898177455927876030191767496397079724805044725325457751209393001367028899586037885078155116917164507854708795779854130206450775811188456501342456731737227651197693528865242862943919001208284640819805845460854592515426051319525816273512800295083271854404826739081474225941782326317966212343430585581506304022429257776863528255328499806474651173368763271631862847487191065049491248285150006333079707115110379381767130980005932733956540648376709537225259550497405038477600839695338535675926799569946546508899241265357840593041998749493201792433436342258649765017403217524166365646352205836676295089160796777660838328967629469702893724787239175511795102930142311338759136008569472914689514569527434715805936633866036245375337032919619575733400533108103433154403135937921335937601447804427814143224218601520273203367313241523020318663610124809491838708019082832525764559222695402453717061153253064075778275617995966514197173294825679765549457459979314556358643829619707084448232781917820620826173710475463768538747136860952844704978053401487280087460083575530145727742491860437096000487560468632521122725938671829280311859005008690267602212116851209447438011006196387164869823414624199326300585615705691495030201552847618915773675128717316753092125795662008989373864413367736800639473832998226938381178926027638842798659712029906651629163511757654647942653028355219649168233475079037028626163066665879219065436336264886310848047080939618313992502377909339704311056968657415471398788096501022000749897875041470648475730779058529470719198491955572432106989403312696862713017458994799709300635056333344232843765848520687063791617938826857903626187191391097659041501399176500779566943112872842494429097213613720260172306424932233191535166918513274370260449490445556792101421296776435139013105447358670130222519543608802910434937216276447412077050459370671695513813830994605039668800907433293023311674227203966904896653564678819515237779960407941135501622572329870579529629309654956507041958057654209010262928890261898540633409174584697358865017940186849655232958104615933862514164945372133012057213377471899640243958799907697976771224362487321193926506042720463237590236384010878486392916725432938145671621234224118708999568433819504761385632067623880242673107403866898839289427956196730953923992225274754943688074165057477230276192415326841529893462484252977881274847957778687733916813053003772492443344001747553296219409044162414651927280257008486185782075462316839775043671307015683258445115150741877733547495485190324313343571216675096095056895562135857479268263820873272836077220920232311274191384586658599327299553426121798345293917957011588001211223696689959659094378933457201770337555676346251679986133689765844080870971169198645597074623126455907078046990195529029021451106043437007711427454051558269098739869100889626061744247239877952501532450592878554728754157874079730290126268711417001998162024809255655754861783550164872982287783261672138423671101236016268729716522397855712878973640135564229456731567198642860089355300239364948641383973526457831019242922882757652312784216504991742697920407745297553657023789697159236507700304023356156742248381388870818491183200932922197103305622116581630823656538865249968121415242204513948991234524215596235066896029923792951695278667555461766397767900837180246401558322223525965644021292523553431866499098222985681096215242874756757021280894501127252062279377743549931054181123857448836535751808583928518696396570225954840849506123924306176721160849470250418888186018037805702419476540776985016364463479524678875162364542838748515591159059118717704486001421013809017894418735522226836535576579555443877989296100933414230114410983149259797488106892480338963515252399919744825339293719170764557732512848626018634126140777774071416151694132688188417340681106532728444425038840592475212270944813389416771074412470154471950190892641911021684513165820146876918555598349114619316329591271989436807858234704765229294055165019141440111242234208378740659817540526962448496710801231344399992010375147288188964490344012474770714066538920859163563689686479173955262738016613520120386743199735946337611242976345469796054251468189770627615925446583859060786721554646263291451632907859519673628295079763436248027372602942314408246576832168492486067903317074725662791241970365815950677771181640038738484844479747309051876057735616730550947153483526232404685558359777446317685210596054340169883968497737400432904725470444373647304773437756892004043973381695466532925846296992873864864280371030742790149146499780893912603976315795560379129353697299774500425777594669856748297547587674169846779322651388068889487227865641285888947950422980752432413595515598783664509369201543333111831590945448793023742992328780480527914191999507441423482812751111095297399116535438077092393545663223928958708433249207192166650586441935464006813497584769613928886728282083317063402843203624909331594826100854669865254547056330672088841675422281388785965745746836716446811293171044938071411908508858368880590793630673322670024854772106608172613047620739624600286983964545881237763267489203337726549033657105594458062779357479315244031291992969539282888532472408815930952816085754183420340774941500090202018843420047917384005699110728080167212135280405093008266892825829688868145423983572474153875976761668154872098628842587650683528235079708283695783834160811985574616842959433216184926898131371960817335429740882650850686693572631908897264443781395602041941791533703163933372733699467491742383359982260372556838622521153711203826493634400497915660329593569783139262824338584888761410468662961232687820375250288194798280433998765659767986672670895632966472892636318176191482560369430970423606445146319880093667816344431226933725794799561567429680918017131817548339179829474979790673823757837666075002755255819336947039650006782825205866852001014419471990920213300068834019342580402261596091784618391370773115133843236714569645500435311545981981533231623101371471825507561526269829461064013467571635639588856649573308163233439287204602429785891141224072251483148771538476752622508156764099061283709977456021202408362784974914611683671850207543540071745835186323571333533565337421544468700410434341234330552782651046773861987187221908144416072984535429487983140656155799259989190416652484262483690072797936789216456485479433469197879512642333785801159772477042787049556854125937541877632798306664349060393616360469936117538899939905862039583349642193475046606361791500471100260126422357005737373553042041551349691511558281096453388554269521860824793224338796280049491773400896932588594348675247744819475313565346953554793996995360522599274935323529202392302203530438217390225839075087834208209709091654809127199535587749367894840954045747191671407994597398232182200995765184064000516957571771983446950034344603666527240693118542032131524102612236326552853305532915022882831059506846072197159096084851942381765262817419334716299965957882931393086603220457689858923334529139068105689977873445959437842032236538171385212034036011100515023401412089976079677526446096842831267306415079147141629951200383377900473722358158121074186591667399035339119742389517498089754921867666568576212070833524284589958026124885845799589448024202721100740937489167823237579464874410825081704984225769028530872080699035714549714577750463944235386003247263101649405700084665080802106418124883259096536628823925636784941732934523112836989887077836832415598090407004956480048764290148057177292903731364629730853610801363063004644683531346573606673153892644986079447394960146362658551658755347854672491435724269305478537089867931760133577792152686225581017632650192670849099965364199990196969954277003072971234977638710137837332334662053842890472288843087559568074034998859612910947475001626987626005996704240889492260585510661792306695331124055520547447374803110786244816395001931576183027293281352737187279254171696008516652998970263237030195957093944144675394193718589054757628005265979420789356553981968696187967176894548545482171626544827805913275050385173355743348085807829722812273831949370763422797332496570306837986508524994639431736810609798956678823713011314920882698569202415215751212687842790627891113156193140232262085097812549325041628221316674046045097732724302454282660311751747661203541266328344569163676828949950133092294738177012087114000895231824665144836844430882546972591069394239716742977159312862133186685877004534777053458006499066682338210485645171286798749335415674009426786312876856402563204799640984701416833950596587820689004867878345447811827492389614870896317180009735985235895741646279147867777871879743038417730070999119462424207294973846535263511799244476049159133190932481852032147512819961025460258948885917264437044698025046586846734685904897423448643263542035518776060108274256987774730645892107769245755276756562902920085826490322413675646472942789469962799757188968178372670945137133143857370537893705762446496812250146015463064616436046300960319612964810660712762745473887234965085524777209270749030951395844876143849575413245981885776329886046374803841064244184656800363272086380708805342844710382264966143349841607536467862512046021091674713135139823548321100735978118002134299609749148297573922887426060645091966005315953521232121042615034663475579790788536504166057156809680143121853577077011180344502575378173891638375514401833872816533795865012320644082563517005381772308024888415723867289784065877561862643652953477149521251353519413674047437914870075810620354584888946387208350518988971501230373695094695754189666933819629625524944064901341722719714980285895658720376948115005448847328608103566657111812829910854804482984593640396246253938818691828059503113027373526525833126530698925953108709842562447842907887054143781970699663006583443645349338717984697115427739710424588336893640479877554937869872298404005680141813393205328654389775264072317647709350075368917554656552656708942358872461727948319533396223336210222154885908660767062822332038804494830485746733383285323166413970974805927726954096488967439754541387562232933458633877505948249095878728696978019184452989543155953677421286825610523167275108728128945288413957248743891280354454510170120722793051887863890679950915228889210584859096140633712776417930625027099320847372837454899194211667356258398164002543074407058146191690027174758736321918259589494097575959113259219379315014108352305844835956502989885977070082937342893857825182774726636071720686067340908474770791456089725645028179095487094605117331456378583034945228494167595933938725521722935648371337521529496398920177153020819553450377340531198081217364163411441875452406071227385385209527825926644330916791664334698275536717589864227365138140969584914647485449790012768432387731389240278291073067817875296732637238852959465950688267895178182387072516420657379262217808181257787289691179127372006286918657162446232926163941985826054080681831127543320270290528916977810868073505525163410662439102918912225577442202084894583643613978278536269863926302407708244659608694304506533257172680155294894817002192666071830225582055755538694299054221322812300265914747035176147355760614189366050923413242847318808349304747493344817791830138376975444468510906814451398926969640215958452303678611566035311990292353448225122149637157490834313466978028766492859388521898458037329727056814276543457223810638422903925258719026179001380178924187959435199145851189547126384119576440954489495380615662556772776961122294148642345789212587962145875981258691865021102049368676362360077288078949333622451670573010940998642732224058195230121514512371738687877835592382942025078295058818905292043014228141476946276910807037787229690804173562982564473191043217896922996575658166538007110231965737311691358480607070508164551944889910481626236906024494566922647180101283377152744668509238183783027397630118292121556970544995333781189403607654860840014696462361461225848947165968626327223310600877268941946603275645158458741685774667253407564049423221660018298930011336877545261737876420306311149759827858451579541960521894956646023403931902497306211623030551246024435004714562092592508513873172811375885436276062084117525835760062448782272412173665748170996405347767352987804200321855059873881257527951618690713453788150840371822460030480486967351315153696971279198982431300720902027245183447127334786748748907809306432467801306978016867044791061486289489305007950786862645396174628500693763560195895038891546407818137222817104495526628167683918765540662226593351411211733635855824718313382972908789406380645990657797181597641231712445045003473962015355652896624006712346073655116963198749605367994770962197473523141647219340308611884244229415875529582248881702105782912643412677722453009530889930408256640669526772840361507392273968158139250126303527258730282190123508675638113626761973232838489319779452856788786042798516856037153581261607380613604681583226744932734746924006009139388478775221804764184716046093076736213647845903106190109797986917333752909282540871784572603579823821630109849815834489732091636056993609500699974444768817449228571692236740113951418607465853023170035445524744462510716503146321355645496708219648835005308870530277936626004810178326957620264728581019885441840057187965007050042414108108292080102964361425362830029434168867799183305414976600738344164395385210374249318555701664165300139639089603835706675394207036544784513673377959400472667040788090683363359168640555032099556001848382529083815463551121357219642412358434317052493995421025371695666451211500236531728193173630252777521336137245309529984925002050551379699245963738346430386362823649921274345087220676974565478863084640485722978676235070192635367369538898447781250640862979449558375742861627627104358945971367787713578131338428000476391556050916901668155219359202551409241922258260977980023399156708286879838781951962859106865997903839769966857876750967325522393505470727085834673536831776431260309447259495163957482675642334748719839153639201933574426740735378986016398330764874901657849118830107794180884540972153549286056910425181083001606123966699875759257674738599299474203670624716177902974855496102509259314216050605244371937481567417743782930930612500639340607060930718169149316379784867437949463349810150291165871888902505036246423155648896134382708687072942659826008516140797256112370779173574546583248019013617834378103243466066334744550287804118732133945408695644549833606104002866635802452478322463952670764442602208735807723993040419575056350421461357481524294051396050880819880609579264316678779652505051105565717173589972815876997721275201864810266584608421374304538803412470442001088331298704704000940490116373992942743455127351180703829563269001630766266496359117819690430905313294400122299459957281038948273412456642909880364258337388006269076067817855493419106589119810514054467972186806395060915018444023643401461281487125877175817588719513880229037637024572017976497844880441257595142336594240621087531561955795420114000609395837249869107652582228992659774928247252308196334016059626167044598171422986732741112806716125346706632853766914203639404317725521412265374986585483659242372247706402763482546226114171392855738078922889249454968590161102364491585212982462794055841710195839924344182779421414351205795030290920898100905922247100716810148724899748310604486637159906361913011801179774145725788761434870943387959674660753926443628120332608772978104587359834662201274516792114777906719155386556823569271439626690226653521807175874755306434807810950986504252650964622255333338512444334070047950536324573588047230376142407567506621697803201756531241714040149340870333409223362158244809735630630860307391638129693607076369067723429967394290954765520951171919314156728334631378688981671426024644452256551251281479398998301779814663615743805679677332346943992757438041956371204981825157342219310882401920225009119894764348432436110032963194618071681934650900820373262860266635553317391235070525348988620938942313065229794795280609789422721016991006317684744430133500301202129161213606666276564363041455846455086867181994914570554189320005366497091234693094794316752103278523687625867360666090328064328650617584942080457966686848012815820304778681042667100592199761496256852022411589953414906861230594866166979862974099444281981668381707348389873612540747291194031808202860446266258041685979627548606662307850649519905125899536770074356106466606300010394583196637659343046628231730517140824522068128931745256476563067239127131100401759800949045883914762465865374623533583885514459281889109906261027540497680473877372669632384075066440555589015530117714484063624501328033986882973887749267376926892293848926660171748007003367174974268171132357958056879544086146777603631168083650133915582142559265206955222646644986286884892055328162373179207490864690901925059317446606845027335423432992517997959583940084586560958701221143243509779766430358686349516552779555176201587772785962411921234448511363572538480328052160281748977618091882033646355156332033050232616409945298338252048853912863091333164285126112809771186646992770658014053785302220113642408909726753411265268282511525925454243024709724422674999826687565213096164115600810656982028099321288286328027098479894025479283655957260185985025883149525608850967682972794138993285766862225816336268578646950293646491088615045101364571004684548886042808084969043708671379948186838776028729246501034273907293162217493525291217004576330357311155871318736021843211637627439951060264456711695653547507766631195652033340034988459501840212321437638287075667954953218400819287033843140166670741776804789032775931303085880631374678743643909368260002942064943748102660266753107402756018198756068109395306785570216898984287730170157660417359085301005509445215816903216771493168211993306390382651109316536317273988483763068162827953222156269905308704120785896513549760236999554730868420481235218116121232548604731704350097900236151935183654630708907848531480962536285966148642682528513507090363186447691491443573627802892652308861635329145164838199092885655268255563694629183236791985378352113721299924990511853034674496258402932577580193100057736174156591812140012856087325615353235706641052089995468721670556894806952789656217297302396017987185410811713271079305962999626686127975041372050635234060914337612634954199821305849179097744448006183382095433793738290288877737673402163188890254411944627607345613574775926365228711541594587920294839572890982941371993150031523762105416496657888623538601349329364467276514036501323778610042984990032825492042542574912181544763306749598296280145921217946583408025009549417550476174342840036633711275311997578637640420696722915433610642662098307509713374353639142414547344175119958941325448110460846270753336691383125478618836771281907788244790549206824101514651543923095767344692554350136607151127585415087144483488639066764069686095237370992606668821554442965628200519369659955766916846975709532871944000204645921893536080537167068946078747990034919252968388712894530619852917884038768360906956009811109255564288402375854319970530650219404219799851339387174384140949326306615907553632719436293483975907440851879174771478425848800313566944732889085601295906354091486288664314068686688493909058158389751796976445227443179361785053645994885053570136035803131630353789398825732954506660290797253920021838652994605765070891260920923275404778508122084504906014787146163517230894417827082773160615023053802193660064253388730401357862293377085312380213674932971636600627216119471838132777886045576325743632869539397030635743089482522058244413684056090847143483984707053784743576879115696724845816744362088521552799170014215715492152911577308676119466413225724277107608472448418856112069717207691034974730387314905083065694036476590194621442850276630167813199439736572650971488061864808210231090707650427166023953646520690919795971322628425397880495138468894603658740051772497401869886204967027716169795271430983132748930700443722811374182458421103361062605276475286097180302986660868398847757295683654776556322384912654059932221538308125859926305240059466570904294281935833049954085723244036347674237632330138446698645928506595543728365280709650289822684776390699121080659521052533291358253394303739935771930500907495745635565841936997196820032192214823678949897642657234096837917488020042105632497346158877872208966013951304998650759018456081481096396953380675024916273358364442629514575669273780383086312016722539297107086076477240685796903870478047096986498546972924193216786469924109069858098891983374416916894629914197253262331944526894361289137314966045600662963979991461142435697945919310154444766732272446529208980626519498407178000598816815577085983441855031682123967042145479559694963765655647001914919458175472458203167731653552566117730291130671059084855594314295271195885385020047540278487268111546500756041234809787996010794769112097845736681566778491820443500609789279190634113360982343505513586319825931571510793112445073886691380933794311426044845987696469469015057835677478749581875744143663767341982781256101490446499019502596618911397179852460510189464450253126052776060253413015433623011167931411799992667086962480074419631143502074932922889835891769227995441905120536860320415412272263077296591844792420189193574009061987235178174784447104169115157798116500322834858213848540761339000883416632087345667509199897645870454388586169514738666159372324751050244412259182118032664284493244470377563379109636797232810182396058976008746706101233226741168520660434872770666659584491452214037984834795127119796401136606698739325968488289933789132450106399167973424437605339643617105228724713179345787638818994096068857668979498930400293596652689695671444347655938066098547710206307127137478101006277680390523874237289786228483278852460553985603230401726212962417627536830872100986047606307955389126287327063758720332926424045034018292589755098040870945444151810405214997411702765501601357543101217621747267576051167803413178721778111937171222545172801793358639655162054500819519270909979871101827529012482751907233911546338574489628502223763189907788077806203382102448741110984250985514498197844090565612165543954867459201617630845479419394335453125653224304778522081466319047566634596852009315984250349450761877950393211683694400252604807170345462538790464835479986440567027053499042332377422999023303261460801874163605264342098461865486967171825589135672201621387281539697064593367801907245212484482348408047754138022815719083450781729225105340979861615479144749312748581381759620899883349807231445220336353058166756298267760997626297135585514817118117417942335213507143120623232823094606847176141002352590237093917883195087044269556013977239111518961664213930026232684865379821087480265002102038053656243405122856142068315921823649804236469393623617620421899956007531536763570991971955437255099442024879407423435228895596367642917868794398190679242974790973594292004146504386319602432424165034133320084086042241068183105889638017094015415621342068002926836763443935761128675964257101930538862346167421362577969768761145134289029487735188589398324752457677583335111946780674611494243339314272327504177083719025442171557404764736184139851037996786528541553166513202681901146422597870140663285622733118150455608534652934754848823997076396533331702441150351930725164780168061551560475262016406740514110839413520909282658903385030158616666805666250035872398266628594078447807007196219173522873641241814312116546960833561404931832053890196168203794659153810314313331516717215906424013215842799174923701544302408615828232135944464135486481803672407695786423731360165440617638906829154307977480035619050534464636340088469897441508887283038260743863138450999704771386176760163196383868900579052649128921675333743601864097490749676394363128222453583303238731530322768200275319175579480352627921104911981081938661367512982052658300397120129302305221922127353880404945592070353514116011263745243717636826660546058752939096548568966705356344788694843088673714902908918966558745292560581817968124324097667676702302578964826375360649788091611034550065469280861053124470564602791903182030759200898759316464908028138928940282164829863350528006596635479723190865660269237911200430510829857153775028177258786955153491999662801681674489416596048532884701402346427445233026424449557863724666673934165138035677404065961395256481082449873517922391485129843005346453275719821772169080622454774303580384374219249861976733105947683831794142912074147418255833186282633710758402841498920969197611577517345984932161261165457271718981072330690280697937470033434683418961961297478529417470775911256083225097599469489757954099202697413189421560366373065900005744676923913521571234046547179218778568696555498956790703152381455979210927032244719801790018791763215475645863054117463017967191491366035447820536293087361166567381761134905715657705746077108922209023166584832624813535773930925313528441727874457973387935920247032419085616086875101342363812942575466534445109931776348878845088673173306446426666268023078631907366202178542019605092121915339163954615326735214080012144580162402777470774764678281434136135672502443037546810870595117649452293012827574766884917563400456970743918482832449569726823582615256624092129716289454899266709632395951641662871904636427675728273996217557407554805633853926196667122285843943025089263074941468438842877143262914713799635437171450143841498363079785759913114283940716805052538379344360408731631505531007401562635206632660324864750138558847590813936616335460479123130894780778962330374612400293130921008477117372667022183938471083914290448640162800124469236706012396570762018886512652902190274401565792615430884580492136579532848376463900441719205802650255255911674134498479226455210786329474134250490630552996587095874662241004801379160123713750693516256898012159632686159508783698450444119893973233415715386818540775423467618594380586852347625287219499771517087167923593747071107401240444780985863633070377253865970913373447640540818567070889699392064793869651129248786202676374628782487794096221180695309781877958890159941730988113248463351068121170637796964171306052830131706905260692868332858140962637547196886602915427161502761361529181281955236780755787472599358103937082398332053366018720381364932230983964191764694208192404725537492904013538457434213186521750910378820427027267745943850273418284168929603077541053373027099315242882625061888920952127004780136316388594622929910637626758017137555869640840274176255063979905852249973566245699755410565804381385187847587504952234416188301065781388677789145165887481836640905749141206695697510162662844104533189458083699308072178438093180850811454222494430545155162012085844321504186559090547418313552119028361870322330047424999370666986300341859184506627368190724706951162972023998492221370312538044603488772544025063846071032280931814342894107441031903217184905844383163212118313466645976801227577482987054020965547756545694259118832032534143138402179927401297219580404425386695136996581901865177437010250529230880186810337242463714476977792328245733866374835771028465489041225006920026108204857207124957305898127532514922120197210348850716102197204518089325591300620254327740468623015518729238771112995383421529953920270552874678111205868752609305440480277814478574427227358615970697655970137282438423332238079018362501706951329414281408605441807466067028051177369587681584817724927736616946715652711505256395806166135388973985954047935108154602245392330956017310415476390897262252905042663602850123096256222143625221985708987006763577743952432855303888831124140644410633457829018332448829392667836709178778592200209020115801421753595559714068407966080687485205270558540051812396107607643810477761043008916633593519227165507072408754974966575018141391705614645537741161264487081235367284738831631666911742897735291195770122567364532681596863524300897472194891360591184549992988550190382754482503089880034963420657838967005057078995159098004653748352622608775204465684363865620003244879496196541749774136616553328829995710021399141283167877488289430118805895422329265515477386496751752477046984420916978757164396464381581739397204256388134703677928175682093443778991589769684378397300982956009857523222380449028033117441309510340346868777000735888026966298352512896778619545236611973859438315633091760491031412965383091639983650693099463569828566739027255026923970516570198329271117308449929554511331393462577975384714496241821569807953739603533255976258970455541490551819983349840076992997614512786782959134358643018459880961027646921162379295707842010183553599644751068289425391232001620045963287187381995691462075793180100367579479973829800317803024454368417977316568411440764736740385191537603578830859152998528273604908131788254210531773326810607103653853510994219463387546621213157660930048638860620282607766239172313067543428165665608062687561155764287667311872442747899040224584819106893194746466798836982057508430595634057289771150699478712686121420364854559218318139832702327462178642487587099699977226339922529645302491955192921409996169000248810447769633239682304498646571449056971590080684901989728868936214495779691182671357660141635696607663388853851999744654400508147443426809393938645327943464972889671143058514121035986390161180053858348085066242189393882692186187838699261566536336310413648662340626791462061398908159899601477385205129441035387885237421384089609964296478538179376041331808850423629191838318083454751163080685225084756499103185051713240559035859821621379762969086935988158453670919865261835722408333931019872219553702099489302672168581528804788651694923873082273294661818795342140958124396176837331050553643459809131205483063217604224243363022138822170712587586621383387448049068238897337247809567565070648559860372890103162120714551289844513185750009126962040271201492297853533032689711162693388342866101293010875799706262202275144743564408910383110174151059555085689660024934963088431545799797212508269370645480742414832465485716915590904891815763337205955867124601456253705652107284158397784448305228858342105693590460522834749713375234061900155668310074679509419357184951426780184432920087305696291517900336634443443713727447910209557928345989034816406415844456221277529834947707763071390958690498138982858369190011358919335839127346089051900862275712328156827723838453147937211617363130961503212707169496214470095649470148388847578310860344234879973822547032368340423542996156327692501934418074915293229758282445389603862257266733311211769968500615960905102421313186134300444476427404567901436424246833229124937917222559983424788353154694688416864524619033326764967257483238591264788399250338783023951517653006943532982354767600357464543459943622597471490959464094988458291205708700630363826976449248808139833959033567315148626622256730760067528621437374461045092316556462100931443677797623421826870007091349824390452851651081922964057200886672672091739611291656665724865677560040021677568682705588952401117692888693386266304258552692418011867837120871712459058022158892438300217895299835312756702503389532807231634280603320116179222141355139104663948701634731852030781372566088373267735808089366808322278857686366288260562415818694086105225239860114251480557623954626833575249059625110909721896154914610969639539084733271527641671699457994227869268425176466845517241183627026476842915887616603799888447215821566666438062873157349364556107546472603521735353697689953851294565655782849885038753927261832181934340780547708611177169560740161103817625106682824322918029419883656101048684277465655228368904997494926665378776791835610275795340759330795448200754386933033646683729890883235670564703675459214816189175695093436181806680067788496685033808853417566240704705985904244953585937002628689624896026326293433692938855581283680248954129699712150663570146003328445996334886745462661965082678325048609706211036227994262950019224396935562697948463276107677265901528443624406677407704495390216110265150917028500487030582010707563096117273161140361234131969936536382428275622653347145391109020107066126103702346683119038623571431011748726335582925075872454899700290266388925710212335893762188630843644665447531497627906012208813806307983838036832178441703316470228247258528239491453310492101739933161304687811400856514330306825855044403209712104967836269783096216858996258021613128840027937130017372353412046210254065221602653301631361478692181493299135575058237285251178139268999282934326228369236767132658999670967442100879395145497592656177826656256881975903475168500676626545972212165802845644768739905205504004845415822137723844285618148137750940957564243989529293744916810373147242542072097214131351139405811006753573761199455638731108632166925992721593720075942497800227766461186653629931129300708770427730800661836874937444408636027275388279906370333122813457291932854970555158707801781572681493442472409783510571122704405886133107576618702591956974271458060623648025010279610341248957419565216640420482521996401496145986981964642266090669648304605438954083895684955652357571652281906325908396257262824849933423309347658797162164800131923729444469598407741508122123634626508652027958545047859421714179894619900561004106165889525845807222880742617744608743958113379630312381969457483712634206163920776089882423490119358781112382658549420802390194852089465936072710804761180765518496787678896929425179044939929007568777579730512981873636441512319593119304792714625277144210826644389891401962584428578683006515619778878831186474392212415658340608772043813905733127828069486925659519199061492466839844302648889468632564722206428845307138376401054530406711939462711624361605138645723349673234866402268853396555647334840804330250662132937224661844419311720426421255914604102087124274949154222330768494363431212227706522955546586775774382095198874142883948677584698898411660376069937026848606892815059625469787448418855733846056826867737083812239616991075686781965908161441226211781075037481273057018129093213975181862583632440888204881883286439667744268963663114765350629573757299481050631934524028755255275074147608215310947562397259634762023998567748256363972478598309130235843817019488844775874497125655009713616771088651790849669556785262013827190854958611019099411919671958475674460389196017724603780716320826657588484571518058237259701465400170299866138277397412178544610255998720608752029816520856377235403282437479681333593620782189584001973168524728649273627975221866778540379179606851495527329008128740808649506540019391457162682037331697784468759318341829614840013028305427105916434411660314253284521962667124140040717076381369877806128944684278728921493865044143726433588399818747021950214078769894543007707697639019780617780698057744226657311395606098628415573017958179945221997029860541217133307460332162205582559033519386341072932984035178642179667212921729075714308843267197844799850071836579358680648712457812475212007709647571945782975744428294342042680614269478821309366538792920019716294888579292028296206084498833434450642122305545932552763565400213573959317256356642390789725326890165947201395961625125593353686639121576971368380906355832906727536395496698004145929784451193451611853425808215072606562462940506968534477089267300016910212274535561622794227388559296760682028009378543971436208513788963214217741574624519704720318934082238176752182601910721638644030111671127151776367065135165341570567019501888465711446749963340856649477591275976975437832249140108500628666351949291468833449988967447931398174657044802568096935049409176274460884672313499065486576512218514807376165340442757508950374621112387808537600958432262619724881092377100947817612610156027106185355237661773677767964454291520312609057217820963469762887083491129434865784974654377530174763199237040964768810634493628984483340907595323019028651916436262120276553583088731085343613985696326593590987660145998997545944630869172122596802385109758360317631134600830835351019878797655345688680015807897513136381500236670044456246918213033396370985869664484798405794159479412015993549893470219318075889383994675589369013443441460612543238185911961485110924084032633272975240296506485324495121542933987642872771639605476954089611641249411437108694680986195120823371489720303585614378030492332211095675653976007935824933208675823299682870319579912863608406870328140123959883827286641901126695898524591534092314279235845669354455923028937315458939132158370017137586546805808154076289241415330289238683704685327625384845983261334875642175554768746816321388126044231522741723811239209448680015814877328582388813947535388424077415779144401333255099025707154405438799734010433250042412216569337291660133428268811777008439378818592564906748272007471362326110923023170898728036150825148786059120473886638551768783631718151023993741782333427882964622925100251262307359195841443891211425267833991680255797666017309638381579269593411761508413807735077590816411848341808305295140801725611717759799466379911625714829684309704774415786901280999658906180294666351054162055171892214987228859126836087708249956580464912717103464050390388592307116596456163706934742815453927618636548103005464336251241639204087393985390611614917983952774303863266646964306157459340637187414613085142782402727878397280987772185527956696690958647060081816990837892925937841037239245398927053629146309804563409544864222519434771432790707669184156751796341302597335027885342490909743770853304312798909967286497000128742673695934037716754357317941887010259018136161463658701222620266087123172806489883743163954780741457708773677986699009534144115799177688142697254166959218436030862445429187300581725624928351234022723808438521059756533817675634551492216057264621220159803468830419451120791233661536363877358814720787621953290931351163223580123217763370972729251662174814741625121093545448344513146045448794121068985940306229926533870336150955865070080942058866832229878534670409455494842338811960070047827728557711960877916532758154073265547049075962304429359729541871535715976366835830178843121374341993989532104167816018240641757764552562327335873973074232454006693942617454242192712084980476794591971616172817436851549908581045682648235961630681952884549595185426324608385193828617863733928985005328255924857066634128226359806510911149246750114434337757746081499281429871759031774749781820735519309778089951648395153075214567159433882537461048724556017634808672560570359790538314661400463657145332903693158400643795856279581336392965856844975418983079431857079911695705237313707884925462742098761847944699722674544335468774185406303261190398848193192530088204109280381549014375362868955824453870752263940820321916705624034768759480388503435370809491204542610893757199933321547093002286395636001085182128545386745048511448954046708505129251728054186717558888775133969281808767970030639641698501191624959363506880975121560453792285083702411674641834043589047034415585562245145429170083850592349687870542932031171919813490971943659101766680092819231416638616282443802252978945342891946869283109122771409796208919302533415870286519433600402946664372840012876534227167678319739438729814483271107532114450518488315117650930606519697062239190193421200797613961330684098112746612690347463140461105030570141371427937629054776712514931837019895504733972148855018727877440138885230039760267865251954170614758346712393354147433791908336613825151210665886580154872159584172055730969402725632092534516402719391905569099554189220879910654147236060164970069080419338969257433982233764425161536225298059532847075208485736471549283593080927811483186092004941252796798909443307580666258469098169843722812627634508170045954610542034350082664010183469993837535565525928372639062169967872254583610483024370962107505655206521322851382012216378482941519412076589740768506753070331055089148872275083736889832816377765851949983678530121508820289455319965696431889555858385169459796477572662505908827558725876541363413802257100447985508675484455852179342080556979620581983874989672939657380401915681935218408686235634324861990511056573438910023278491624378670835225673345573218370931947599349354299023125184595734889902730769097672367783979352663341220150731305594273311614178889809967255314038835377624756248252360508445326680009760360383365757937932421096528561711740774529108817173813585334228558869519318164382511247390436561649711779014902742270023026710623732564784545222778593530138612532606773879828424284612624287964647864043660620178500245096570364730699309175960587998538608585365733377926386396869449933511151782990337853484709285226664853762249925333163964587779225154396838134780760783929657452377788432499192651328864423107655779229715400233492412630618968329117609788039929222286686691861300564001534337929781602679873804021598141065384158040449054209038982265830934141060502598354521495120207066169504010016714177427562595651248112597455721676459806609415458756880029447691771480300742245810080199133186636154857388108883421716256693109644310384416027607936531150702506182173300440411382244595254958626438868247454300847240073020175706529904397286526629358229787400077946643520506779204012142122426130648438520068898953348233985442101429643543746316035288699979731453092457664867763503027165943777944322973810752165159331179712186557535122730868100085228012272010808633042054830977339045498245236315410792047382371857372744038794800696866073445505874101403594153103521275799659680027575745131918678736041213598168580316682854527891241305193075280831199418548967255222617832398911501977610614533385072581785609144869392852377091558177433775687787967908493906124134818930050053165345584649094264862273523031204839712693369736018942586918146443145837293780217607382256995808155901783303927329668338914183970913406593487189776350019486208796145774454612536393611006010247986912785133677187080897861824591758249979719144734995098367552649047493716958537023672566855182207887215594700593324465895872773337956625318012368492366862940300378097970662093861107106792731447940501485980814630683119028398639934243300172166841038329718702870341007415922281011396535285725366527596953239013659348002525760016129226341635509873210670827487469822638152235086496295886594072448096123231548573977888961829389489698108145094210043543673885069868734468582504390717207807624771047151501717504292360443730117037493080865321812039915370425968592569376299094538140629804087140895486568589710228241227927230703429702514831890025174964173453955541025212450932902388068825723919017033810933438263228628419206420429322278806735909840120764633894003739409906932904923729071803712294398960625509970026742739312605103349163516823919422464943208145255658262928914184161338537294936363428415935473441259887789515140896863013219533032032027613013753489018326253142752982993792544262947418892155607270595854191596584103213895299254978334478879104117736890589828332837311310914196327793841667061470392100348168218692772044128556249998294389309062706305696413645332524396403633108778553971652200770123970164154691364884511835325090290984617535959778655055861898065366612888995253451720362633488774796905680412324134260347518158791026935027702729509635798474760735719663725872772522506824658826870943277296562119810885081894392186344437051895672583902042113481354519782969318381786588775023567413007461025350021237899001283039339521535465592715852116543157387686190425554574875298318785397052864583687169055395045350416875494175361087336229758389938986458385108435805404598837587821111554358375590516710517992447191940464180432985221598113581106327121239918607851077049326002434227127771487232418667740786460956377169948288196265472196687221401837637267779568586129474562612500778378122366255009788515381804975961516245401867729790403579509865183830330800804754657904872933130480183533036350672792623805357835401208131850569213954961844751495779991528580150552651396755309244644070683776581221031601842624130016157403611498898943815862731786980747150377794843650952689657439401301245683363286204917248997050484179936077871030741197678344772687047555083810069306072078686753513700264327788493132643648251182196711910051984761183027646959145857901461432299131336371647539340231122096612496697042241555809560381172745621642827071916644395737785006291222648819327472036850360304448722696880882892918991655374564741094243320866843487754449937038991977351960633614855102877375413413819240973137652893568216917330673121626045013878950540906433807114074526038646079968159906275233639746116663267913551566694038217251827335859982928920319560316708780667088354531466288084596876661282227278945670544650461340649613626979816571102922292049350342441903638295721836966423026163266478526470382112260950331120639147724567544571727359027355916840379058076324060198958847744157520043491623205792890001270994706084229456012367181788760851088720064856284262746204216522472094336852971052842845789899102479487922656688700833579223494906201028168346073151240550405785742771613656200746160006931964930519917215821992365765954963317467607080881952140806596126555978763488651326540651870644054624223902906738627507545312974059651392189745155725720778994038800172184351361975862852832953656660408235764736417464784569388097662417561114231060065559226124557458337988512401986254206871717700529043512747147009092665136369979790042830293612679364309058012724158252802352738003752494538296207104194176757584171164339376307665498126424826157940314754598599154128598874358025478305265385379961072454365336736542548714208304121461409747524774055826239625854691708881653900764370480896294332867186668626809050351357502716803240919922371494759160786797232454297256394239161052074038957481689892534170258164030379400808574647389517120985069242573369070381812728662028752159993418352483505282527039084666541731714184569489571074286484788549194919254237152345967790998321712042963609912262355658951611771402489025488858892387352529756228805650331630426957481050098258646296536751865527947185250189891465298027059923022015381464833425640956540345823962949492922655872876584508013696544630049540942514108465567824975464199482325160193524016830206966433578586076140392348385369149962985164554214835598422378478235908637458932565906232176943707570564603150730776893710252282264363297172797919734473744888847550276673168404002769082103858722758573589800528457056272879278092701031871213103209325465386313377923966889548201847520040589849394000721842749352244815423762358891366719880327077939278600281936934853017059954843964285722213129536339355186224759407887694639461977581020999414120551375817298002181586013076297003317209831158434101259494749168090495878752008564677617763021497898115089223291637167447288337238343807634944894831576339715215264741293896950087105632489941588891090175130580823353228806550785547460766419915581676674258766023907119759126207593564092758314769551724372846148491213521322943652707194221668702356231383222289899998940035626312602745957678811386132081574350715798530026046048013903638809886839978094056968778414186733413039419514445100107112306083151558883450400532024891216571427075372606000098873917766356475641394835551678201511591692380618414761925019916976153458323273456578708951272991414906623461470734151036377831236570059356451720356345145034893395721409575667793217372341519901293516850350181931704411037901295933780400873227907339240723452841048960895821686658893871191537566296862843941187828301401609277163609676744115822771310575784323606382871919532600490652990797527493811392015357834557457858286171315575078828583180813326650306481011677288272760437326243558678802003129837303919175658608035814113704442760490642739796468478926997912757828199053765252855760394335706712377862138196103434252405538776286059884239026912210893855542401198212164829830982145331512197571167906735981239445833271150420731779691566025806528641344075235000425260654472965428387652930415704603260391920055682719146628202125922722737540058022546514224309801888995011398445592499848240815612782026663009054935286336652494914767778731236761440168111944406647934344569345222313057889690700771496102688867531397325331861832651488383599551163619824801414708885381836897452681463443413820565292336659442743800471368097595158736642745543859031955133208313431276554473804798937009437390501929791617818450370689386531725206512573496390260112669351604774034536312529631381232815040796245064910283815931065823159846479860774732069231552392322685344728934311785250868428015243832108088327272958435686823106427086139034499933931955439154497670588188545247782414651125500374532653983328003099200554464880336383153256204318330898204581012093381417016381716070791130260495568054714004647770373668716911344333062776226348950614015063874127842818592698553515769659488236538712213742086048879397048001652644529006893201242807801851389518947713458192697965476167927316662749551881957927711548452683461396171375526502338055279841125424547128568277597810151267187432570058422658431274924223621571885844078400303354402504370430111898229358472375796455979616582238638399123662190911613221003767770329109111301731460453973393303983104806440957656565861862743438427757425058980071925285283290009936862950052863374640790157282648996468386376883788638995705372294073192478806236264713200736044718454847054889505362574155613319071107805671469231089370033158969149113564246034904028616591397099067909552275817819188011518843755487089374706490285051399654517530585269074402551331488474636197044264221344142186790313199155434455455889178577564914590309741097872538654252923010192017155161747649204150476744682558416134942474753631855147673516527837190254524835239776408546528127389747552740611117853654505677447073116693059796216174738318463087982900039125601325204515709917560310427906928322469096196037923584347999647504605222047718989384706950565222044240171640052229634503671475692051438223520719602768422262635465746577961905061238117055477067285808561687569759688692107079750195346642068937908775890655991931760654247819344433476202981202252909039581070296716798154480351610301582550900094753130837492023797918826130870882070296893197585905406912588248871290274331245883971483293658636383028984549600493738790057076224957566218943003337971588568929430132885963107968349956229409324339002537640771480972791924215278775280770285879517126970428583543896525583225310966645205065240502424070009528124046142387717045147277659489996898117187726876514241481829149540716882436007954307094671574231840087003801695109801514395038331321558917166259944706884090317332525975353377252969101001994371592606398838497958400375970467095656766837464947370474161073872815960985010555099487107994262628483458168699790477647829274008041769613663915806388467464982189778243502802846047455164906599615898982045441270786258068143091971550168864508240694952802666246103285623285927349895246767954724752806133793588919191268738549492962348790464493006144880156429624074458515880985389624117211266160957408645820757634304205661870336015191934724008516746257930935865962253360591927403726646591830121844420177795696617353963088540502549323682083085484598624166362459186493541744521681585889776740899157989010501076943433836625631198507700983941358098654559748974146404385189812690471702954723091691497018735111215524854790854352770943303616845190979408806085081903591347276728823309547723010603026489410175658453421365558663122548605029542098622603085442694104832792689379475023314264248817018707642464488600874073443575416933598876059579830361608286896798176301962745710281101358085019123285516570457193942894770835046659593197965154920059777636889933067052655790946477647041782739955952273532115056487373031310581825424272640512073082515716710886943741037857197873453361506025611809710298509347387061512493996115070673706304452871075209355292433753287615733351025272509302346873975058175286810871630603749805693222886794350166055428924156356246621292289151974890189631638297091409380933191900431424998560894248904168662829506011170190277561981350137965981151909051249449303685241028745800270273920420367211115514267366439101323607162637138837254817047693857684835770221821103008199091024457115874779009080356132647424201832317355303267610091458807172567532503638721268260274936147979809555371660297495170486581343920330028123336114228967092993627829183621062906580282049849453807356174052354996033315923658685493613437494405627674183186810992553821528840530970295624458147630115564011310272507830352698671869985311263401812022624299037388140526784322692666100205911910809892479687425989113827284533740300030311817118763613910019814797359280395835477541232618661467653041297501132196726640833566434600777449643603380951585277041891223074656291529860845960554568458845137968609634721861711228560854874422074952245168635636356761361877464019947134691042677157856335515685717663769011116210037691595075142573365078258224870973645752839289792805897752508521203040425510961802042891492529111531785879347045085699726333301072616888017127533261434717425196362136568490804862636865939473723184332278255050147539820478731114600065530851220921558313331993785850859197396469776454530160878255536024392851117041611298257449235145401089482988224154681367668945239976150098820584918585120349793612039585975697809804651327411466672111219212904513632722955442748090431945906665995161467898488746093836634487541918524199023013419899146857244636355185538019491745042603113186541453225151820319759263278739254729746874652898028034497163984320735825617727641897970479121799182007865217075551880098755056725931909903456510651237293826231010798310190066195181150097145028715435030468987624467739982928373492491026583467941161598178059090987581690870918681259697282317435937123266832071462982734759616976027602101870570240880650591989603682758312486981908198367316169243773925732811331306769061357526337580360414295291171283991176705126275410850203776487758614290779259795324530393017558166967196623568351501955177322709139825463175761925888787213814501018739570170255201969480612637366656314694340257769005202911322585580656487510044465253955966244638991271261998326779859733475970199181185513653237478110813186064543163569802934672166504141524913755390856499661980241736001891013170560119869818256347767485871033081777418373718152579971731797421767957164293364180929727673360162253800883977452642352263248202126312510644673808501578675949033203555765701108041321349874536880148986471125912683692799240378323814363479406585482682468693421656168130244919881071307678126850662191354980111739435756305996709320189886019344806425578053563742055803314632435857368755841725409651433135939004339673421891995906139481009609710463738442284789988443805962063675778179726009504394947679780292924284072334086478559802784921230015609802547740649236838539900209628604357377515637101243676178979757184187607701219531517876167330814148383694441517446025383821215905455164816175347929156713243602018557257882174046063694326594218871156733903526288730568156364111589849354425011328176395970011091632953865470434653339558949030420723868658615676911297556812757331794117446766530306269929026344744023002472899579693505803079007221069865239682995570342457666155906000382074928698522233148429469440149677470755704991246909391603480879163029391415441060497066699888267617592716742426934604907698594643111187498592273996877235537072607678057741547597429191165596515498205803989028296772364451140877477200806127588761319337457015493275287021421957272155025598102352477569143544530980566892975222840312769568138895402072153946889189195693507122204492453885632988908060262412819631096702395800865114621098015964458635810543626954837264107821830093358324708001133922865876050909812663845116487393452741021949045140736920491405791507471873027442803651798322885251802627128268619890519158939911697293466430940617445754719590855485961772693242225935825448015443925102366385129140652005933169486464990354474100643059778519810068546681221105246144865157378303354338511395178012491697588604918420251963388446287441344328037859267026195903114858305401775983044188814689232054192533304774689545150944137723985689896482212673459463953045424889176712562189109711671582626275370572180335111189459863532116373971430742365771007600940848945805517241533637672235783691683382448972751312398883476287790969071149063018703178806632147059964640063595913740601761026477087043544661438685351323051941709063703463894684059430131025884669933599082348911971676662284935696039561859902653671218016738479710608127187289447709004861783662262470349452546954188069541392577194111688364366804832930558366598699026051925600639307741239267434540130604945501723843875216996262543416052495098453840405096323139313987049243433213080448773734423471775385502142046552710887761059303037635589769142841605367138070041096538126238229074778674324588040259990314772097658776942582276283198215034307102579250546497717303612675175761928173579123052012208819304759751559045793050607199954521329918192009212743395348108894086365900844128716200686740812023656567862482789057523339676003788147165674562905195050781479662430303114040409437462742626476732346100432516850177268711724057248900909295525298278007231100686808668076597511827126576461180112986153542994426806457932610228636961773533731074517867963654518116126314296755276540894570652651944423046850450476180849098672437841585382358148700790174709463964460726436052351716775780601252402470720560615892307058175194317913042035722244946197634252209480144403305349878316919958254470575829061949327840758012523191803774903951612905125821232660609457654332613556867944682940929370728692557430872021083088696699147089939382116507956590887701709587450159769191153231062111880650110001518947299676136625387945493068201872860041845258816865732972780843591951704681961833440195612027789466961215273008598544994444066903222229060089664208261893882320751356462070857230766098444364360484901628279902385076303975702336678043843657499637900033986698839031939001069496534494620441011385536454049626018725411851575976340893519508418138245875890069797810493139011945271482971324617452586048997681910668548672793877439010096180083331487776035961210913324315935971200655009258347296777642133201968562418407479143875907145548710931081930334322685418026232772907773268736968107399878521825597179101717725619016970569811066982491845582286396419328169523787256334810228667906836124479443352223914088228369416332103365745554349031798208608357696871917309652233616691641597345941920922756003149821464601725647328117770513701760054793056543825215905318397679112478016426299923608692198911976780452004513948930119292368285402014696628009854679579870533064506018410773002853856654065711357087394518726409979601544862266146033621780745957725491815221605309843328320688363212466721786788129557900181091779350041730639668667477514562355062196960532692148902548505990268842566619923960002514243105113528870243191034524474327481001747996735692893497962104810114782125947903411152049229380810029851297798653287693329209052168354625460719199715161921530065274743039996872453959319530947080443882828028520749413463754956546982645007039386306166551120276438831602271987966775101066237015508668139470247998367556951250078502683105654281248331597802764418141344150551893384666678058533172829874893783174201414706191263478410641444910872077695838515348478968380587866964069138563373114027503135651372415191507300788621553294049084167863041639479528090250964177401316843923274499514494098231332359076482357003372600304294714022460049548251318345877639442423683614390778318589034609409076298651662680906417604509568514585169631971719231345390013541044440981126279290428367959576456432206571590960098742871823871714254625072573583495339739616111791525943944007120153632172862026155658686535808634397366956194077467522786645297697540584258285073876682127194501760112215296888957540174117753875015962128529776041129057436762524206518774767061313570985602728886906444000766476784725246409282854277280244432531067066843411549761840987837837944418721464284933451906844729270063937227873881266845383818920058478361275962108997170623626444343326267419479606833154703891841606833763129792131001499887317561276949971440379246347377269122917065626296595936163471353442040160638011302582832645902946359328201842666608953089416852320500516489872526082866805761333806327570744105316851168401420444248046002724085438087132899627397019566123149036694783031418573564293213634944060703738587664782283987834635214821652491373518281157649801889315835664570051118535667271111793032454714562534154690047020471520813964283630216675526871241238112101655229688239546003650230653639860670990220870805013268983008313612096129493817336987038006396256306506894216549467479940656882025710309770668835668737602211848500735194427440110337000397696280459846092515071575545679249664801563331718985130170359978304183506257988028485762290251029594281807898656225969661388402827462723434288939416606250376029002832882385539669054916769300341949001836120889890307181074781283281301458774524283843643073825342296727984600217048670808789382701489884002048614182374849676596773018538510234648327047950465994908607927394841469024540180442184651877396866927463670181814005411089766136530224820448722665980828211176648219646272979082873739419034211327198529751931362646306075514730982065729746794054533920561926263000771863696855709112104802304677583851119790680953773298760772867156451833582959102780720690751984017219539880364997496942044124178387135121434792156739211771680497527897565063190861669487788576594590967172672797754840420963307134502245224891554824496694964089997239629891998537192392846348476481683094735011766522981449235100359235111901174555414278104285833386575691108465751544183310680323336712049648586357846379768278497498115874071946867883607764519672491582766669993646665734616964465066436805328044881657583910787125160208785939884506779152127191261433397527313073988463665986915658195250862513158470115438671882834627747359767828516797912784158354819938737917062019312664654532495306186421442331900397996497559965774923455679599195959053935923484782600259029513194876885625060239042073791906986486791604969444200515367889934678125189408453090468349019444364854505996681126969553580159002390978967527359644501283292267522011759751881671344121969263429589910664016410485334673811651980251778245414377361227802263296391279983549069037060554553413597962118790947657117717494434208920243423934404808957510914459146417472122265037685548675500833230790227576085395051900429853776484100914733632891802750707859660800000000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment