221957138667127464164851429351388591442721482274671492214878454714245114873532546651922524652392284662347525298721685916145849144761975187415796219682173364832833525126383415271959754113898655567316967865124854643195396226448349984331445726225873746391321326611648346229432224283883511596272519293789597482915392787337854213372412395594542277937317925454355376519851229478675948627436918486858824898524132295897857518242734685442624851695829774977558565911958833146477227995284414337743142812272611246416843955246556627271844619683349596125351499528919128428633745376572781326791183164761466594981226242384467774716342797972981839364645997245291662522568717769923212264796837998459651351378285317641588758229324684351673641185968323463171456859895378281934791951939654515758446755139234776672699336446884969128811128259544374941493517436536858367186159351227938622158624666125663194568561845267461815511949359411645463448627851529918617113236685297422232762788835895393177596119529794898938657742858534347651349359939421656116962583647795711535532191441633718257434637687723727515614199324764352981532791663368623657432625453894279825985812827248529437792887548687523721475423252545622613895488927216266793897954473774618398128228496971631513997131727711372382753238433719916641335237729855777955335184287631437956516281359715347234659414624396691428228591332153349848259228961886642142232257235196567278697535232475618545944586862968316274153622722627224894626871991149755557274781322215938893945411267339358977269498563881314868979477274441835271682556471511688261817514534956553661824889141368113971691885483768685259116831882688168163531714114211851784434346477918751945938296689168682485628623854943114436979394327536647616784227253772415124425488719381961674884776531393834241342543992377976714552447148852255449178462379531699747255537445385755695183555939562318562797215591619961966821264247688585372222291288138281443191954991623724482735799776993771536325735937655197469258347692832383821876132938529196599766812257233837875875286248334785912114577712344514243165951577197175448114131538475777146882758272179252466696255932946784566444759313744568296867181411769732762114317739214723285644437172177765179287977874148427728476589955731261158144261384471252713898364453188378696912416638888311293426873413613381193732145169496433226461191862562328325671237598995927326113952777163133444539328277117373329395152526564315514123699799179974647856999184972231446293323596512971836299617719742895877625252853455131975826145635779471737654591996379646139648821642254762916366261535933751372634134879432197679221226975764147484375839787389246487574912877123335579381269577647262311693422376372861979345885493186224643528213798994212965334556625593444643649498812823932432711722998759138539212579288136929531598936873565349285182385896485399189696829398482213496248442331883389567924985732398669337416845663155654897333613546956718559966853465441544572653287577615955714311913391452321589876436346411327866211735352943661361787826328334581629752671733234386396487193912843614727737686222392319262873464674548684921537395126871684834928683386475618797169441813293343651534523952693932798775639685116872296214882342165786843761741238686369463858589277284555611369344239746972746223395569468325694572838979337616593553331482124234569622373352937545979483141112877924761925223199859562225963626436292799695244631661143196275128244697931188386263434955389161595371618373176876642289699377723711114529522672154335995436962727414325372566645929423581894332432372725845326122111495218153453842146661495853779793323928943192425185895326221929514442331229871875359594879786757118422746742661634772823798739665964169677312747154544544198584257496264673186244228591825355244287663253883547447511398637884612812685229349246449538662113913641678527496922744274445554451228375627768291211961568547799745151595355797485877634193684212394567193111598128672515622538617224979488641999137882259533735389657768717174489237564939136127942992197998245578486556886253853261555912621599995596768668759897755487364281745465471322531255619931843747472413553881482313958278818799597194548348381353196838318814117342722934832914755188538518348243521786628668992523569677394382122133353383661738951767841795546724592757997935557581882852744327254856668563621815773627162917849199821229593393332387255427739353231921463628824858911679675984232566464733733743851547892735944517396661625496424633941564174763792655559212728929521923423486213415965865343315445681234583599532524322252291346784834768646997651189658366534772866185443382765883254718777889415468852558899368351939177644439351395874651144337519455675515791335459329449378237259837589729146653244841441556741888544143463735959134383492456351471895124656271344535747686385976493151553346976154544747686829862241543732754932555215558831423227981137426522258936552449471573818687414499885733853112886116147188864659418513596146667434754494745274769515387426533989373327686266259446816928225266267293132211369237343837434275247117422854811373168699573641451991395872722476283633425259387162694255352895326385485191764164429282585737827152682964151775877339962549355672467935147768272772523318721578353568899266414268143873416275573787948459393415526217349255152946411325125231213388824182688745862646253396329247211675894712735366948771259199571681871353731525492783984353948115293799913724592316238714775996182135959531521943577725222398324462785456673832878536978986551487589598396144647967369191443624458516699351736719722791826652271216111326617323421155971764987196223815112948495457735326726348789167599318247143161597134729263487162967428865119157668133227357133761388623887812832115518547278417692448798996559394714457664622352771272386249222137697479221166322266248471338185858858857444221549757666585156468739127816881363413134536966434518451113729714562973562274339526696626388452386543295137582365262234192619849893857992193584537997763119875726146835247962227666722522741345724854743218716589318412194459848864794717126993117323655346161558869659228412555544998493867286293611628898391923894598815746579449438825674757764128973557661592356851996883128453816467823453594759112199683378479973122927257341162233775819693342357123413866216925184372822395739195737658147173632256258897287684226652644287233541535675794374135225816642114346856577639615545942644872163152729616169811316941576722795728385797884135283346231763943918486783481638297648494255725427545659457487442474489376682778465931954228647497263697967161214761477183398464384863988464328733679298192365783689434963641748836267983238811432734421693388769339671384995292754912758571761374515991653332294687749568711652651223249874492163295594148597124265869393727139891575324545473768591229157354869849554928865534719369613852979246212932555566473556444454698685896697235544717383552217342584162778687372347249596784266156233264934876681115257354218798118727369813665141638737951332793881458592288585617253554446228587936622814431184754269536661124248676234311556596422755172284272121372421434338916353857358358575371175857394547736213437816221498161686461317763258217724469319144212187513915466491845846334216418179485353673975129528239476926389897254814167354853763524451282789638711614757518986189137418834743672224896549575161564576112716854239437718796138573322356387562439275574494921999722434331511126796371967398237598919977592529892421111421753387739592279278514317787387886227186511755742316266766653279728943174464218558722218349161611694117579223926621542239722131298111594152751421435285842927395219572453381483474522667263234838949139982452997559766585397667199941481942452653146477288416871472494269791781475492613164141221979937677624552695933453666446333235896577419255926195551595572458623522535121268624566282146437985841315246753129964232424996937236489845984455385989461946327691736896522782553368773112413752877986434947675882516953258989264426822451661826744978649571649121491371283487173541732654554974224853888643463612986283217372496923724772133774386232971291225386619526316838436935529951987563346747951719218475532954288844876215755851859592444655288242534958383936983316631167183119212235437588532847329826784998234675866974541716171753747612752973237298521786235571817114548121233144128179844991679958714271529754314654267834642434719124324666442266855415281145474175276424999536246654621476434742826214495898865269232546465916282722834394326331314888115539874318581341155475773661352593345397514694837517355762652355729652558633456224151866855633377163233932471951376985168376668336472368383135182393643923432539192646244412157375268529993291823336174116519569561734814585156533589576654316234944652881154891686725658798188771473913893294549278498413294736731175494459799543959615396599244386415622489416349758496356425621798232499523144886763311128563581938725553225128296174797184535982875271383234446724988742352588235865635928333195641189295349191558154548515861533346832473188754832291551829929891786415873279555461992987437786896222417966322956671818724733464672142879617986539927213677623628955991173387929194467334136547293331629355327956869674868284326373325563454882234893743954796264991115958117818462365278337975936574986879443612855126237316411773256762248837863361134635488549121268137541192377791263686645385548414227394871578698614432861919336477128246125342112112676825217478987251275499371225911526145192184186155126683577436738823687299959613268296935467427739584871712962653643387642215841973535266956341826277669764443618221299411251367248485814473327616234484376386391274498132421711513253285537562369996762951532844751215117229142122989828712459971195173899274229566932381667153612148816676428482172461171173357711557653416239744714839145776432592742558354321486925839643388367854686567133394827281313623669528523716176219681188869322648227175541227441165269859415766764243421942762925235113697987258129231438875181254951813791219346413844618163183289569652858578423116682646564213812616532987716932822459462814844198991598142239385871458345434144326216971221391379977867446331269573436777611166457948968853855239219728448724458366368853548448823817659628934272555747642363936477323324661678455332535521672215861544469291156138414741614498166774884163362345213595624445971799426981821734541582196387134759238624175267159626671411453973548259657547115558152445227361338735379292287514989664363775925811198752356235115963294391381859136724944846111298529165795636551661725949689936161849691796997198837494554533893224716145164122533218583362116896736653175881225826371253145627924937376445253258919625615255428296835841197646314877534631675913496746328313613644762275754983244251715613949552698742878743287566311281271655541663484239878284725166186195616952962712298921846129482941564172955259776551718177847939925529569954715887311996727923143243216211343115715364783333613481718292763577158453282224838386423547118412884496536275829339755784711133476573412144994511546349196994671272822338747363671584431699273431374712355536378159522569749284645556121222996316411283399915874784677992553274354584327755729197293734584848742145124218774445683254827333743682829915554466816291729578651538484993822152922882944967578823968633781819716532521554747544792761712734492546796899611112395517448897927254559481962747643145415492333313292958974933785111559127863726116655581143453782375146326177936188284593586831492824294627871975279312456556163162281836776117576843329958393781348152351816344274348574519453938118677545671398941629886667442666853424123998495294391942143243914572365694661362353611221424976842128514372567156488626457116799887758221331421562212519113115347142489395362223678137231488681421519128938877628815787673732499677397523139524758491291912136151126214217242167867652676624262526776191931744843184923554261881949447198954127812329653826197572829232375171944456158565575459925587385921122477888711754296347399333342479693134698929155521558458626147289477123155347678771582781592921893396915271633172244185483632162754484855561555821223182899311328351614843219664431752872315146351283448417548746634355385183493282211868953623246753946342924495689643561773269147979262128879687764449555583757687921578364771727642291932965299981745963264441421659415653761129616848464655534266574524385416469885236626988442897685738885642897213356476146884523381612799927678798384644139667661385679833732693649672677178939621715883884867683964835812683879222312416839279366958169973747639165284832741312843849787233683872231864982453849177447858885214611224489491783159827253986715168533997765522759582517281142239576398894165876413634995482412211456685868835961994941745227445464125131319223551936333346423991411164112214146381967557675639263964996325449756752621764188425645633316151393826176713971343839911174451116773354299634837679136968453824327239265747659929743712451481158884936296615763938814845487848541738457163863989728254531717233811614729277949613532364618362139862199551785481319114157898392585462661694857339856123243437964773815162134347241719637468784897625943791771655836433678322991877166863173462219553648845489526298696261132992841362856855733246192617969529256651777998365997861855149781371522413414486325233933152721552296115753965555223637468227528847614668726123973721765718599795272464979844572522278814826911569759847443757591199565255525427188438212422535238323312926696394949414692889158611479445177139127434962892424467133224288373681714433552816657753712253478561683551446875646687718135779771855913121998538859424727141978128316918863122669126363662651384385126552612345351515325746567974878997876264621692119393946865268726437637219945667617859919216436669135419615223471651977217939961775737492662124589183917327973789263197965197282919329547644632699235961411178664994572345159355173967448727957521512774873762345436754452411797525214259828173136972515464956426664496612971941353755675947458674861385851576885738975137866293651815345648192275424923387153396462168693255768713192931746978428455775221366592474168193238423646293453174721827546274925262246113371193149134886955451784152622614194111253523494836593327251492764429565836178487626217624189978286432295511895688974229256149543953543927747693515234822739749614157273159912512828376295945115571852339998542487356214853193251619396543134645799878296238741324622193348253265741716147213165167366831981565297763827465263874667421277798479561162913749251714746372223914761618151741177469912225727545245596428413177163224531486528869321922762179838439919146382847194464648369272345557276319218139278283943529924793461858614957481537883571764487658816341454296622616291212246368549322212851765191316371953976696855645339172183378289976616212739543455768377323886328958918783978544294531583342756152334875384444428742441666628837119459816574954881456699327594612681395327724223649797634733927359259249846186119698382541551472643722831126332949776394825112543884796711611233974485934327827838735682379949586759269361827166953579455821227824111239397627925129321263366844269444569635195351174314425273723398731949642292185151651453694999154388639576526967586752465382853294834365585969393378734591771592255538744627591163752655572847577138996167927735144525573548492585586277222235867445325265488848643772958283278527797389136446747559318522991145426834827795312765564178772913549315922137787725922426111817469584781652498541112351265713655234451927769989663218183266434955388873383879988138732155646537354859687854363271818169847795941942737184733696412215995973314292653617583279193844939135736463796726581472331531189543355272118235967953377593368216961416281213175111672918517253839459769246334844347357381532188842877167179936861819362497239951433679347675566864583384189873647411866624411193426198144643369272143712244328135123943447777231221717478466616292655133447423111616997936422183741266376713923231124966749939613458116162573862312178319512591727724429241222484857455161437594779643343882443592668949986513961373434333994193949112287351668293377125392712986775384114314685571889827619562716326645448555524742277187975126125521721948477164668659166458331325823456598412953199314666542791519522363177196333397735998132268764811682146125949623388846546914642198481419613941974994121627789883222615436223325312518713129816668135848225573937258467259945813518444941995642677437481196964447426612466433812314285932244161488861512246333341386723795414572184251565347113173496493241976677475869166841274326261332526778915433864519734916995621694342163521962998441918341746461624573916186811642134495262463384122911394512746196578488834519724118445244791326625549419983658318464755437274733373463486444518346516321958856223958728933967999566694937365363433828221975996839841492378418222879472677978352334741527122937926217713483658635575493711826239835238756331458397232614622816636223277149897815869985342359395837895123925182124972699451781129787499323251876799174889761336337468312931239945367213886769581331589881924677776882894622947354273967241462582745928689672842376366451187171998899797816666765973922178197886316698534526549245244747586611861535153391222555497882696462848192368579712458676261817764374823358386199663868335763961562387723296264244942162729312845781368779335163249214311624781241161581429477383343731326219728297725571734989468239372652725953661834948491873163164551723751324571335744236934959956971522346529228983335572716952734712452723973127443178341214537345841714529715788953969317744581772552933286417223716412235222465642596614478328384218363523861295729743841945251421282495911889765243662145538354484542861549894929148446928515316136433187469182794255569563669852669578183336434225277393485576637679358798548857551527593892852874473212416424755282462331482176182348485317119754962619399661615378318657912793116818716394482719518255734123784333224785278225251256385652363473418959833919263431494784226438446149221149247159253934142957847116985687227293232788726859898249787436682756381995325967429253369951522335862572319436541524837148922465963714741355173448149628479811171843191751883736259965451473752161788776531874183568644181742869365651653775131366761163191777529755479924898287596292669553438543872134426487457314463317982188534176362269375243467512183679193182544691167444235613234268883115392382265788542812772419291684346332564419292151782219626634218972833825267311772516124242714571458912213796936294332293665826356114477266245694137112643821975547618678344387683198136411446534744132399814256259389682963436381842396541765358669234264475838712235783225377991825658855483748372491429319824426259375396665225112282792417683712868661213364213456293172976561816353575213484829373852799997241612545528274466382898128836835111919312893154766648747224894757917958741578871764223883614264182418467652546613952199421811135177288359575252934487413146244935794917346721199269177665941483683754217817712127267633372878584124374286279732148718451682358671771112882363872972641484765363343716173724344223962515869414871291619747919244594151962876852611478842115849749518181448822828969116997161231467519696286648354649124197176729678561867473262669893645179774394478918953923373569571156218526323714655183249347825366897626674216232851455425561537528624192923882158653155684674761185629848394222354757729967948335989983971414933734251182741338224522446189669478972927529564232592132571375537164875148534966573486485592779897523996874426753615159355522579399746126425795261768173626938192363898182523288883939984575782885227392516419459555891892629694663225868463399985668834516229467196848242831894946247867225475573946993893881729274221555516819775889174119771818829396897281455547891856652247198298322612722473121478614525586133725717583651351932951231178468469397421761429291783544514689782689878221129212589478556215266996298524271824978568478987136128783153514731877879273443736991948261673767762333568492489256238191198573899964948283387642537822433614586854896954821527943555971553681181881475919456486312564362529573327563354684347386254249784879519668921979625694554734274671121452234695563283586197214171711552853422628373746529275113647635524532367664799165991114521823581662855779999745782515976157971947977423978577233722921217195972438848346443733424275796536587323511974853495676726221787666526389728263598618458411412382371955613658494914823116371537888481534117436168515886455515935622572452732353426691446334986977227728377239333119146775862622193742639757952467627288815639233714965443667721435521964662222493126217468397973217816145956648176769679417295198286153213443252735657777229968124478222429952941272269155552444894143429485343671655164358693518658166411948842637913432445263999391824354526428444784787191122822446855251347135684177725752415297195162164822483761794774966999462712274377919918742338275811742165815756853647664325191961842414475818757731489844281118373432561457323737152656665935587263511376775974633978668322945734526153329391487935558677542619647522141114757675682297336161641548172331444698616531835899917636544813672455172119372113965438343995668281893955172891453437674812112913551653151778361647591886295667761137488714696798977875936463455754946373354584724494326457728716836844515795121319637128419897828957798272483689654625736443646884121927545295639844397447379586347655444783347388546587878537692199311181983434953588239119996957293243486197754596731912615488758336858254395328169487441469239156552744591387768938435472371699787721967163817539822723471937666583467124153644649382745362215856347952628772465725599425343962497865362233854829449848633867711726595953843418696259555843341534662912655827682244817534749516733397532946972231852892171221896875622575926271321162396434211114347831821632663813655666119195398841818674295575522993568533792549114175165173334841496611767185172419174543764877918457127961121122714655231758415549483556596511987468851975493334412197921268781751236758951246234381492348634548132916419968784631355978888834616443679526143163777277346991356482178418191463381293696572971619416372951441168867334974338474221419129668388858854229137598136197381967684368343488959427819133624156321831199989728612145983757871624892651218227717313372955113863397196177324522771873472839921512831325796549877596327917278346921182646883511423945293364168835379365712837119398422342961694721567229151699859647839575568885972596432388544738385379861747552671328721639649123452615726586655749415265616635626252577612668234937276533299426912821627354616125743477723574619743954271325355335156574478938175378515115879736564526938578866886848147173687759839846636421387617913817648316244887624513994939454662952197424552525179282437286949913464145962318139596557982626845983844938928117266272982159647277686142447124261369143865433649767744216624281742934322281429437546168886638258267542427184769617396841946234187373614829443131167569751885146996818815251231312568749747338992944924496932266618717783657424113697559789266665582823162452761614193374632643231857477316778844722762787741593418671465949795525781114829997228459946235871626469259141151986538884538897999221382674912723632832484651936524424265955436384165539843237884135349898989812413523446835831415483369641816824546744798391926525958218444496796523512215174157672956352344392623464792831611795945769254889916626635388282973475965853192186579375531147513544116362614275565537237439993639933431199855572641123291896448844593756836386623586229531883742949315831852778599489158493889819211359779422388812532459771332387326573799891665928154532472726842294793365319367117565531732133843821826756868572536179318867922447998886373569916463263797156918613335171484716928773386638917453197335111713335512974731618962248547637638313917142556753945391161115691718171818151276784223231343234189164384635963765869991323963378133963362131414836694861565318282933252364663943529295544317727195515338916546263128469166656592216797951648112211839844217744646818482842841136122411511819363575187248982146219796891677515231172324184664271941121388324767232158333294125993465736841677379541941366193514379166188476547311876931123957435753722547868918759114887728875911753446369227116486664874233323272554835329341942831798331747264185291987193965385789827375657615776452151763976636564227762452826885517284514339942563329955411424938527865324649496326357836378352587962556436416226824718141771397825121555518848531821319545172855725532537475279596418766635251393835512213218518335582868397746163677911261633218165853743769372617722495123877913372261554797959334686789657137727278357296282821359728753441979215341126228837627999196462624218976745268659878552112315881245173482778752817833183211462496134911756117866974122545659695885641329716113378191392951546497367662116694512119518591681166614717764172577575225627542835862765428452837793265767113371589997974139795626281883173442495991266394354191351981574147937926794943939371581485989755533484376815263625352641141935218861482941551463665657663832773758367288881763942858299195545216858811382822148716875112744485889544885374443952653926816925757627929838744186242117788353541735371229247553466152275225569713772723145824673661344372557456124756829619561937187623636673649722834288282158932978943938934428347152976162377723144183445976481679385983888337726485444486259672259578378898146181117437473269248947153729676388365691591622596593477464495176663396236393887446696991272798222128314271553925655999296826224738344417942566315711527618366182231927441342432853624147971529869719855389189919399165333583542189616795771323582891797994914668724852377775544652748374715819234122518132688727328464862591829524929557136582164438292956374359333117249849247488895471116478376252992348249511636422326275542589918861317136195845424475234127139823443894842252322276124376631112912737736825862273819738412843888134333751167912597933374668421898717361144341195687521631627681721253924721262637453171912687296761819337496156662456943883669725882831846253199121212671481395175612551283586551651743278299896499748628233481243381462834323674346813777994453489632785335823911961938117655495239582455244596146683547259699195776817862895937674823478139147345613141191848991467532755616369662543526541475946819645811614194138287715397587616437328281124124886319494713162777436729756364273362565864734753786632313872325783817178192733933366638652422399663579187113821434848668846811729824325662543967722624827321135299132527134184482363166878947842667549547963833463127437415167311116898296624219415181388533774728495956515983837144315481632124857685366492126619663815938442772935235787425864296154934998424228493435181826496522394114687366929331884672473978986694782139775763616816593364893718816818795334111236153988288932159678657666126938211877711648277331784911857872314429663367718265214628943221542475384552473863135986814953482326266832715271195119648554898596615581846125233137244534543883556444887563246899611465325956312467426623945337981158636313116914138549286213728815552971915898332541454121735773828455522464159515247947891796534885154772658185675721968546755249472921314533134876167382536676726552314894973896123516968792312757864441849916519441485121697764655812397288135524711873111568982995466573274417837989973939855144676137527741392232236211181849973481644737692642427161213782446297884579323515988334316756688821143149313155234866151187119463222462951515221529351271715241179948629144664352347766818225373636385287671114476223449237268971371659761145885724736129962918186588575247433174876883361755595482379519186989675655822889297599612842567297142393354831664285455696421614543477475496259126259943858599635945596911462751265227149815471797288125938373277697812899132331545633544689439455161159686422131185823458393466915733831687363674369135922978579619176112852793939922858112836814244549679363267781916619853342836552541574984872132983791643857691733214563982776224559147723691793944161393287943119887379355699112162881324816325531174427813279165964642358539511541869455584481192646538627548452728448174963563753555367852279818641425116321911171248197432123785687853937382254531491795188449638625613772591272816381285437332492341295283512164516785672658916756573562634222331311828385414543638778178294442196597474139591844365129434447451374612776119332768191133526553326161374569811214468694317899731237552619893372881325494962695893961687829268586514531326489942336161844939235956488191672615143981628422289915345758253949329121693268722943857495328734919334169391194296328637929412533866931432127664623123319918932393943563881595395775579251133871367461546578321537743411634135115818574653179437624887227263151718675798291695385592969521148125849649826644315459598472436293847868535549311598637542714495874274553938778257383518441662436222488181933413877719696813765354223848645152814325247676144466233669893249519365274141433371271275635555983115679642618235555511452364616799737283631982974466176251362687844728574254291643398331328151459794915829612757715566331758277814355922382337264244741845115388469215791723147338187478342424659154772359299332419629485181749197299541323726966511998624913434522469641739677167227348463448296468794296126588364224616712584884625697467535242328546258263527421552224848726616556121656815929277516869165127836717654728336175155876137639598657158237366922684723142895166173729352263917173967758751324136285658382797188121333932272318443831241372715478815867261859646659229356281573825434472162511256291782429212525462294354331127462622118148227666361785829976282389798738688732833457753971384451544878995939116657384378135467346756268152896311861484464437385679954474544418961765131963691293787918417239859439518446519569629334551599785997526512262893936881869388566164391889153164266974433416122537229959837496476634916128823548222511283119612598254578184375394834247232729794289573423256921242147613362676839333274266844622234951135666673912892286264772292816429948383245289137665575624922523518744629277786436481337858361211895553957925582314643118726442322444465791451543594616118552623464651926633913849921896144443855249515476522997919518327339165699486976572743379225613241783211477371356817925747654736915483447738874932914892193186633555817353684945292614342742357993451495162163227892968276718289892711631687121655711556525273885837648322582928371175465796239975575916376612913734556626231516235171434464743223352944287859116462357447472346781741427935125773246286874525882469768914151487838919226486447183896253555366633149137859837654152743341744237645155522281655889781469416416223499698366527735245298741834838529447734556387334483144569661991473719251826172478798248345546845285534813312951575844422654369552733752253487397114121958641237331238314949193811351268869691596922978782879583237746814339641285729175844853354349291764537172221291262612461396114325181111642379186925163892661232856667872945158712551326151927635467128826241384195165511917189542342831556677948784963721462338585843151133554325682138411775292676394257559119624646695495833438138246169646264968658189751946394955196916423865918163165533624315344361584644135443412887844756188231817268465144679288647373235416398417978334721474558116875471127986727664211284757978526181818167761614841223395521366764694617921133154814112559397549765141621731867831426243994957387256543816747857187262968977346468442744434452117696933963732935577663347774654581567757674671938826746312656419967759186542331118996138221985534521282856296553375982164761946479893328814754861827716894592872342828764525832224558198731577553121721939678453583464669376525694836118315515469954764458311466828237985965127423183354866191989648429156564867497217794139574276833153593757643567331676427544345519261846857559718314198453669616596467954885274777454641753725771221265224312593192333475474524568622477887163493969615315371442743463168161864589422128326194234447447512686794698275158122139478912253225135393689911369364554381259935511159415288656577293771243131755511536135966453855786239341644671591676339193527983632672434796641268953918995677693464868859778481512671241733282361389581144352619545456523792687334688853918968223412526116792727133852562825483346212442221596359659179314824599442184578225455675253392497814861626543472164667178184943414119855366735721722775491995391223323978581792474197786496744126164719685934377579984195651357339677472658188964896566122153563379485138272226188494641548216835311518818242579534689561768553525931552632183922396337453172597382882351812466675741438544351729297757124614833741553241676392172534729342134615321636198129435426132361145618483125412622183964751662452873234382156523233226574295585674345932823476312324927656658559577295315736414759396123249544554955986831791762986838434143471945281512114295993624447644397184957791387193646667286266132415228842514328135469173586991815751134653632753222843383544386745184499314149589648191174445566575861979827238852283935173291323699352755128897169269187511381487426377692499793768751621521295362899134214215491566441913114343278393456752966973551787231984744659966588717692153138722919766225442374874393471797481671661859847756129963228334176886527498545872554955377485774333113976456116483331252411722586671443578566988535797593246598935517683923478783336524932425712223367661165714557224422469739714762691492157367924382141281781344462494435981459538233531819697611134885184511267645851415841514873158335246293377925526358331135158394436244614222132619446742272655726663982895178246619912323689463335523738337469621326396418348559746537846555179372748452734267641848189222527152781968151538729513148336272342964387785466656572794389538955818916961288526639431465891681923715638853387573945415194911184331233155239774767719776795515627477138552612683681862258421793368199728967878354672472744853931193145171584997679432272981447934314153981748695965428327573247182959367715245333197713991985846355837577175183683543434522131543399464421488735835228522187814262192193458994921615228863243734596254343286785282691938317496936441975447151731653419991552979355132298196632846634541843233873939289121581649585526751639445755235956534716939945447121751419211766161377389313872925466789698628465634144867791315474664238377837148359782981648935375631574724998325389329362477712861168333692513496137746882761223532325165899777121581922837738293553219411251594718164585759874974815255947544196821811479931746871669224114461143248435857683468431994363551457921314458531168221149635779138279679334525528959979629931325255279482332364669526477532346797563867279783666287914923467668321532732232431114391214947483162721662275914212588971811468176116142842293697713614293216346311161218475813798623641899614453623924227614233293831518123254231255357833437278513158442731653955633945776537435133247253493581547524251513337232856997855935911258648619115221985583961116664572165763984567485154717427753453662486872334175769169397255653991617328731646922852532752251529567213755929333819827597411479237926761316552192191785516177679899193411746535537694168768616675642934356183344968187495363191694126735241357595672753751942741457455546138297688351655986789863461968595938738485526817374762617632237613818487438775613772686821357416952221985341719216681232251218577281684378625816191386413751983976819262231295214636261176748335244271514464147458767594173162183644175515493634414951815184612253495874425546131477822791188721355525973321376788573635453722527446624352929462936359478265465517752397324584717854178224963246258873463655248125315876161469321234828183574898337312553255281536351659697838234284838781447141417587858743783541221268572511653171363625144571259225917124436479159731288616471129423687928742284764155311151132963169215187345917941661768611592379226418726648322184164415812812445481978214232424995953912546281366768442252211754133262616178743612296693217149177165747177382215535156559438279297569741258546884576939125719956748446319766427969745382622847146831899611417592623578462438294838183176485312599375443897511122583253469543795997762211319113226224786631597255481872337774547564293868288361868232863369721987222897159334918797275649823781434139333186283355985635493891621551585173474813776987833962639419656655726136536817573511171612945836154325454636526827538686881883762813287454744832226397368327277793459918216222978367825781748572152651524155489389229353553654589165879471681982671191839638954697452243314927241198322129141574639846185186967784697913361755773548278698562881797829111624531922751356922192614154331437434475882493314581764134748649247427682485338845519796357746125656652688839587949579297625149736127688174516683351982522671427366129856753466925511536279629241556175972977772863645963479428169989383137422669671119767626284732563671729328785178871715594973621291316634655619857286196833661992758389171547223188378991773194554531635239852524237426514145516171592921767826624675111863319751323939412699844112397684947194418594669174785331395157921954285643914132656185967142631133568973261392159282526143159217737297114441141812817963235395636985742815621327867957294634872765711583126622494941879954739188748463813456167721646458154848486969441485366193198869361572282771465425683129365221816873422557987325842979625939315475353995137415731167729234971264837254221598967758383595669487252517668972172414293521352833677935465689636358186756745283587668156592174787182289434564261692673272485617216141767185777782915271297211114731398548133547428527352283272887699912531391678617265746549589964872612188421244739231575641842242228545111732448736389973648683641262559674423271816753261168941427835662783961786329152575763915569233927679381165565115176322845895464725897941367755954654342893641336587351481134933266419591288254652949814744368152342233354816267839781736627952521376529227121123968335155198545139436489146868157845873711543633913836147531474465486511123798526426217165754565889884833127119737896432778716815585635463111194929698694858297594758478675392154373126222395713137994531985799926187128229583652267453519161947481886313373646776627488264972714847747591351452278738867164626629856531422755191543697378833626312793261862641354424216895842951219451455339319726766635461522433365416531215168847393575245899354293137125764616669227127758414539112221451264366149438539938337592954639997762572967326181912864831796179962813474662519353779525955529278229512485312835341359255344517438822442526299649416656951815581697686414843487172365111797171445463868527189881917131221248252831336493985931727282964487889476254435749762263821573597216541561765952138922693854698251939923433155189411642221294747697753118296951328618823444246893868453589563357257914284562114495313941384698767932648515487587319393746274584683123194313155891193122936861565423462854379562357878637812731779535353842754332559995372543875535817253648756286781475222915376437195126716215214534137487247439977935863196514872382976796478255286139477453985353833656894646759287336324755286714376592351238858716625666449687822447977311534234611737921549579652743943564866485149746446376274662773973318317647227637524167734598464264224437726577876455651579889135689498613679298845865523424272719488612312285625786625586468957843614231426589353339372446924249539872398191297821838682581491311731425646774449889414489429133532831126724442136824554964866921149396485928136921819841464368733128189426943347233816158542817733963667884912798126165577351431661991675574366889182134855181637529424432132121226789951772735875361845791263971414269949595638895846122383954396737421443413233716971624982684926724641652348246117424732834856122151643714838989573941844838414245617293671311482442127147955352414499279615522619874223636684356568945567157122761718313894918336511527241431363226489358796449418527181846232237213471859628749379565624646256479143318179421472782996511387996951914211786141727541642685724675231586283537768634273226993456753351438479672395712891144591531976878362951651741355651595598439554173728623996772214751813549835462427345744786263495882631764351198332922171366413727514338786389942156176521369611484273431164779831468576519571846345871723179741547699554366316461445583596958117947781123924871481286676295257216736742635423664277988145994125369595927219988379177932265199418881556647632759536217586195246543648788776467764511786648756579987994442642314824122847836769973975466639788673643879923967338237717999118861614715142936592237912945443684747821537558473181718776259984567234465419474766181393559432725593453175611847975796457226143884997392856299333273844259495211697342734947685681869827165613661749956878865224158112717995915859559132138783283177127236419945664722867371211496342285353965431892386171923478924753271972317558172173179126628474944825879388456153297322271322192399763588449541566955489821538784624645629347547236669747652984313635618712517844511144878774991719968526157389747891352638848488315488621211422374136738553442878889454259163294679537954734793478954532584712397428726877383985848681684383249217235312324219647232573373176388789679185988912561183369539593128793414216254799321242115642913836374322867944788567152943659581332895163982786546854563262154329437983742793566662363455525624126854552841118261241662359218198276974645919861958948732927611811346271932294642738526419242864175213534546218318342672838764936941838558368485267648285276867176244533844259568926748354597463534444264244131293733714636638757149815145961274176893549252569599252773338422331419918849497514871596862123534515252884252845751154142181112751317285236428661183342165313961295922898927389635571219979352548447541832524211652889414928119828727171612332346964935364579522778545384361282262986764683163857287561338138162355318221417615544424117465296319718351336123439413994783612147297734177273515271637338296642741291224497634664919134734897988971461592375261895941833284888598788825919369476618471192478646797843673715444617279733111548993715166491353968943121681222317511561542428349888288118583839524151169925935374394346491944952872366757445844362868723881737727695315145597941889362989521872531179277255893281886551159228456684543593519151954953474518155431867796579489377626156411822274615286878436758316251635951388218969197636942988639549962689891845146249655215145172298963695869128499729467432826636546142247261762159596597612211816241559994274318442426239123153984554831126878432756354113476346165938833719434811412121413787169695635562244521853592189345783638661532368268215324321835825679836422954555992916427378872419283977844954474143315791548543975945852793859525215143141472245615829865264235322633252355695431624971125578327376344179115827338723131361113183337438133249338756997526431442524836519512214565314919423753471477948665889957319772177517312134477361623662528824358946281661631513111224327935768779432541827292897723329438417225185693166366589892429493326822481112814285239211113667625471463921553442473722381711793894865131951916962126445912273911294931637732157153587735195749188818383615385738911932957983477597566812654648612394725587562152814445461379532611213332221767685429297675622453128758111251446229384719817732636453946981692223462599432437154174532584551862645941868663144864239937811661523741263285724445151946594667586987432748729387574763346442394847627174281499579983131936527576824588296295663128823463768524182462646998232988821715271513593927353457634121369368136348978459996847816397234651576838452444332744259133713675148437168177922711914811291298963566555672878166268484939986478713761218854929813727776647533412253198883913269172942853535589212811144318782466142347468266598721949329248414457935246964344583816515846869247414757181321711758734539897385221472643299278346753794321329772111434673751159721118526588733422899152921514184373867797952311991613779224653447887269619336969898213882327155795666342732569257899128548741525512563998159883114883837186266265787753841296594764887444675754459642188683628889886251356173211467529299377617729315195297255461514233525742736184116636531454858377484433115665954763858714153246395189197695962637619644688211466497776285369357624337733621565465613249623878862993891912958763234638261928414288577298465255224664911277128784895597652545397517136114416676685519532349215232325171923223159347814691115992521785355842919835326893444324147257277959495726297344962845798667285835767297223948371821947215532638623736318424515422524736713393624481762728637644416186541151399964598381196992988894666659716491885952352539948781925247234961594143572431411768765954549685621943871235315111812818575629483173898739736863513446758775881666664387178259567835424479981233149583544776374374143635944741756823893582675251164322662484358591496272379522367597986495243976552418616341781143195728826131291691188758424191435665199792824449529998226982684287812423735251773229527884877755274927637519332717825341232296793318172234817919641932983513797265822657657247874865857623432641392794132239664138742846375535656144555585325753636259294536924177128417886818629881361464376791975591642299457272444513245443681958974475332888528562414586377834321619489156222888835965296573282765353518491679193426656849458282455932518258538571857239223449178311284311395273579317297817412263834354216851564356934374635736358353482736115666989599197141718813447841185157936382419642543157522712252744286686377271986895125343629436754115592173771214227472761992613313655258948538189449626219613564136415223625398536665643861555554171415888117226736619511245961288746532521674376925973571135146324131521765253477185218351277163883624875962194311664343431859657337282459265863573569944769333953352675776112562752579165641631686148158223614269388539296152443838572699355461113281295272817129487432157342981754973591455518827498915717787515946168654878237339815587583411645214877493894299566197632549246541662329881834489652469216675229687923456847493822383426858912133874681734813271419356249655184742674297264913575735565789153542746146559796211636841735689132717336475448913373225296325942541168282212988676888523217463614386515512511171846117762135333215169584967123259932513433666572377711657421215216339933192665894228242151464523333745837632369833734126412619963667963149636885232261582961139592197394372289786284665633689835523196196642273944889459583373282512471783145824622812785154537822581197661146352994246122711248651631626535399712446384165613682235332618269459216774313964171461317428988816237444995298891272236729441329441215161385229739239596129387343947248421723175364444686253582397166987372139592541278363625824959359645665763698472639617144891623622792948996516151623315296635619278789811948644782763813632842224427967545789569161453556729212196751424166695265785958885924663542496218383386537826852771464497241489824165524253533372336169485553497823328427117138424447613143943987924594569492376428829116611883317742266782128178166448915441967396263944146156995374586847773929786261729266461368263549966949657716396272722269749522667783774631211463676289313466925196989897128551351941343669983768779431296384328418273786777688334289175829291494999367965746411639812164713446823236883585369961538291286622263864938766559246416637624678117596915315581983494719278536536145316324612975433236495386989878479936669824813211355587633677175134291772139592377319513938654662872848924336386733594383416463444121128368618554395195337269464337436327562287265251288684885473567726328276864745643817332998884916576183186551226145137598752231765888244888495368854171577191471237864264615863272486584449797661842665296353737488176196659812112916212637657769874715812585331237226178762574347554553377432935244768976499639296325439376316939853652485957636661655252816829447856569346259898296394563718718499269131696387327846228226893489262377927171119178646172545391454985252163973637696326993532653242686282682294673888843651735577524891189129116716973142136131217966957334287468993731278347221453667794617432195973972623711679742918833672276726437726436978185832471126812654228141331667576231279281552985925553891545266888727643778157921858951549473414372337463544625571775499637168652354333681321425864179625146895385749289456641555212434516859537894751214865691151458173524771696639376175299849696344939132856935584415438141772643529864585951773373344349979883365742431372854242254783231268452616827819669434134587586599398866636341291743878521793126517568387949626951288789921171311285318512746177186458742887326831283885738186219449534961356131582569286117162994796179598918514762287645654156835795963543495494995914313535458783338174441658516264611295525562389189183283474621111353994525165223581882944756455793741581191127864694492963431373452378838643288337656437663497255566775111777119323532158954878143962314215854841454937285356534113227215877525166827851264922394869481222915157627883494343781595429246419598549524932443561819687762734892387324144245441895596894782977849879164877549549584373564913342727158456248194134126128434248529464755697169785756266123753377864257416696657933593777891249424419961862645411535598514529152353621547293669543339848629539399159847141229119393417776638652862119723684891782219361524848921364242926471758711231126217296415399479997723223183454615282526395293448192951513272263613574246272591242673166264539382242289956262214813484564728736752257273172527173952159868554462634666238546912237337523233298926346472871527678792693771654392133413341625727511634276338919587429219461455152852976442421326475865125194471285211786421518163937861839387482142545138715946229585534471833782956557111915381348277671929966835354423868776427942436152887513383465825341841326191873365556742822599359621461425727399252364424985258663649652594213153524773591614423569233496565166186436753849948352368752329683115236124815661753651447922615996748724553734561222873179953647277754362717311619492348364327366243611736272538922266888238225345683338457991246144455363694156757112421956861432627458266456742745562925893645416445532666175426713946735774634668751891856398612623178121283519494414751178582131881616197311212424486547736764597856547982372148165717266425637378775383388359178984689253282229923431384156454698299998822456955197231975376517487551658752264555119713634371192244563953845934612957926218244727782116211671467334421136562949427447716854855362564226852989921956664185511746779452349397479887871339712662937815948168328881381139428545868172232517311213318561348828982349171659353211845475641966298423497184551471333998897498481118543153924136761364487256248177697567192737321163915847423494522655755191268848963279794642772829563936121393815226519428682593847829772723956184239311879255335413747263549144366268498522754746367611247553494546786629982934143196553553645316145884146373471227736445335699576532441672374568153322845754237237381466114199757534381113172642952874515252237599984946822578213461892832322813193342184127345231371963745841238797494526358992835223864154212263896918624792217576231646433377919774721398416669742633891628918968257759576895341329591163324898529235852682261573127959856861377726487735618565855232471685443192732843769788414432175475562242546187249125816381449893833384679699255436147593369651578237456438788528622798241852584861954578235223959954673766267139517735414161822764159575173185117494437936525175454654568545684666112118731831571621364614685558972955614231522752885743115888343116513249516618827882196686184191554437322492414824972334789854643833383934932995956237482928978341651936649735229976856591221968415866462381896923468723795577535852614383442749174665342518916389966433744144136561388893267158645521727779587125285453673369643898258855535165764212826695776159761149659148554522639135545525457913232358512993159857822569722292293927282424722886645216632428244786333913164751229441842816417744579664679296756614464453451636592621158593915334235621319211788721329112663738174541259214517411442478469626215339264514545256121165464549194415625472414632263895859214854246132917878194639479136217657172554691386972765511583219316263347655746364532644211353175656832173496919356462895691314474227659918177278974928251215181375774165931234618471233436976619512719182211638851687359739681868251198949316988496955747747291371765962981293736387815877595435345358279252693381118895126396472939442467384983994284866418527338282894132265855714721292716241451422338697979569517643277179213697531446674161612797177558521921197863634653719545527115941692485211135386323418546645975452652566593251298523857486225366518316789583134766447743773858549311525989628477386838723365986556552112145577835553643151292265248746353895966149723215813839292125141651932236244139221526895795619612846328251592369975447315461444861785386883719648451563971436582877836627329282583443221839453752266339441291251115961359652443668142225768533888487592737219126377135387791886769531635476497816213936418318157852267991178279259613415256815561486365718293754758333149952388437952891233217189216528418455228381948885662179931423647338466711734779478471773932544536925617264653493848872558181776152421971562484822227186267442235842615222792231754546474417385513634425213565252763752426291638927399171212284787316191678242588815964877175513768912179297618916583813155377726948483865225143222655234433974242887988557756815762253184466195387237382464852535933452864497933691736631821639973567411225375253863121931566434784449126912454839519153241111336611977791124385454359758396923126822639919264322171785496319528214669355624615429536764248984225569355691211835943123284977111651371834657749493113247963325252919225495243916285159375738144377339583189334248632877896167755987144334659545342997385563987867197286439833645574985416539217168347441645734694281217224654781112639334884371681616972418683315288334777377863265678325511528622969771723892178359841472342585114539594497869782743344692184142392623582624847778915349121592428463291768245341237693296964259889211968183518135165468379328422146564111921654121114498965841777312123923821379854242684983659226527524835485376233994414953542533433339195476461228596397552235827927553662979552942298181111818485937511558772829211291126187193679152175262949473438653163441826868829766434279176446333338456237218977517874821431911277874779874134588346324786592178932883388675764313286382614831831857893215344166836664579851964532389332521222672914874543461935331136425475628235569373969317591834566477235448329364339537355392157141891164644178547194341216522919983734988464761311162675768921393597442593417555289284688124982931297197912864243276126613881411875675167718759266147153475625127732831289757311664613236193719447384713958558335359474334455773794856685143792273792715291298516721918497769124671277222348556679561118468314753181525412588314268845995243529658663693364915813813682397344845261185388349215611668235411378412771228964665298811523829264596165396433132328285245381175983433139969475862244596246933443236516325451662876668354797967264538552875233552393692162673215169277112119257852125524992234398421362919582756895578845252662187734465391799876988182872165317761435783275155735954294179262112763934213298721877721261151832216638474448449752996435695183668348654841535767246239764459375196773912221933728147613532185765649712525234641285324442317263979167249886667959958272234579553384645731741671563995286664834667599739432179435389482252661112751265161417972946569929974639567974268757396313742865616846862119481382119999578173816677527333171626933811548712856779842376958367153552963763962311165665223498594113997571512279568279697172733178249966492368724428689435413431194185937387469276191757492943164183319333735662957479598751537918619279563596872749857593156521812661913634353764469181363659671657691797662515384857697929671244239169343143489127936136236762379131323989536556943559324674985255214369175332837172614669114499473133822486528736351527237516926357194264247822766778794175983435273224354223158137944776573229227814382486499227936863254383891175714647827766636247568246751159929334757859444887942188446238394366715144237471892251662935339782676261366494417172268819579814387445537714273813316599524848215486373976966736491233143469725357996517925815335583921364211675662182818823459485868514624682422775789481583173363452866478332164883641143871759665926298154548399948232325477259851253294943841476476371529716339115123211566691729361131352474985738412354387169238795416838847123963278325717359914545713242397582624626368541644356115737548135971815596753531231852378238396358412559582561159232814321653719621976418147912773441998466571853378312845861358183669623776942227456694134439889873814828585487825586148235868445182445363433821993845455856138645618122573866655853298523935514373223521688699563816756636218211138618364985684945435664344245148167658683815573339418139683262251857835458638993543156785597923276564384137375463277976734598644868986483377892511686816477166412686845173521596163519634586397223517844599135835172149126661874922547435514231864849868587156483595845177192487243438148685478743917829524526153987262184254248472329247137213221435596713683313243945879123768733211129489851322493762638261696561834163428195244616474991585643418325851655757717939516332456388833583258839274786691224687418757998236593776865891426111618629764681455217345156485838582524974652424299442192349137842264331388335449916958645121593736692117159589762591415713417295825299577684387249534481822212152714822751692862715481812587372549357221816667655379411257434471411521931299843352882373176282931141973466319983881432472677211558569415173643561732227155998563227274664472714239483924161136938534924131572962313822221441414121997858422546174897786591578986181572967271737611682764219514276363584643328754741416457299711217911431254721373859854551666255127184322652831122995644528737182331318562353785368658384786784151626477334729224547459426932959326658492717325191856686548283197218347657271221313139988617565969263976336919114436469781493434771173643425875749937938217415416372473329531397479529215477959278459156618342918262642417441143762621433381455518983376451416679629928586353418646366229529878223714791132725412784297112157983141342643397375285786629776691619584428863864319611395167465728284865561121541876967289236746415235496296814112382728952785175221179214448386365343377611142164195947713381416749184315985755385539822227857358849613935526572152384585424876389926686941254294197696524822666123927598435454341586144863825232349175912999616363899515142492468824719149231232588176716177347421969353429311636955433589254161423795578778955373996787851137533456492864129443529245453678477518141375326562792991515355134818278675291984635487399843378577566334579319555259845142942833434215226278341329252495229333648931731285877582563823153546642767755121162958983719622353946746534875838298756444733783295645877762884226413541911522753843216198724688761453179876346269575172627693679233984736843433231553995419688256835514911527464124297218582993375531697669451712296748844682932741333981367348984118766914379243241881924566321527736639398119878513721764147123113978912432526425684231123219239159317641855619526219146255479918463771232557621928238687878966625831495784423592912233651119994161781322711335336513251992266137968988719878417173395144838637523497815231886223298818368131944241547544751436416944293744376652282624692922928523121767632975196985324448133845328517432962595242837997232347576327163544923128976812472173494661957842651976734163346593384132213861246564172864669754141717555261484744956155955325612812356522227119187575221536417515156936832338898447234112249558363726553492816489262522245647861539952429651389251675168115863398164891481392511726331975632927841181261422412291897698972554578616297861484465132631855536953926865333341415367699563854498574836523871318461824123535262593326159444762454628141793319594347643588599183658714786694146834581878257392398182724651432744368683656555363697633493796932477546173416782535735654957621284635623352683192956723931158947711327417925532652747423484731127135117697977392297247139796696167472961735572643883622222338226498138358297911394832998327448129152771837138118558114164679468147546989773212641989858187481519137246817815922647353634831284122748472943516656349748258241138845114344592798879298989531635445675964249514926543629513491716891877774641386385624926822699268283592683535375696828163895916723162224982364527864924127827438417288643631818791184617393251338255137453633912361318524672315292256871255937772164787457596438163412983217396174748174169274421429643744274818711493276979111118272823715613361696175363753922578931351849191464634544771197666192687322932562971468268285593995791763756679173221986793146161231456659296667776918472971993262872728595624934758839793516627616331212221134925148319992262794735839252516422331637381812566494333986821325967154671979261273313556659474749645841989278436875466477588115313621115791564682293117963263528385349958372633734671644457172611854279644336359253577893611772887142274917661956922678841234644363876237611234935457514815486625539244911734924994122849727136649392164422652725479638648426193545575954621853836883168754631376358495726435455924223746312441521883688889643121528786928339942641637165716294518448955394264354597238845872154769628684181685965686267942243533555494384876151851219516576144895771958349643322369371925953317584295691337944721167133175112356176935666279937494222159387357442278364283859857855795582416438691711961439329926644833224722733425162844991261374213921985755642329289648964193452255522151134514632268841488983842355313983794627114654563922894584466154444176777915218466616668398689554811273951218356475941236191939879531132826631236167164595612682325446611417595521387366166665575412239462976535876421559656238413548282986375846164573145296383971118634471686247335822458317422693772641693995228515357671331618837341812367582917982534848314576928542492241666851517837749745319522375592979221544566419411995794167792121184466794922646321852146119191395453938977814849854437542779467794138455389756444282533955639333735443626344681251727318432324245874389583829826859257467485814411884256388196271887485439395898662955432636738482358129438483622933453412845893419498344189914839395187919143651451396848982214679548525384497275123592294545412229737849439183394452921291523212235556581581371873456223891823945789835749514151329193737614442496837384952122323249747987793611588593823236939823963486812523734692298819131934223977347537493547211736388174125641472688484759136415833164462973715443644449735896988287348558559366492238723867475139996957926291889812374198584723291485881773749994388749853679855772975887614736352567721513873696682281284634962336783525548155863525884618572139168633218224176316854595335231347197958971444548455551586956931693296346593854271169143777727473421188553231997324965869935594129744592552418415464482122566592466634568169192739934154971595836594713423383442559611462295789774846912273913214865172824598797518565343847385674633676931759111963262455622584353623311452839849343546436217265788691976446119541117416913893381736811414117352524393557154919661656528124637979353848379977243134689626822824856918516871863254113378951854374151328881465266466379113523254341149152345227719572772443187415249468454749577268522349937682664869375198953371357716579297426424164796384223352152128225314263762559841659235441655276981798972436571473729338839581321849524641585713426222255178895947734954552247356281123734456991141123247595757166147965542161795213696228445918583483233912275282691957682942481776345896785457639882277124653368946573257847284651331725313741556591559552347366211869836898218368591436151627736683264257581899134756185822213949864742981633563427317142736197389194626939583531995477483945335441276261185511676872872849219216563425658162686413693799621972978341688355941268253987334655361871794998187232138533333166294158343615581136673822254768898936916425563962554473686792575494938523598435993983964816844184419169399134573935681859788367498588574518465752282274855677291743763194938454526813351892787617651721989734146595271973855398621523299516247942257978939594934524138218715837223158221142331646135742454219651917372434355218349774944881688296626279255481385843972161642182749288779715442673378336345587121293944623531531286419998648177566577216179996446541117437673571369362596677339968992391379722124648287498351157973633764383774166658428311482571477263996922591329566341348251693375269557274415682475256745165555149847419782767992843268734793626351178124944962315883883594548911272318575396943799588767322872121433398449449591331112152877189252495197753636293972225178516667923657377626193488658395445511699859953717266129166399183257213172245594422968162333124219773565691733135267714775892699932483163876676946483224816479212584388864176187367771452113215824116784428621943653313297388836832773832593337924615514626516359548111856325618335934417164293793468667237166854773758919339618952341436432794915278888254986757277329652546164658591893377322498289672696464732525255985425341359954173393231688755166951761448922412569227151649837768176466856928193999958876311715833788189476251574583193949827553624921844949331973417392619127868653458778118696199691764117459445135541246642266268612528927721721128856523241767552961786493534156376817876967129862814329435311254269474551172591895511115522241466233248893855133174316471924782647229565837929997833293119812559684376196521399211175718422577598533396236257969938389349267596171167638343151397936287799542817217113496145888769633725544625441366742129663922244459394497554398446699766386325555364962796651593579517268643282664176814642455149629473174144972963346381163371379215444431442855142142819552864124727229553155231561757372623132767497895718134588312911472146294571155371465793882317712427234515427276146722129827369998827195929188323841316267812123618392221789615243653464841878896247489135834475132589237561896689661328164569462188467396667599234229811187362269571619872125725685674229568485692588296159686921684613381949447131693392365651831112493955834221987827425345842811258677448315527946465468515817452581712823159218437685322487893119725141683445188348889364697525634713586593836737229968691687823377127321421379453474336566445388391438312199817582462654595373723492271572148957532483522642147733558172245885772772544487655141613152351689469765713356618712536292687984333522375558981734579825327533398732359162876881634712196312584869213181421746372823329962135725622198323116788327132463328745561355662523752875163513829919314185718514372228281392818453463298458213342378698461142774263842623167332635166788139446759381149587981383163899345949673138166624438364132286275551652678766343846414884182325654725538732536551172592783861571467515188641786489192156793553921842942571599197915829232785392365149973198264148424392882246989441598878634229643268746915953282422351245931396736398375643513413497747138235726687532335227816121321431882851624317639344183122538732246124675171114996565658853213312915579886415731575874234823355655762165532348561235589733213664469618128284379711819416119558414783424474276646675255636327621976529551722668729275462715488842194865519986727594243349216454322337517937757971474318956249177139275974427925256512286953646839596414691785957523575454438193343517321269887975136891589981199579863418742725174158662559316481176686552845722678118121544931736553531671494244293219427536513623793323398398851712218693552587564871591421637215498853717148118794276593154799114364574619497894566245874637175414836168297911742673488635332833151139372616453828112165312152162731963495241628526345714163125744958928278896393876762285474251135181471514575785235243225755266549545653459125628357437911278156411326697983845326346851594424671618953291623543784436718171178888488874138781252132111257374395936664136197811622567259126114613175541317431371986144873818479692319628546892919916132422287184348148422557986245543715291538259962687913587225182799672283215237142922721641492628972768241645137565621991669779324918157422916555514634354344434719852252591792661224635765775125253727564534176383449628832188699934386622576886946152145718695911152968315467623164345834533417711369263698218488243425792293544267685368946874281574384233787935766678768584267225829361789711137517422379784338262885448913914298676172661719316474894633576759568616572859666895869759482223575427132495569224194619366683451985276427464522676342238665811464619515893545437291129257654159198885326929815799179739829987533122118965257355453953815261714719749127599233623472378524986296679233212721194524896747821339846545652642988727932657138829691114692481127694253981815218239196566556559542813916191268458632867137583361914745643645791212582241154133662277795652642245851495733493297583752564354385563648137881184423737811229887794448431464644329676458929185254996757933673314521322957379913591229728979715632743347316783557169163239719742916123142645868191561812453636698816141322652419878466856986512412693942243254925744638829818238575568869132296191856752965225415167645568955666743251165944511553815372262158365794678785995998775477286819323629177992648683124728151772716366541993816931365475843935762478226347539432998378237475577222776431177234682957887872519143249189695625216131829281579358731575799779881719141387519835727131333137993468446456943569438427978985632369146447346883311964697716514341243684356759876627212276551614222252445862966851813285793383696839799616345982463131276935418437177653199244392269923585425232575298539551654723144917825124267251812662973886264683758669433691815281345677323248776655385793576786211634435154179819371454828494226473245455147259292727971421745869416624737244748245117641211275452844345926862437779512431861828714952375751764432632768698278562144428525819534224672779814248666923747223885461434946948429259259433921819637143444381144538424393182232942314642676772513641762223761712245663284727991389425977337689489292943534615852357481836112432929577759793513484457922999421879344774736583259648365136423455758831121243486166637353237247213551916423137135715111381217717788219637898954793416569947448858945674662297139987984221656528376962547878913945595675349483448635623561316512158251487968888367976294414949278819462273221179216961464965166341989996923129533251362729315497959122533916359624943186299993852869711251834736158389832671434836524642825866318376743866194274567587181663755954573155471761244434857719711551311193548671268439311194482689282846133169184651176127434437394674273314727994497589273262828237118236181987517479148462128381232963254586484413462781866937252843949538816857996931962497288973914291163625349961627461586846558436782543155654123181474914358398742386623258861927843511478252768554291946346999779444773743571536925481678752582283246655335916111837484286441218214958591885688844728237154787151826544584394955376612869544758873317232619796582245928351125335124844784652812464571214594686442324657131525396353318143353359391792456936113635812718356871771836234718445396544571791617587475292785323715876943665382926547159445884798626347836617443138122729346574578284444274949821352628951376718356828612228125178827394216192712192474993683291657263153157753756735514432587796426365956515441857565916623874543855796628367814765634937641582495712343421966679496353475144328479382182125826154836833221277841736777993681674891891966321121299475457518876846189684794136974397786658942195544614491211538887781789577784793358389278532982317991441388927112298934164495657152289372825772513768246487526726846796274816562325626351216819123377692633395629963685831544354572444485219838948771582756351271776415417351358529621244558497744272714697574664173744851566363582915343762222939622522528393163842542731511245642671333784777213166268555545441297133745913456295727878676262248197534479798292821419263166243693641861485447547451565177132175415439167118478872115835873642284137192248458786661912829436952612516283542431432358231954862239866759774958575953824299268421756675429721561745211489241723683279968865785925518665379312499837245812524147388751574715856111476989656581467645416482258926198578311698437618899466669188351993735447374734218693679634275214693389147435628556652236997483127635514983935827787922329447582721626275472154247516237556811926568232435169566722122722611377654113794543129266626831123687934398784122172455682691589458474971429316562547833735737472953296597616135946666115455269156266343832782786812471612441674111472485278565125695135118951341978297998661849946934897971353639256468146741363322367215942381857953136839148657786813816464816271829296313441636439162363761185351947155858622321236666377985578612857955963625617995461393847821755656331387936822952241474727337577198442365322636255832526698198177116187834685918729231352529658717131454462195175176937198881523313311174511191398528321533953415381453111756188593265254664964624426245329323345458481169118117895959147426692664549253882194213455586669535359586416573158341484624429581548355364831415333287517625983444816265256546945494955626152259168332687859773111746235911685834922967223857762796953897214722358832194114477393422757851999942425547549776935311771442229277539441832141328973782539723984838952375938345657651356568478189487917258326386113316357113643655874373252246591392199592432558239228671823616258351963335894266867125642772955324993114284342746437836297581214846485167972433331377944949613488857457416992791168691323751385563346157484878286117897112377723187246816891194133721743388741621787247523977971642678365747499536887324659762661913427882949288233371827727419626437399953685781719315988717662658215583272736694556359795933474889598176181722815316445782292883833938328369645685926376186221743491233339123799512929511754452683374543592633817152747357323665175163735593289845453755224168155741288565543794242187941486271344613393199474722176211734821223859285892457725433573959226978914213856582158641324741953688146139388851583164451469793237826883489246535722763728996111649338634218419738988317815675857163821898458157474356497944423433249972714944149194424554327595146391412414264821883841275552118861331539836141549448625623466859926886215529114488423159559271221579736285317444727681153388382142296714736156781824396422446745235286756879776126819313187186425786544126853365169441318834968826396985319519538414111961542377652292116556719731147215355136933979938192375784717664714958695485483455763678823723811949476595113472231689322224595318165349249485752898926261598974894118675817874447441323973677195698953923447249414617796577751553383118321371699721556885527688177412159154462222824987225846686464147696741356477346346471311433513261514155585618275275511387131452488565884659826668544896896982395572821293251772124181496785884187662234211292347147368646671745115126651563546963848468195937672591825312957794158673355443821923517821722344971832654971526461443595515367441376257188111367141655243893269962774818544576316347335596598529725159344228619157983823637952138947387749616596665422329965722564717336291633157714296551432742452846784981434942457159674854342342741235759261799188219486336362531548413946573784859896673584357414268185288288296966464711559198972499652175245958612657634854623243367634958683725859222687516392494952424324887365232882163147462541395313394548876159663242113529386336682726263331372117183418847154943278276332173343979851448369956315236173278964388642278919391274221227299471539169248549245145964187514388261412996533388677578327753462799236469478135291228726883141199815671251684876315565623512395653244365911624642441136963837545649881584365523183261849461631794316114548641694849157133271261972662798372581821649182518999239415181449571298367389191438854541649931697389519618518124699112285572568132125324414643491869694161995325519588812365188975752441489672321733525838736684937357335963974171788847917689944887381611896538579975563239688352941234552925946574212917884637985719411973727513328728411812334136136421146862848562416758887337592253171811432494325861693199442488847663397517845625474923111982299421963199399261655497854326222991146119776323516628355453857763363116762268343166744863727183533553127579658672226328245165753652691392952439524461774363696945458958749452411949344513713491362896138797467664319672111527531847353443337695493719358574551135632463251999311413381826782654121599565595641311414928774554133868346222861521519341952673458913387131218516487895921279696491158648254788551562215153924499282273638211686319842256119179816285249754845667199475255124588261255853486725761725432939334575916766387323936666971997259917211581497676145881211712535399912247243799652548921515756264723247635966755154578795452787928165148692375981115216525163534571348198543515515631295641883244296483637756265841194784312292778116543139955198381687884239525353527864829721767974554122297591692568645424847364322812766948766274425776694556174952469429174178127265782736737234589166272522821897482379297186688622477711611949899116684968725328377857679463378655112726751466289878696944311233411118692114464892721293962552742468849895215249284547167147881114885812628525743812741545241536726556937572399758363821246476131272537848723724193371558851616232936149569968378464994867123288276794177266414427481663178377251343312197384498385557562648446998512532479343937599494469844863844335679281591373567541929873972265714384392559654661616191231217392293934383292615825824756143875976568268889987899823161472536236678559427364435418261343912526293579548992353177855968779858347751497597172855599436269487888175457162344444941841578189877552223272146723163122937782458767696866589111561119662531335995993842924472192893163289815672264951414231845119991226648329597982232123765189946475151426858391515338594673196364122214268131338617353452749118885971867897452892457454679231484567164879341633492113926257362393975851614141261289615423574624199469972573152835142646876756251326329356219869872458794669475222739142756389114394425216822997477334941743374422167627596314414686261385526782913431215441484575195893333383513678787541886237623583587247793465198976578176283187244284398911541439562634318248954279655488756555776982363447177924612526494248245489246395555991222429663671468534993479261395437825719783173223163468665524849565488662729861319259357631989746211217154829613316971986617935717986818223933324293597461842168135271215889247176111628421857794657477972782814225742764355671624847552189913716923861468159246858537687984163654138871119482565357954716856351614214999426472395543731698557631468686668887662467997671489552984266875955273894283738683229245531535854519249477491271398747345499467512435349321178125725583797623259318626753934666791573441784322252237567263751841612185477462217478333355454514916462664866912692613334264125489228493351555157338461275113546593339484829933238837219644778591459576545744751614774565684253519411952612722684933818883928382661223778666535829775759835199162157518733612855835584967157977837514491429689142235546495774554458286293814681695568184366935557393936835174834787437452859856495628438566462894847377437391272912129744481192375724858828651389773511678993329925476594937455529369497386224731463545617745348286459574691459181619998735772451734726921265396848965812835157381233244455394385297131959979741351128557134246124315634817553369382838268119569772511953366168725655233833763865571919666854195317256116262599931957268794752738915159762239919448691157944447829725534383531111329226689434136368673113169931355125491749354746641451836243744681393993175328485821264874198991526889277342615134673218239871852991684718266795521439188976936628444829895948816111977431433263667642649579751735894355562483675875295966332184737211617363268958115123489369771691886547547774872912655588884325838284824518311658314516392981736856183778659545417628575822592188718692774374441612517379621685664223737264655374746896116474814887614529688425358614811527625215113549228513452437189521826116964721627778626623426388231362415739553132278253224989591561184645145695421536522494722231961383199316941917967336819182982313334827717838739447489231645461381416418195156553728712525854182881731992735913483894939143576999283363533186554144524589927937271319213752177452654897868937275461791287225725649813554183728878922263977793312511747936197189636797482586237783336543451815676468298237929597972463316548635821876793452917345256366681878988426366434257931473591726542514285347663625812179231594582682286326841669882932411425643132321847156347515939572359759491189519116913263729428892747757976144214349871324851666467899193689812918813858648797198162822451531291873933491947185586894355425839335345911131221343477192625333374149841538373933195826248442713393752811576637378524519637948213481586926639142413997374353776382811636785839444272156141761735695411368733161164949549993477196513527952271762166956334673444874942816246382432497127594521452822225699911535938694822235379868849662443543234955364317818163184894238542197533623632485579597132531291354732626213688556611635171293867333361963289814225488646455611944844352422168583643224949249719772298954675673942339584911462575561266527221457246775135345536371248383628454296277294126493356313922119653822485654735683329793293368817598774952623552256524544367612256473921414893527853177531993344943123751659453411833713392344232198285643863331417258486218442685776666166668144724874883147416783953986434373712764864845662912557332761751539834278814572568513576156612167418742752879963243237649821592494147516462416161752485468813894565455788756726827174343335867288388529218628117422996729379582384247362434341161489496543853237748364547255847142987854732621845864456971332994471151255974761843317816411847451384664293664919964646979692521437767167138567325558756255628644447134679618452561691487324726215737359719798463593176426821352138584531625619216393274279639545967599829371791633826452113331662811147181223566163451892619786171832679361176196539331137552652878625279458532149216541445195169989232672126574564529592866559324444357369796159544388781145714974151638581327441275121669789284254966896353459122427878931357976475434272885157771753488791885742432495561443993233389457856596412547113256144413591641822665389321577734547712555499929433931189569546581653294259428632382858526771335622828655889375723688186899733781977863768763289698759133226645641183961976725426184547378582713593423485931919954893339885166432998345821243187141674297138746321166572464543624381972532874327124434231596442886755914744798342243644557976465814914422886337387261535994245838171111517525382383761161551891529355471147971722687472213174296466688783997598725125527936587265417379366657259364234831528722671258956819625348364724153765958417551285293777168487496953185827862347176154526231572369458688214182267771936352586334325249584176982892514619317132963841125232233298644553798642415867599676894347843254819337269629494752389463487396689268577736229112512658616611947454783173194935623499427595837381978154585778267286939843758464878723165291595595217329766921873591456997323566832157163613232518331381461563915645335757134816513122212313412136298613834827625575349317323253114758911359783367964237227212232166422263327227484715855974614296161253425951837875438641876946765821869482834536251228217694752222689826861787255365512225626365231957133746446715724291518816438353179111144559511959889834221781568441566287816464936593267599862547451785212124444693456364644493826954971334337691627261736496426616811281771524729883936555968553882295331631198897925575613578435178236237772339685723117312699674338549229437836514152498741741718399819637411253151464279175695619584251678176959234561417659329447282661552911371737793851715257151264336441525443931693427171381822437415335333411553199529121399434631325496737644766875981138239848221843493914239136226169295211727894668833113841815993257234245995524952941677243446374156664193345751988831961653787429111821473161358642175239258798973841569686485254882238265155127171531738138272949872125951149469693388176123762241721565854926149228261746522587552511819993228215199718669463377616925966237158432116753328898778363325751819134913858979479526234139985352414952759925952612371331891755868752714847512537534329561628834481465514394832117139349283629993271494326895993454487573595725739995554897166254185923278918555924652954893574911113312553216731312625624219842124227397551432484649355425768796183751794935849161973955191794286626864181227437224459467462866671456922587322392131631975773721549261963211984585511947855639229719914232632252729267176228984525396366554243447195591253448951213765197254436321963141216163368226824832232347858582587177994437373446629958683514943273612485847443622459317289235319493235278163225658877712855113682313435775865496587111475475694984331868719494765846575334951935348221628193652344715459157417434955767372155918785267862468125394168641554616241256146164425315614852334336893617275215946536844246641336973258729961595611285638451966111931114332776755586748267619226427124271699157158227221746384544722191764433226971181422447694232176275856582915931555344813837995978193738419372527335817788625817517892939599197623448655331394297692948242622159731242552933571873933553189975284888663797287688811493122696584382562142157551576645486615314766654753585569877392618343434849183915248941498443216922227426245161597927753394389217516752522172124495841459288859988748925532354219465478441336264714634427344948616778631888312763134813654343357939944455757131859411379478582754727381331386911417392823733526265434297946556175138137616235781579259638763571245351936547234981821814945238368337827155548134275983477263935181415451221188141298428411534931251447146586169617345852489397414851495194551142481293885148249653174897969677168696917113516555474546488946437175431459973982756547828955199356811986137465582751958878124249874549236946463814285331431892485794897944219721838529241593986164263378539584315736446424446334284827587561866674965395531128312715887263459365597723332456217265566175755385499242737826914195965563479774677454127777751194215589672271835559846933128678122121261661338286735288216851193897585554338314521997876832773451687722632766472883236285627186218117487292323785285363729316641546815725526153144638881373222445731392535799312117432858128415242546724867475393435348787525636763627242335758334981981789657174437386588682975984655887537256321412613353755155368918715615969989679631369373943675373867712264669222616451296171615626888575639644715355748215712484583519154571542247841293113489747153163751612374279976539658191392811734692516946322891833862825412252681197844745973294121162781833188214774741116442221173554313337841963795623156219373182826312535337195149482431587936851481951592351835847255126241163175539579222136552694849423128475649524133431522563422832543982289591543347664263168129571526165626455411591383192952133139696223766924514915517599919652762117675619287726283893271393959595419655116246758335118188352771581323715259619344499386854321372754835444244326393959983739786734912721145243144787116448111197919758515457724439644562475164638452211889677134975379937247742254182515726125173254515396947439828687147538787193873358862269997744249384572815761129773762266662243139762972983364341577257553641851433154144432987423547628859186182116223476986682648138245887329192496228526434817638233342549471972994931863479473127868565146924463619464851563929279465282875661647226924718945114442613733446134247385578449197129524875282873342857823511957164274655747858997598613438249531652548425613913359322692631785461544584298887675885494457495787814684254129347355231775314419599221255986577124642933641627434196179266137965833426384877634611657739364945641244247317348392268681225111431778139971887182933674434737898751986533167751434461962477491811275878621521626823457382118248265417258371839131869648989995427258937813863295998868154882956896233867161999952973874237558826413493852736874991128481519341489423236441425783896624118336968186273138645113614993843261318719285269798812691186317993912419971994965144969724444392251967547831538453913542591731817286421618741273514726294445898649928246164467764352445937729386334441961365489391574922936413447133721762195643977666166965829853437559768987849152678792139685466798492322258628744125457551615764349311494678444478815992112284129439391611879715223619167146397712925285987138251164175741173887172755497268319517254297719299563673815332431136948333576512213797146318716344178154924364377751253482467188368329495571517711325888253615553323476236783445841167878564997719114395267945834494129456865766639957569155189195264747953742366268821188514742125449185162267584745763238552285638892741544546924376477222553326662993983182919734262273561181758442237127653928342483164376929397592848522671118334414741222595432867559838843572357867589642788143626598191285996578557827613287853135646578882345219338345253681922543863346293213984547721738648752398666612582975632442362575932846474483333325824215424764444932428636135567482575861392962552675269192161889129383523655574923373393125513443546925347266344911333524246775252383174854494811278769369932442328993385497987587116273638619144445315541322843895161631943321555337322456728474746439925555868797745585822957144174642819681788179327625489616749581656244859637868649145431111342843925965632972524681955845958742749587752941574344674212656235589732869131867119458188237165773326341417774176337427816216457776311728869879258555835225931483492528731376141189844924274426978149474624567111129217973153639867138217622561262228331651924613961879967379591167472353184233383164523865385148732833641837949788469756168446959754811512477613282661146269442675316767318999742591221235647933578228416146381974639399784468368729374616294799985727454254489295887198183994143332187855185929962684231511645542424417295429841714854999387927235355492367322872785764865335725237465683596671629526546778819937665962266528391644173758875325113463194534175122481917112657281338941527465162915932493972952919863112291587591236848922597267651666131411758737154623421593848567592381921273818952888247335443837718323528994241873954537132418549337772334345943429799727855945375592176869326851553482519273395598963259832487398597386876472178637461347743218449573998944855171137477612558241747382372735299465793848248184339878596872687337259119263736342257231731159546815257959434511854822256926176477656258292932652537236117376477941223657875829387137894467385826193237318881333478113355858217115631824321332242241582651662152991441612928795457762412972485563914633492693882143879311825498838714953352918688115352815826791972951282579184296332188119219125266384459653483528183695732666296636355988468282158852489713863597594217636792712222969173153498338578446594521129682765537874352579243455469496669921489582695613513756648658725677922966442116389138146481742895244636138162593495629439897789646269185872447966799469124144781461466522145266381352172514853624176172289863434144247564465982648663247287371931828732913636897279219986893161731565272466887598833436881874418515582867442479854328965327745222365848194634369392399943631939367514621171878986643711878729342451545759961747652517261634195192913375356671339369675446746563559972364274974869499729588115121936995512497486535575149749698931395943766363454439218749839773422194348112655681515472253445883114554175414629689258117875324723275744838779428211787381688744782713696532888233966494663964126743219596593854959195832835185856181633577486156713578195926361531835643156667435811418449775847484924726613943423977148221233117632683369367422216777477992816194634192145644258573351672745329336358545119584751651455392127492624548485897717657486985358273555757138775349242649865767115399532419997871125158689234182967151136232541843295275797695235252436814388653358193277343712426831891738864144668342325541787423245974112994981461573927353475364549388873739184246344395432964689773937716873211512581589233353815228192726155543983921478662356292672664211684447865187144638692225123156871362137613556841657572469349324367181537925551996643837681251547994317352394987284684464369331673631754425962944183781983926654648637714824191553686398857519539953243973584111914919335464755948716736927911323285639447389763447592236268763269611333224853318183753613755281298896854435314545453256661537513544349587745352654652635342323921691583528629576183459118278781593912544738727986435969737947351695688432364562319243674895873239862551735621136645283925497999449357399626115758335136252591894235928734789186689137943155397444893751217631232119665594847869411133676749411815172416422932468592594979514571155758984141182974226333192719137995577656511111314173389263699446812633289314517731952762565536277399539614643337298824184367174159972965856546895924154581852327665996737378352174984854983418625455336987423497631479853681836497354521982488257815484472162856711288574587616915295458568685928212568812547649213296636342313732214335881987829975681771475629455834317736553642525443875493724311856845469586957729853865749962442924683636583331315568864381822322686413437188652924576238161174451561812839556888396466812384437461841498919913472314141625193863279359929529659315351142512172995631945357213735743462311727275411692434937557912699784346748299547861298928292145432477566375751122791479534919541773797832536152761487196978266997265764623858259819725446192248239397999946878991246151523571897583554724876813563534489159222228885365232277695983287696342674782136748947847891996783698675224585629519283347915989998713326769383855736893155677291237819424573298663357713712443362885978287985329322422981913781548541271857746725628931423377713937398576524463161193713195417365399952661459843361855432277943273639235634112188624298534895159276872868776396199299693132484512487314744555243781419817224882243447881597693744363323945822631289986252162289263652661571618286741617925269647254754453582514867133251537176961132814716211186947344455424762237988315278869872247537998553618922235622892619726635757334224268214334547862812745381651724587281997421947459981483953682518546221321474854262237194826373653485544513173162768411869863261846794627336325181118145742941614489769514591375755412654641543211925376216897611484258372863192534271168964841229976593543375462132698268453317254735771894812345672315754837339283698981466681651115386571922138225171978884823351238173153252636757785347728971537476914876952417641268748723294263964257263941564364337229953452193133913683133586144892568149227169846137118111659624617717151349832358796393466279457288657336465276533156162246458554778514785121592915625144657432351143324853935219693338757888244265993834579862993261329489886783537322319355271528325569499874667531896532421885856123424313749521467134356423152752319761145898552882512378238539858351455543715936513375135664672697293885397638467924636844482662217152762596544444162416725521667221387965483772635726946542893282348715159781628938961878654194375665872173594796368945797755143859598513776973478871437295586575624967993669799643126572728527611112767664355513521244692679423615882635288327437524378519329596845567913823855195573877359563673162641294154535395423349531441991388641168958553932959575121956453838238597427521247913839187924559978548714848548643617487741429144985536956181959723652293525774426151522367118442228213686752871828253987349417422722431377326833117283514637971234494452183645777982889573271723778446329188968242618695416989853168798768956629246119475942226661819523445599537324378768741386792711355814851211777497455291615637864619143767455344134574499111987457969555188394841376396178886232561692428146411182249531292486238695711668157533134966353612582518424958175297197521772811532673632449295169844943155863252791446932376996581841133547251772724257177849233414733356338759134453458532551471465572624466194495175853224444237419337188147967986467796394577684259633975245468112746454462722231763975665394446863925381195124861969547279519723343674493653376221612452245558522215837634747368151839213144476567184462582942864478285472561878159156183288425315643591728836424619827899553559528546281934147339824165375163165839143852339436453485697496385582148276356481277835442442998955271379118812129189247469282273985161648664582669977389221962978273595426761922246138496388896949169787437116387661535344591564743868213932378713313163153324281653238388947361727285197632475985685342326343625238112142458651783966663661937852625255814889232357777482396755644314439413318956338264844912771232661675832148356119924728736753858242186662925185178457633596475217229177442147441112833413783212131919217273369244911466679938167382261664981447257442836721468629323927716139454911373413668899926272627243982487929512395555335385968763299418472333822137327257672139721868871978533265145225993744536727419172845114945326827968315445179719938642333592381867778277669785291569444824468134547888333344257187984727726298626323834883569352518275375637312951974469527587367598223478973434418575697286461229613142552677575714481691166535322273662155222242211261678798589619225513775176279134182187254813469994158216162351653243761328391999215565996825711125924441427741185199924476651541562754872351617739143675858147637155476667947483187148119639585411644452532657679328292397451229617614614172257891587159741996771581112353591625157787525917846726388373436334766453167159986332925199497522789144887888255312342733188343469453442293737749212984795355465942746342294494982727184727557285938992966846159148219468531715495984438327134434781496265117492852481399477471828279879215716845992769548113232327166279926362414296463332968331228296412714265947572574387961164742765357925377653783398156164879433161391226321422372737486595684289123627631894126286989395367252464771894124876178188322682972149354985426882636735474229799132896553751821114469121751319881934944282554656361568543221365282348443187174415883724665814419722173151681847496519534424217243715522449343425442226246642664866838142584541383936761675126491138732443378146227829745877673543389638441315579154516946553444541931115343534727178865747178216645788285876892552372832159885333127113713185498136745229467325945539786888292188294711833365131634355689126622366694868887111424356687373164514636426622753951313253831442242863266829361471563744114932498444439514228372479217499129444188981355594414627214171334533967164217249373537191946898377977297165186461878527851728569949583465672481641595249163638247444285846586154169129982121154634527384612739772611966611735435787895699856868916574126239746574359231538391656299165258399155567615397454786718636614966252188538471112355998691628213121733165875852339281176393495388397614173811811636614993443372237235344587829289895351165557874546297699656755994844862249762775579641891272757537143946755741494746831625436315132272882431832556292369936277139995723257798351396686665183321139135398386942231927633942469396459456655542425138939765915455552695111622719178916495231124961385382464998545534293724551959656546231563239413312319676175346892261926636798811943497126293317851164758723335232173611631532941868217214291217421877828343961665929689541892658245444853948989951133682766795835898289811298333785137685861448813353679651471587562731912756143316996916588812562646361281799312647424256142647356224684749491438489491162427334365535644838215737861475655111832868151487841666131213271136723622787371858952192894839393871593756614622562575158329162814313427359498741687469259826725794276156762455378975492838789317863832171684165797342171266991787446973491467847874664543643481565812419112866934742584326322319787822395231286414729166584765992963744185192973379714525562351347323956454792528339617774265392858216316365261964587378639155738218254892441196183222823599513911779667322378985139858875688924843181319512622399143152116889742881346639117331271498593472222511926217722746992159435655114424725694679729572155926226221957216943269179129859275943447646645394767266569218143665849857876482166946964633337457272321152212895891115128768532117833339347961563972773621517754648193731496527152621689111754338928642418887891311445244631327252497357592995271178213111376684535363477318931213615949498346583634413871466455299916859284972849129513612842426578141827972421758151985256164546474467421261383529595282179233569581351757923456122275866675671338671522933114586952834616934599536529165454664253712778146944198643784976632834391491311777576946472693735127718768916127469551915513412576175723933347372158211862782664246561159969211563512872879393714524861785269451428839356454617192293941716226726397497736136765638757267681461571739957535531689781286539283563835361755934922125163593192782761769459371864227936922733281769216461448174335696682352741151566261262589581137164113181575771177988482124868564988484779442934433437147524639731268381793761135532576686179918237813143368826532613481165979559231312946363178199328568252267638186364434858475636832372235153929485488373119954964364168151435577443729171247796613828973897113188214468753258962863142937626729291223466792113326931168578882357352574874619958569744448868534317237345572293732318798157333933752239735428744183242315297388737266238273583489599922634853561671316186462492944351968342121948536882241288687741152276343826175549669614631283829822535849392567463481611548952246855452793447821175938163531233439433964245329478232598867643884335416814379331391812417883386261877329435951275982119455457367596565371623313772572349325732627264647349221679178651618683888757837836398135861924468472496831139675836947751866271385377155263965294155942163689441854975848163881418536633761523766747821441537997433498769514555597128963385911651912628863361177386772812582245134914886948692249622671512764715888953843264652353714884517936796926181976955352864247298671513541345567261277711297263318626564625786316669713661716916948668265655316713978175541688447154126364269395819146197139687555976999477881354558692938336143793624524463985938153348439386662321926277813312392533531181548191712466118368346982246141945762432245141932584997264442393141925216138798294537565463958223296183183977299716432958528891248581712785219162213515119423435872841681518544165155323513563899557141194815323933632392396317773747162985556422324185368916829834232878523132897347134732268376583228629748864479471777692613912677976712415683273825353391671888131549947393926765317274818756849363318724495928597627162249621559469637199485932418986248173165854361683453649587152968573598879988242599664592598866364114115463221346969947365848832334145482322195257487627417772857252388616799955412486898445219729371593718915537762171653473167881596443789445227775212458272199653921625991576384124835957899817939269386591661957536517934731289874821342141181583432517377418547588789891788168463577554983466496846956399322794423697766964477678212462627935651387387566579114151524827147591735961126226925568225257515626363293391783939528886848272599292637736112115492324313777671892848892972162436581826895766733668765589238727494272817594691327249366348579735821461494461439872748946398673514961487399942319333162748849923784126252229756939195955283494129571991378275974971774922261193369193278859746349146753899745472488159655952253925834758836628686595213821469183546112934512114155837248133318264684819422634821845995626128917531965811516997125612139572451687518393941575833728876966687284593314469951566211987612298432621476413949511894728445661432738839519645241694882497667349219585683483443681685355525793213133832511195589242978517261262612819488213294226532654319664445551323363789384449617766588796398985215412272224647683319434557168469478749334581543839339928948393737537691313647517749265154231832526514461111483151794834285958647663188891683116767369612846587419343442255568981772225574492287115582384631148736637351729221372135491889749437544717181455533258844344119984718927984726949477393249763953445876219564953699288615549543457572588497918564541866446384769574193534974192239137321262331644184136922457419385929854541473855875217259354269924194864468488453939414751323516795573631978222828317537419831418394962314792632924355599183845875114338685967798945647827545561795592294812249181841357848322298771396542277266827166567667322918853119594971871734175937934541121943859553443255976644762169232716632422381192857172765531928812924512981597137697936644911788663269887321121182549426227512996726173872234881762959311732235874959865412354969391937729476593393216861954373461724247844741371922153817284888712938598241233953136848982944423811143457924867923287144729852264257528569438592629487917511846985349884821242131872249286771484151677485215726271388465471234445955656597981879529531698938122665898664694813728865547845825245753787871251643652358955834581362168831152798915711973822668223637571436523767793689452422835813326387977561567626325455327556999531655888556257284832675674742275571798154662645824865948464552588344151425719699423745484258813141256494971818973561678866694323698419419776589327675971955348711412463481413228799348499543819755662674873491369524869465285135638771737151286825293357665551184934412926373235221584433994299176887936962142247517244411735773899263244832448798711521838246972478146388524367665427865889997178664795432234541725673822138691817986513554899191927342542513548271654555938365121352763972458111859354637217387158677729288311734916551692757243846731564622738449941872669393263963498633722455355431842942481998522114667438225373776113738162262559122739976622714167217356533919686932173272753974831233118596769681735396643181758534555816149182239233472219485733881556692317241696483475998466296218232847756573775676641193371443167441934532929327585353691741683222632171641999374481597198762286838996638342461183867345382165832938674323688267472389726194291512227554433724462941314438752694291697323317868512697766192271533392123839969874465179459822437117282441842252334792425334426257532739653433851335388356632132548618351248614872677512743253851563979939973548353679922145644256232748688877114735658473158342798643634612149765268823166524465657656766145525529955146169265322449762287299884562169181967631997672853816881757631182783586359897434726612177941447428889281222291384842416973496497146422637418991195873843149253352874844654657947574871491474816676921177868392539982255792881958883195888558221416894834481244252371811734823757164382253613221563785365625119437333259934946883121465672517981323411796352926648736217128379125294875818831276864799468397158757375112367162962718233189935556196282663195211391724978173411418151849828423931233646943122999422341136347935964288566342865443938796941626413961229365178454233383427539271294943173616387952396736285348857727655275266461927748115197795897981779267839957356397488589141558383198221956744818236365921246886765739855232418526823648548637339826645997814525347661918567712983488537512792382379384435377157472524862561963824868346616581641373554312826278138837132827975611688823667257897845341632713652674237565665713518726389825737437784765774516625524753188211186395644382287457429333843268847199214141261764722335694671666797591576331153642962136953588678526464244577822752256835154985454162733644689937233859589525323544422889324634454956496554574176714167514992258933187245796689525289623197462895469494324652386156142821296123255233692525573781325864237258222116742487133233227416637385819488551286677671949571631945148743692841235724635142888672838256779456843724393961241114425428533415942662787873192227214218134246612527363356189765127993725915363445879585848825411498336228297959347172479252517327439562115324223592865464814969249667223668474866116714231386639275927927544553266421319994831239337845191253997628241228194818956533283256561615129215871563299257259272297371447329664647496396576319694425264134678693715529821966187763215212948799262512112132357722772215874714231929537339249516728571432148696782384439325581278949385278959448458323321625454323415485371388147716119712247536774718272741236219311464439758151961743382446124226645836754563874178133863922932619149465158676329871536227229443499213365643919223476589897937674333683825284664891276492415636217399615362147721431745146314489648561624774186247313138947799735828543739359385755714281236452949298298882355971552536579488229922873477348536849845996252919167813939122259571813357629513195685129243698289441448159883179245187899831837829526839253643476564485573671785956973679349554719239343494357919716937872224528534932348412276739245475288827337297647715632273328246891228434619424946315926815792114926319963828241765656215728775728215275646467634197238361169948446428198389996848175216291442542221344359848146631332228237988398811115263882229684429654888757254631861868811759787831412842998536444367443873177612624464524869113562671272154218271749569151562838224613797681972983587178445779145987164357267794318481163225198952947619734329548969552632827512472179711982391865312721599823457788416752857936596424196147412158339744151796559697165349151414917323876446486443356212853482394982365453642723256741153214563866731152227869391547358746522687515952667773217755378269942254212677841427641121715393427962959666631311417481194252995914535699454732684757717739154879733117134357571227389757615848683131481531388487217856351659174786498411169546283911655415154283752297156374849926235624811397879234324295875667857534291664813946317373883968395133139559774612899377119815953124488358439636914926438124968273497245514541245646888344199446319323212773337597735668753593245211787591491759594513361343839331217438956161169516768695423432731642631953929374861382522472666733762732166464566191169281995456599621136571334474226531621891869992195586643325482193195223123953116239957668236684354745687195567545382637626775722219151272757326991834121377672821592633794366984751275538142217117981466836247874748717798325827174498459273157624567872178511961272721437969858232592949889216372646645845511772864524378136651172461679958845855483419535664292913472713535771987772913899873114416158827511742796218222785628794646818758184857145725118644327978875631554951754977482373795751537864759745914629553672231352329132947869182232526671966852189146139587449252876144631532249474812797612323348674753761333883931163536191758145467354772523519553871595479263922412891136561298745225538448184547234563166353777587797746244578696939718811856483115698353525242964997823232147334535532674344448444114284571844632922324866222343253736368886962453937494325461116358561344324451987766272141618326797233182154417627731618812266115133211393538152334124815235176546843823455271729998996277662327361255584448482986518574498239558825323597759429666514625744655196611136642227279242744959775746874128487627842591821932631182689165872622717774364487352872558662532424841625913759367611365639138426877768248337937493441386628677253999788327724312193545445542391233421783794234888378534262713665788252215493111147131345918913842713329279879746281418799483518218138298134464362187668227741411441857876525745624843422141749644495528623558412443259597111369276792693198255391355485567767529361218163284225773562682385816686414456591755797211358991623596927722416284617596762946333455566976547132267255586698473911692155249273651993836436674744696126219116663814277743324376592529333726289575465428669831145133431769893824198479643738312728298574445149753929576226528333533674853795659357353594914378366571546448823294969216412765382466997953593834767973373979917969137632498872348191571434417511348734257817316651887215594757543752345137374619345834374545112388226133217396174449223756113653176936592196456748243383941244598787321257339671769364782522975482654322735351491723984264586566757364233125974217416946718179464218317761254114472679351433224652763255236222236237215527732931525834192526639527458378856113935966731954171362517834195117475483596297829171145937475519971362312267384927316466531885742162684399172449218498847723148573117999431794226425396428334227829942181612429985797635842244215826151976482385874373713971963662136467158574875479916589868189222466524314159193363893728911849652979533448626441866172748229626937134567586215599734564392616214264237557915458955314235765789726556783883749673314176121699371396175388725587632631431296721261231513785117911974775738122225751513831343947824452827326224652619735394621511658516366765218346932346558749737161787842659441544263497549427177664554381934466949848324628553961727832121424274549213414498288435225763233283428853989453472465284968735573488882958744924196126795446244656143866831162973338476313257416817823126733412842124415616938767539495518981875146928237351623527193984593133621798637213839357738833996412545899413737653441588956733333971874296131439638929539961279797293463338746884967552137429936663623126114332143751133779733399882889236121214689172327544874123175614554926386268821432934525434844827357618938321616576677869679862974358651233286514573946256457275173779958941474458772333428139573452134987816222297728855663458415288893972246187579654733218583323492239451152913574116283883998916942594725311834617635155282888922975959253552249962475436651413485746133713839662924715549456323742593263721478611192814115491858424185286313662223964832743328919394451474316683961162941454933359656185186774239429222993493619664179427811837447419166257143568366526199998315245288468941457981775731811859173645837326291646881916926294167359295287962184682997386831255433664553539656467944127245426748116715718573625365598363974676399192294473571349497755873399958843336458936783462321662885149483915999654922898448882126288732921719143288992889165315174326762337523223756593331199849795987431444142266422226634754827736727386494425148196154642918567988945927121453656111232867465318225531356875491348234714859935844285697361814527656665276843445797963237889165863525814181123549479669315436783776348115496242859811414854916323721594161123582989691181457997849573257877494727455275324822139839516111327844371166663898431261387882215537855754779715318195692519639144859427474919425337648496131567896666156988816699159355229619363689449456165279884463725384354244488571735546553722939488736162313334837893449184717794853453691249148348353998843721958579815461749721414487486442973747373451847527459943847896812559964451764441274235611114429153124539228269161298225981497814395341347866638465525516963764531534382226155275494963281743332933543427178394916657534184887497262853463763237348737686261641159685769285222151136156484226893962626338667717767388845741736993476137642382119858312451323566761369343545287735225926232188152646215783584988741516848457484392612137791547273528448757521337159334632246518982187733578561459274172493125331218723797668673373572525574323632578627489895175875831262476657636365941818893349414586724544742478248755241887668464463817835688848633436444664158966397714131283943428236886689746398637614518935161652275982274553534915232544171239589183558296299558188716591357768654819334484483119476723551797876148894433698863565621857329991487956795753417397957126217165866794892116581697252443515192396823258683189484384162624794931156726981129528772659334357578751878584367499928831542782596472328248414142249739265764165274953935296954946933528452732531632146588263175997266926145139383323972746525261827837998731513424822777197482588826413893172959241379625474542289588712932842692358955379241187298432171819737223916712547775191953929645684271311286547346557756187592524341697331566972423197383239215433651828252716912469529325583329747616591968146299857128341184377521125638269594486521424326977996391479443678689328557264654693596175843811349714172347235676542798421493996949771123179289512652186874168253936881632632339878352827727496127424235612921255957535848581431639253191463865988342175258568124887331429327768115978582236833796759253827915619633776289718258916877273666486553765349661451853681844354473255987768655631433411735483266183932717179112157421384912433619127526917391985125826394727551731341898684452289116594573866424778932835616563926963341566384334389263672282532855213212318912977146588177646383614554917142257148554458394233382352391814615121471163198699623255127559682575783427895467752663352444234441866565539116916733512794355336916513735745937168622526857496141712794694473696714964515879633827829471429541893472121127572254562385979375115353256172274727353612651642631343721731783932213537737625656278851432311721115968564921249365926467749347331979872458332978596848877693169334626849823947652185584826231812137234179368221529656623935686819884859195741241258524444436636532413668561525421978788896935536515321794251338739868466958652762759667898629462114127268883228513315174323997424252197464263891581144291775676597714788834428163623727476855397512818918813347315599887835483293747278984486959422794412132658145621654327162918777186228517697831316665664717162412261468322672788642398113189558742789249584576126631575795454795981377576675777623931522634513812718359625622191629765682611923615927967346893652484461746168493319793227294429135718132865199956431757988898296791733579243421577839261665549176385167174148711465268246783372259253586735682593812245418411376711514241844653179447731615334699186571369527683138492746628494998357958234595592675519717548232355463374111882749978491427177698515173327832948234194692324214454466731329633424439454338412342499554792153854119135713437689494628193437512891926358991531993546891671312776299535716427551645674653485161913366149941934221182737656569949689612635162672675468196812497665622543145713636188667866413411317591343954878238782855941913573856298275364539611236731274922371294875531546616554466662239184139125755522184983824711468251892216215461464188128598873762252499838113194897634974972781894362146816426535477842424331261838584273339276973715361312544346749399383729114435916119835115515155115245656191998645458356587254191358887555477161238155799465471916998156237465678579315519364499258451646332254395115698796153658337163575643319332359272117731252853614536294294413635536221745687635773892873135581751825341969132429838694591233472388653547674861561792352343346267275854967342515892336768263443316427261923862337981841962316377166559295444918119234289393649395685344816155111649325197421146356225382942391625892311356842546478611536831179652568721624261841745441463733569765145533851214252226456457718512353963425818427859732528213735743139833957377737115873313441878169524815461933387573779767147865178746651465244251917579264121755851952251932556316591438452937116942137244539519463672151533463123784913483911112922255241624544314136943137766948714148174594827819327819464787198248199674565392993978933711971551428344141277175665427258267176641374815593549185591426459767156922585643532327144472653749334576221932713682727815213666262284167592259848184325634226243693512822776334213555882955871519355382858897589786234831147259883712573672777735349557619617711112915996632243724711512865228879137881697279142657815334279169276637137686666167458646737763355717872417252112974521759438757643925368417195831322757265742128237513832266426322494632383271762879243134616899636135936544657161831729199947448466295815242367892868955468321449465587186221437226691129934395772934139829671793965863798525325174765365331189117141515828253143359279243885637618153596863683923418848977588945369172959715317132566168724327789155294153483793417411795723841864197285191662414339351178253949391868576821176822564324994869456373792563966344379524187754146794777937238885249937713374934798568258353612166533693481945656334938545417796417577365599226817461974354582425983215636819181167137894856767123741656423572215176882113775446297199695793734599748198316165138966251153768583839728746537329166718116325217423464679139632819276276767382229138945433313999736888949183812292617425964328368882434234235423743437373793414857977487943761661267254854252495722689443787757367352195241924181266159658238419232169251226824317361534814134777541861637415323457447748181366165685263273539811578767472859435619241695966152317423869241615987679537777298744618755182426144538144697329365918931823168519293164316521447538974452113711722975354584392586234695741663111519631844872169289271211497121419246135728851437447687539938788927916831593873553788728249934857231159121611799892846316872924521778226271225221366718111243642863781329122953889783142578259377219532798165674856684312395382323561132419876923151235136779773791171732736798113258698972823361457396313715845595417824299168874594664785391922584776246812196374998837645157554633428329595491289836169344782474667387475537863256645687947877175725722128928141841256333392828275572447154986818287151469127985972964591638435665578885341412835332143224235983532421894374417599955264631187384817889752572384167852722852825127433359652711573772922281882245271176466677981897691895516923162145958381278869584918233142534236166484578844178389584966746936567993777848958513339491114629968372543741997195423476947342239615997124293389677516135499956942158819141526245858767697713918512787754825616834324342861223776474221118891781492912341194843388292264171558998724773726175869421866782697566154525729117597413819326235239169163899815893783628959834133475333691995131147523579639712637779645269153652426154612743398612959166183124598554152775553632398622416212911196337113618241848352426925383182251326361396837147818981154757959675186765787115248817574699612115328842229633175943515289241766591554655687531221569331423916252344393462917243574421475452871742118111444718193353958195542413881635135442383617234299982212698117679246549574512747928184224525637695659961834194585597637693416545658861578388518234941882162221327757537619392225922783822413748746678328189119774589622297545654546164526333728642824175444568764534856751757115241275137368935632452199222849721429512373861324384181744551765389355354613697175124533664855263911171149973334867319839874251313192462329831998258212549657589982565667991232282636358925692216241214891895476143455885267793654126547823656984349978114424151591871766285578654649148539166211337184913981232997522179415431612854127837155872119224157636136821511312192227122884339894942387137285351939568421234554363653883213419244958652622488886892145853452232146991911191177411171685195365746715216924371328449367422531229493195984672387939738535489588397429658395713461812522612586312669686114419337458495294945584892384154921378445729874852445147396321686739499436222773742517165985531964616791718386335186774145674929216633828963578778997423582675895188143459874571816729713919571314867242253954639587376814814433177762527116612112991272718337613298944677246479985733717139683547527976931442933581542834712271752416825136341771383853328683395417534298677739311951822184832636298373681851885747541237876221682245572672755219655671945156918284723454539255311327852987147234178531123566338481323298146489631533278432785362121514219368319962935518244126216799661286391942362884456285967269821822484795556354162318145179235862489144924283526181419757636848177648128279171373944323243961568292822448446422447984524783386871894129164518674515976512953693969196953267632253581627537286844565416837578629234366894415342595787933176744221133741545263868514558715836138471292448161355114565136335657317486745254132667588844573755131122347296462865722522674652669711737913323295467583264522312284632295664529817543882926859528132823163695624597746296278431242394266581773879715719657179953444718184778345141151337666699136363621989583114953116586686374777689798389283236322852488192487923441624372821675716439956791291578964544652258436784486338525386994755127792429347741682863166519683751843919883778987525638645328356876843385311323542226656985974351842461752683728965478736843773866524778725234114811556988323414842378692161583389427312313319879947184225822348294273161752781187989719163594265222694376211171668212359543581469275237349499445913393425497213896544922674576325925471775657457774693497636943866126378665532839446586975462284923262552273151672364263429776986346126348189523385657134856586669172651644161633858158965589523921116916756252577556223745731161921154558542362455185279515746275678839669529578329425315697671516534986962818441322421562658947938852941484354123415431854393753373711786567985237942222347653945497212517573721612386487745136198284643795775516514315463366316464736819592118161852819649334715327429319136624244515785271183611871414421887227363557468469381855195213714896965736128947491635921213425131326228321137146122949656379488759596138554229286367925939598694428127157944944186367811622632547169125274514857428443129276677324938367521866644625571712791677833346443516259162794873479772389899814368589356825424313348128299644296971729557867625786931648812125955156315152628738611692279825452862162542379931684787385616149269495459551671994767286198197949172133216624435348429441129118746334291482856943253935484477184183588419721917714144275694682322893438223684949756268817634681415251824689914312249642874961432716549453293936861156381872661988568925422764162253988686352697464412288315766983328433541527883199257165881465798651994381745527419496242925435863559999847715179939135629356952978812756334639955371629571126566972812621485982564212695128938874689144956335616357647377148436489982315218866262185268147453157167123354775666691323273449726549331568873245447582529247784653337382418433177292513821422518394744512742578715868868787516235934378361139273594332481629367111978317394541185271366274293571559584186582672525346233514322851273117656888549887697886299494345255765556728473499449617152998164744942334837995227511548241664529762841612929514717686282777721327397132926618112741365136939352562715922879372131372896732782297949253157734711118184238433959156648986255445683736528187682528371591526888165426265557549149515459957431242325522261355195519653147439474861241783351977194598441454924149196168233988974386519755957849666823415998614671821615374726292985451355144414528617865392972317514123247747474782989956195888318656658261885197363253312367426497298932113351946717586382335271842553869716184326353148117758757569645651935668365826577552383514461273367747711191626533133686759868224586563122323682367119224775511511157313442462622421535339963344981211881536597716713172488562139882128832851317624899729835564183136219422639718841343849378542895673456173656779128185412138284557568976959193335397668318874154774289315263124613826136186332594148293784795883736534779937987148368728778528652887482531124265118866939225958491643464373394618473693171948834134923257314853525438777435423349497198615541498199915715172672742194166675451613299899421824862752251111135186226819863114439456614384972835858641285983475794987844869135551899689186762162811323452768346481226564679792442651692682618353647457446794755476847458947516571927179295535385461358783887913835968554884258817183498959868656996711674414182979936757382913563199787333313585969223882746121662129898956931739231742512497153166966686451545511686565618843657511226447967111443481486883251877455784123599242649848361162158574648232547512489793584194976823958387598782727447949199867566358112651352457999897272216864162673991752196715867241939178863132413674628948284637914256435177179119412562227742749215655486882799447342842795131928425699523373934295251121334151412236454369234765347321954628386925717874449332846868546416215753351486494532652234289278877796934276331917529542876585725296267614343149591216991973869591591114412514931145351915564157628856419372697538971224151482262893455836943448862417237973434244123441649374415226827732124792158824885764197527371258742112559841558936276613881174535957451867441958754871451386285591175781175348299572565328318584734733585684296587243213882134586348646722996688472446196483628592178611428927523135769213831835614134435174713942655856762195411757352313116614892465382823342399739229955953521358383718414418631866848295817957244621225922752666136541797597572269913795254147792467943817268468227998488763722578537964111612424682861346287477214269445766864465756967464935991253242591554697824662122432831585745677148872936169536718827989936867293426838861218792744313285642928194987982224372253638967513824693719133543894453914567376666788529773636776818211738816134291424173734831214442492317176289576882195327525415239131932132449617734858474645776221651833243865981194483792871195633495873322251324742783728151622743187929981147676263213521146871181521328495893137268671918355567559153115961613792643932579339951162164636568696893558613655555629539277437797826756315998247311224473998843211733235366466612526468551763284497718541814752275676672282436156715883213387627283772137461324557772146279228647434962584298777987566653955591238494541649873178839424497725512643762614444889944726366547525185839662661486894439986868737729847291731125957796749766999772723669579154824689986452772711751753642782567945948663483575432324775182732845622797462976696918159882433141385765349892416286252273136815374499682848256947342861494483536717479515951196566612122457658872411619237611228125272912272141143923752131958295952927298493411349641266548285342556957979788263667431474928424749834615327421221518532563778728493829668735273976439572689272435235552771525252893651185575451643183951554744738845319724476455172537114219388746418574399237945343921228897152229126153613182387764558583834273887972342513111622872998977111991598147863219377493837841965173844466691256675736524194823848591353162282358864391263167465435588511863872353281162996943365814364787493128752228166429124593866346453872297369915137216489341197124549525244259376775279378785142654542318714379569944347443527479133118632139339268443917481371636523374877186858779759192997173583488744448853478942223334171334185926795589965368186352676144968641862491311592323695748581367236349675981443944711315979894186965626421545831972271836997232591883483788139522229353823485574211925924995335389536432382779591154644896484316723511353841838969595889189623622261293327211627841257157763377267683898739352335222932849497711268625483157145835663929453829512666292541185115626555736714641181172313368133362241619813365699437212919231125768873825646919884332488241195554582894327459655592873112355439164745917749449336314661514862173285134298791463833821143549256783227636949685674336941797954753183795697125131657291562488352467256634348737361528355945763763688962862845888863839263268371898895663381195584295742761181967751771389612221965775463294451471935753875357146331838947575125733146791981425188542648441268244954738194178478568813512865425926295862224478711798751668521924628231627413137325591268922758343331711211111567174695768197276267118783632677419387524587684552165969131383613328855525462685271323556393176595924812463188899828323779418665966286148324266638588351773377981181567912356642121255226285418841744463453152879777157937665531146931223795164943323693377563191316793613627362967788276336991322154988733172512346982847366817168978931514633865975315381816939912891336972434157238396324288392635836581687836317867133333722855337985231491831134569319981374694759732397292376191596562924629464858962535896538221346964149428632828292252471515783995467875264152572568127589892431315683971953193557349574526415791144348688794272979557322919831323348715178894238612359138957171619438624782158283113729752343877559746948877998446141587778958961117637839953819578543211374922129212376146148597936573346378541451483877631124558312765165659798869229354922375917117244556944569963399198892651638516225744695938927129546185853781853334226659177356624571276677279924169243566572694643478524356734948559415337272274592833211556573827279133254134166131194447548471175344528936819437693459118588132445638235214332838285635147356186726779468446839385177156583158719669631561764177125995942464361928467412962211114535214723354487655536236482139239311164438294878543316588188357972915246328277142595344242539126523817829794624989658812282291187567926449335558861331943525564863654981876565823392385679877623648215799464731745292548652741749689849642272719853942216552327538448122741121222986422541355262753455791642125385111362326632925875913585116423498987756155912245813781957229363717852638729884812679541721548872635477454644374732917217967393372627714345758865981241746971797554567917115221759945669946941153542724239178361278141512153795125936851519566232178727681412568314499481912612163981566774371122251449374367114436541177937784346324243357549744192542293336342197772998853955325373867325348863872987293392846318771628613647532499735865266242475148669114987211238191273789334542412846683485666795123225877784233653346424558162278263567512715215293492728491118354149451341762523949561849124865776267128611417275395615719756417367468359359364619727852641978977366223981996471967482485316114538188464366127855445395322757867174864134562582569784631434397175998211311634612496547625458945333428138582359247471997292819955122636727557654454421824422673371955247636379255759882317516633345218374888275811423736131498593199728249597382551978985264919931653374568845392426353194444236292823415746824171145259538834585582379694944476543455318339528725479892527515378351464137114815274473327267799965821553443297177816481596952554422652949126657219311277699712793652517862142444419676152431399943459817544854824583356476158644744396758224169239751453416138293115734276633836715363477549969931386596148791832333755144171611711548477622682598784412582766161747364341548937979869378818431811696654319752769434384349479596277159872266727185911783436575481559939883725472395119482252361126793146885297846435979437525698617859315561876749142436998827626285396599232463978922124533981491224549811514617251528167158213313946521948192755142984966632565964175552977146897991388728735451791672775648667673215311964762434285344821399613165179186914328138541346712771851113282955456753243342952613258882651137158481114825968488446199526284264738392753951725753676167295765712257837191712522626845418935296196585727945847771855653736642781538276265497746413763782121435159375617336313749895822294461991417739426172752511335293453122319179485871279746449495942128361212842856348313168525349575143119355317435374693663616121151462194641223519384443156721214983472491613176955166667168974948572582551723417811244876924323792662476865418526175971615486987177319893456546589546485174157225774693746896963479257751252218698428522694372282247577779148135823396632537217482536346451247984515635283713574189649716445941374212334257151684742248327922651845631799547157935131111762128366951983843199833727655955883777388247191986368659496852658327537692358269857641633674165499157523724216817311293773422317237628438539526185237348629823511183964412929113828242215848914888387875838825332418611995594729689872327665445892332719767351642134571373962933374352331137489618646254547253219431787446186198671569143334676831664754943971449382929881885126513298367685894522825992153291316663544221417587634162544351245851872519616656755325626857219472236641941986888529146753646227842331566259445928266233621152928889722748146848285925873291329475684641168415256895183586591731655436365986139663333573127957431296288361427212244644513411214257337152448395212392686869285874317582117451535762671146899455551416256369723586618317728848118398555496845927492184862598863473295451222257853633914285628117395376855939346996488965384286374967116756451983442414671172516729177181463259567727636845766469152572265751841876238499193263225245272148451647756936842517156566573756137397329222256319322186295856658476855596328557284912713655547344696292845558987618989632732246496533498432396695141334737514722246692841557812288692856516141896959461953462775484149424425331836873389663677486334333747544262585486257275397315211424268334593184693292448585263319245864818648976487679241216848116923223752247967387241413194146692716422545121671577379186326993111283717484195656236344233127551238337996343641847188641959791961936915595834435757265519217485353244589796226921442698687646253897484394662885425133622537757456635145738732582563125865144217468772973575953942118911781312851278965477341228234786987664187862764682261124897975128975251212793337549514711135886349514879844664277225213853692759455979597641167616546761446827733869241882656678733637175547363387838824989381371651573591846869235824645772859817872761155118623342963574893133558626858717195723199742179522774452435196322135674559248652644731957291149783682176493632884752217552819258491256641725946276432423572281232493654654866976711581829358227264277998175778966649991888944916345133857483581263758418664346266866155649487614473617215517648383616179619821748114965284576535689217942991864415643656723143973339219765354291843775371833161596813371438787558638136632219339753874547864292434487462332652786362466953166838313188314666483652722463846819698154586277459943572145149541484616374851272978439312275297766288975834345539591652761951924532456627277266133926839556317843629263341925325543117968171221759555282946819261282893653525731615524351266911996397333751225474184471329659939977878949246953434476119569282565261333215842458971366598757287791418936691849288158631173428249556764129934995491487252714453872265653348434352727391546288851814667655517372499874479631443919688184917182367492938349741635487788679426529127339151845443182375576561652317783655534399418331893848352782976745596585186532474751839576189677816264712935569385634138926215811367728341761988422628624914855836623257493155837638382726327897953282427344534638782347431516417948945117712614424885137644485172262313363947319118216698268875284988561297966291298732936135729612345561195677889479391266584185581273255228717779471597455479613862168137122581999274213226232915566419896447242321698241223112713316946463951118991285327397143767616185211891888172888549237326732177668652171593142275143962331697244327141311339977487231167393875256214418999597854963283443673935242197123539176971256249964484981835682217656661134658485311943245734278863526799341289273625669883786186323456215722933541857649211821349396552171542762321495192418971122651638427632454391639111934149933793866771441859838718956346645139929175277938398214472418853563782517617596322521544773727615833475888724669672799994361843446278517643836566816233787728168747353641612534258484977968824119486241158815778727783511786913768251352485726545214695533458446654452968338825217826354569745164319168239274829927651653334334953923284315913379149245861117261998629233134757247468342218616999992699781699221842585571611593783625494239552949797717773261839466825164692755497392487459262271352332546416763464732515879556581279372238534648324385261316949526994697442419529158144191259937474957464429655981159692466262472267879733519789446147796483389487865314137194468529792796857374174199763636985311144277323328318212853426843136486492938823325533333116431761371227484233373886293843916776234475638341839227531329634717222947641422373388148553934622469545997667224421866544891395887743355819636555921899517864721451172228483582172795586452136721979342967632728368718946492144488612799728884365917113497133223762979833796225234389576782297429662219555428655115135216656746428683293226986931627817716393863562429224682281268532884895791111673413241439441476158994312583331581559174464312186942828184919281736137596384439424825814951822238137649124155713566596872214455936362882541466981851439656213772926541975355517787185142833495499767835515681494252333668767558691679863218244375477827657185586373298975494847953663378577942714315964151297741219423452572459711734815727567557283623344145585266873462212874771121134612587422179483443968498225165587246521634168744612147736145931178518361245381876656662587246385751554969388146633519672976386189921897999313913469935442777996847534922525471755673416641866398894266524122757888615444711793592769824224953682533773432736553336411319783677128619864129787174717189674594859697889115684574143574851934291757299943361119698945199734425834327858273862158948643161146682496618283941257711529485368631928926345398525962867198785678134848137434136679228161783253775714269237379123992961528156591882679766697164912636472492383996646118142396137762212158924544112861892618323211721364678118512567188751556514855453444733449355362728181318213937672929982384887569326112737535646438596255229858768643418593539295799455842378214696958423423574291749369883183335741355239924647174933578939332247518823354272397542464557677416978847425857745952149846722764658352181621225375426373671977962145729326323464584737523416824342339428517784511417583926956576553878222612543587468761257121921338369328749522357654432425988283322197433192399836726879994328485482518247217616135516148222966858371371462484447728643556142278215752132278263365434179992738743583533412646434251875832352333337945714792264152146936758416871385666125994792251837957624876949213593452151326534621348168581367465367227988952522692395797765379972619449751798724251865261472853526394135964231814139332781758961644266442492389323738646912691819628338288566739145163755739546819897679966372393928741227476724133912926813718259645919372237551318253991171963497873616333662891382486442758124659119252662524188912121662616224921982681799227217864959296223215648287328664315318814641334674995713992838477435842362618888384442163743264676329753867364948917515662931949687792341946548719178335732977516181551464668934627838124482645945382641427357159458465393469973429922679574761586481164973648755649845676683193542917212319157156211774142467434488619353146294628922743236349848684925479847989487661825971817894321944765526968343813715443464737333584839865831527259886883139928575623924128994832275559546962394994538536419589981942542658996462486632248157427228399663137574271879492593231728245434447256428548425417558479847478988641463423113859472153482598247178468951692826189982294471961653335126516131994864958265482562955913757656861224365714144994613161916299323599676283873426414135474333496232223536855512488178369964484115278346489124535454269143918433152564526949346174348264295375636648432387157418954998393322924125218976535979379333283924423969692956228894743968289341858623256663967331494346785671423425846497132213151749371211873178325487437926567917658353952763181824512757342746263182784157231766287218512194326339695828838243167636943736163842488438544651783532916617829548611443817779351563333149924253668878952446322666818854538855192321263428164543782882945116691635637714443826197119142676914761145759518525364719777339379516242466188963581238199275552795515914766851534251793423432782928225549191389847823412642343498855872444375421243944598824291185535551246413175773914541623635365153727897915821282535313431732528419523178214668186799191164463552114447615855342934831675871952377818188629186247863851968812915326367965218735174648148146429336719247443564524684622443367155129781553484663813419335516714633672228545753564722348898639876333484425789134817166342989112136963335773151252159721379417467929551256395273656186538559367236979583751836581688912126932933346542377542649447723993126815557452946321254591765484814354917961442295992452492139454872534354869432873926466266554226237844823532532233788291662568115645668451288674837159976788371341718798525116554434881474167133584388373812979256922838923212893433322382444859852963875691388424533514961986996616296797257267299654567335778666748759226936543816712276124243443687733164188973215569527281133423352916161461467628441975344975333583828181385754298866221282611791134321535329875334893149513364652275225242796115151384223829729948247537911551935634434382717483856589391275376391322964571367185188268567522479234668276445381231486183748327386351669581445564319951624415922262457658443846944632917744245747247881681472279739146677954345918277731283542343549558824981144881463586248583632797811721225499326332233172691375147293522494733455633542132455936818587235933463387665391421984422546795116156488767917943961563154381919991796549685329191974923697942389659699726631239451383716741832413429358368629158313194258953848418645391128592728514963379851461314482315632229178154456394486732857542963346276165231227861394532386893449551115346736263792296483727226659389328589255174219674278153945293197858731838261486876313353736383548198321243119632985974586167643131129388233167535189492425154782142783887528642916952827259416838747143626533765965598243116251916346896997564328164317972146165966933516922372865843471646669741761114553834462724632618425436322528481898153682368412738893947478152754367991721789545763384737426957891553838361624122875538234447746155232975178729656829551851739649232614994679615684368495885874459567321111833764835665382127524485735694834742332649511174256425235172776365532448794694175514352485914734859931267683344941434867624489866494571995213563218286678952458315945762991899114799461193656838843926525312239345565812721161243787775855391298219265348549157876951829644685784376877957113772257453791557767725971778925835641524167419536369274332951498579153287527754717884391723715882319664626523681249787892357511712545233247965152149243451588658189664949966632967598586782471289363812888183676545473831799238312854164913178759453465412441887538468142411964649873145589662113633579797953677919973248867499548337426635657735114625445186671867328443218387329899415158891497135248947334711559995987428488482178745614374361234165169778449336434641976556486552978494828232264394521853698334482941795952486242427121351747191937195173243336718641973518267888832485377437694322188549441274226864636937676281259655962961397336831914758554653426156929818858632943427779327177199694647811439125482686157943218875249378251245489644833868331288789294424686716548123792227482363957495177564835979616292128481317425874224661632225566199719567531593666912144791142439878153991627587468814872138393259756329476655257517474698139365678924862891388955677325747395912674544692189475737728463764394312193533226733391756344119381513343797813978874258754822795733142729392869372347686484517886441354596114533694241786733714422422148455975441723735152247833615417931743253632625889153888214623873573643257872378363399855925426532992743896293628448574272254724413155738557682872252313634675318351741722951232633693672276463968883266195825516821123838192951276985355521635722484149685694387999675716686716125155815563684989839148716175286744893573513398566585464676547319813397739192263551217369763954458336266599733141389188341651396941449657167739599517123178224773687697496453747677371251731874288565176822421264545238813191733786988527844176326674125877321923116559812551282279756118617346246594752466428235992681265969329844176132257374157298925362761163821147526788436855591418834214945963571638433926856825768544579688136165511699153183468741719768258148246311787462147483285385725543849378717271141434184986679145143529768846573233921793126438699627435188516838527542877128329747212184328625249712914485229571813868213826872723233681938373546393246649227257943541175756125391333223675692387313417195663872699236813261638371512262677666164477167733194372974553221681948141381336391593783262424539176376552661279548941145914249814913968424587286383317934753635799317472523526726763635432851425561719411361313748387586638444486565675112381542812476928145267343563637633676541353887935275399372597842813696612116132996147314847679482796752774463995216181135718722722511445455415743624767246136995376398849976366264969531179375887886941554385769453311749828151663476692359766798891593356473566282263914955129927148351161273925125577831322649612553892499365581354557745289984819572762598189622315372762484875614677545116883499436473963655225683159663285325211657856449554418492337112881431181726174599153664581331138661198873386585836673746443177665994227274793195649142857729341823351345393482954999649883611845132114933429875289272612841972569763285484441644319926465533815746116337464433361973693195317383185336161294159164413132458436255696773428279484976263584629123651514263375911711299232386627928495369691122135717716144972548933427765972662557837392212521142988679223816246459348446583537943312263922111796819752656316852335326766315253562172735367279983817378965224578324939454941493988567563555974727677229928366468748831777783982954266379845174891347242959785269286326463356614234537626712267272319923337531582358651874595373456371155177789689319664323959347754598679885241147282775813175369494479174381336489792269583466669322253634912982685634898553329143785259121381539671525463228967951542685142644873552535736943929488942792383954622874252734976187682668248367961969111461312869524424717248218751315813195158831246743276382839277354271635944481153749315822258562335274729232345114873146271211614932818366442584238664769324319219331311773152285114715944612712316421862721755387989336899981611732577218269738442929661295284953481396984196816293613496974267135147467126953697667614445165486472466893583284277192668887371119316697156313598393741498961534353676824155823353411214172775322323138625847632711342556546948912524187887232671759466224389135241448531619436259763645378398646326466721639885923951725422423265535238293512615214971893621594492892551593622966373537179818719498358344326128777764641939986648416517368237811483838477657883867372355264568886434533186144295263556215794224676419272582627164714494141285968397412544226546241915696585499855248511758395347313837478997284599989574793133271743199691155196396165859887154731251754211526713952167929725437121861271813152321525868896588823157445816522756539811871166627812169127125735585184993297374672871614894288161312914836197775163112215477139194366892833398947581794566128855511815745137913266228368434819347367592386729213547693263991569131517995457562957823559199546856697353455128335346567458899883224991424179556271261485213211421144449332995784461516737549477794445928353148892916611796817661713792113666896487584978728482912878637453866122237943146346553196341169755326145676639575574966911373822155936546923615864928432764915637981129313143577161155594466734874472548195822786737124183235193477681174444577189248742158866867516211431697323411388185971534786426284254724623123447393647568841296772632757288957199218363996292554722766342337533453628172193222269186477581375378947418282514142353281838254476613484119856315712857396257732786584149422172126985619778213174918918533662899511525274798546674796973974181877422976632897531313837124239243289511745187778153491175178818138184383297586593386113175744362482135312139741139954154635568782583654443457448721396199352369823628677675875573369239941854271375645296146851532633118644662645544285434329473912325179176543597877714783329823697512231254335935898843526759374495664566223426574231212774482877616144175134837259717871458277413313867977386972229148519979631611711176165567838351437164739761257181927774937756673851351545378981868515436165835415872763658612546417374675923162767861263242777447719319516414312212289479252332377731938496325611126427746379366116373215547194765764728179782548883552134939592237196332528913456862596842877616391111955799574113372326277143214288436517912691398629429587159535824783127443284716147549388372133845677838942574583597222558943715752166176819849843636591752464672891314523321244732478432438687693183561647372571436866698353717687773681684745411843976951894273317499457661731555181877292711646829516242677218768512849489728371246243329851161247584338753468551194477393948489845575584893633746648792695433433423558871497177226657632281374953461183697463352881414722861981198545271549222632583651947825586186156192579781238816449782111219525613725715991559482212755866423464322479323482227147717821789687346883148688359267367744719588177285613113826389326526598146172864774612685672133898916523587843228815189153533948197737377796481475568667726592635162283779728263841254116281519613318249475213615511745943394518358434718266357562513194822677479198887968246492975758157544475378793135424394981722793899332256596218769125175571249984914343252242532673447939278474869543346762641984343847493533193173178249468482948914821764398682449292795145157456414895751853512213412698575558852227154449298146211512696542275776552693945749655529158122449539192576295959829127692517797771168261881922725146727776447114194359636676519321835845852448967924275245914311463231229787535512838387834729137653117685236647552127693962596945435828491826893587743966944918869278274427362618513544897444553241235473362377497782565183912755729381181516839345942336753332157531278358719592644783294841267864525228987751944837374541167983732359252632539263313646411335921565899347388377335434545343962316979583815273654223733662241584761367563613931969447471848395823696842883489692321312258861455471277751144271143577213668925645413244965955895211465416263254646978862371133578393348323555765214336171485518234394842486178622243182645631189297399687836359494797613343379321619376292466112264622873955496247241545379679886947615451957262965995391439393143633516843866559379422386766346751983762599654845345922475497127894148276849615143956721335355517138264575864354178398195983991949471219431367664887627463293171468631831983169579566281217834375263334425618279449799427918847146946466473843614581465221131171987693361243184634397483613891139716774881585663449553398341846744371851465736627855676241471876171373287194456329971499819915547374977594748793483729118825459776493632514375654399244351628136423981361716779533315786384596468365775492682943412355211433329589765628716379386256761268341364662567868453314763182475499563283456544354774681871728423837147914681512592885846678236875927367597511514651343739328425239314699397359919348114288147329273433283345745929751967297928351335932476777839531336172331298614879774842917929915163116688222385572623971252278869785646571961296763968347177188541476418542333236533332355813834535258976262316862226723433967117319852352639277431839649465277658581149719362768936785541319854696662685112319423478755481272244723816514193691475425827182726457637221232791823926492691931948117972831529599251244515379131426777164198934994758592194193248113334814222352656473724139578938135836332825312724672159353711418435835737757851623761228731376788768688639315377432436981714547291456369763834833258631722368617996443622944717412669441255877148918855613888827971392354518784342339891365385492471831412862551525918419318154781365925217615995158282228224727759415149242292333544114824265167198215977111838351211319222739952895251965681866166374114343738678937118126422683196491615262242651547522985178635447793474873337133881491282715993661172269921381314956669753534268666157697933454751616411237842489628867578443411597576948216667761817522253768156115853672265576778427482155695656944541419621273658857681882263562832341457346432193578622723723594255225239432578157843416137546839769688833724694384995452414755922966261539193922749788321311266518954263973619131271684722562614459624985675233238428829184173576419712926481447296891872742424525626274796785995684784314361586573853253583135493118623132827583981183417411194329468758187878748325774825446836541547418544183444517412462121281458786836874759273818186647444674132718621163996569281326656743472977952347435342246253673687569232195672557134911313163993486229275181989626263239943127823792967725898229851133733396953388167697146118759195959645563221149967832872934482487183457256415483654194617827186964469977171415395671563381437954946322565722372728989316559828883919224635235486356826919213753625713533739321113132166194972524367161412944616467245429753146857214738431225243438442777337725255436215218423418763693787756389178454395374342461627143477594748871424644733983824419846892323151429321612985921437173181496142657594311815217438432565865666418465677299464552289318669441992138654282731879717598956585113138697555618472628727214176462239718525347114342259739251114138144224335877156233122464368214236823613728672276522759949417197267931163598494511966674588983296883298838775328915435387275844819681365388289681156113891967294213221526352692255473348447942648174543819271159731836641921179238416666161341926516289463337969366761377712977837317257416483186857573848266664732357367573753456313521783794595316379819658275728738311252193291117159563674567531368422979873197733884938955659518871299787665471653745449335246494811183786865937114112631424946833731792424369717372151266479331359981537456617815368269812125236264491673663919582394832266762632714673538836965929359229764429299651753875725386342942178381113338757334371474536623355112597395244359337515671978179581831395287295494331253415847933615558924975184478893731699526484491873971848361313172316637181751416344775243716449175485233156926316997574625637745248257623222348123526962827383685695714515339116171758651169139416183359578468388336258377692394299167221948755593455745637918634164827263117919637848896225533314278133247129595795811949227286543671971167844539279562738182429885612477838124837323493896689889467618583645389736959374461589177529738472877278183286576323175217478549984399276122836581163197476751217116656116795881674196537816763566641185463729814577115348155411219239212546551435427743169396312169353967747913585856567726673616946438624529624733696799581969784942488272624121488462311861169638179218214814316642231182156576125353547415334154328334563656216612619357964883315672693849218686616377457733389181515429626511428797987837462187442624986832624467546394217456242419365181892561285538556376552323484319875251814761118282438432594283585226514339546589153687214978783274524671378634334459411235729262947162417876196132623352596397977594767166646186536611575589968391159126788924383446265562413558216596643853985568138696431752957115841128297688387941631166941441613834226644793591628423335311868644438432617361621781333511114828276818636274411982793222344492251549527845195843521677647866574173671332427924694272324224324964338382479514667122719164322327331398824385846496435272317713744932453718249328812691557916715364219754788697651392767172115811652916824351664545363463946215345579977539242681331484687535215246911512753971351827294976135518951138349197241467987991862863251251736114361263354133144746497861298224516316189479824324169666969745866871925149243692154544728234683755484484251592388886292762521224216118992684331585488423611992413753256813249976315821495332662789358264258111785833261934541594382725358421537664331216428253241358515491357381377333754142852828996238195498342798978858135146866411591248736966334144624136699316662921296261273813532491329712848569486966265575476518451131793897287623724751472256316369722563821495281394296232397455851673831644522689117873736481886788918181184416333818473112137245694468795237572449688766191558282374971139725966395416962276127575174362794716955114957532458334481277431213124156489879538537482841126864325673465197737971651396929646146338264965544415692669832165518498841742995142514255157715643112153342764569366634161477618926828631666262721113512935811658637881145693575695215292767783252191452681211149761225345632279617558153944573158482374624638467229744727332121152565761722347632631368321316864629326918692172225972926879357257156839378612173169823447892481888583389279976225523881151864499328771747776571947622528918527254854336622172744358323768748323798178699993656378453941116177423737557218765482934764411957377117159566378435342984757537474421874114562432944923128774916472141994361117667531848358447895286497657584311937752354889713449111233472324632241283369744138579784354177179716632636885479216665323525331198916974636774458287789748945174671785292748578814326173269677153911672774793222228687117733772595538283139424621518575188255233193871636188726267726754392561729884345396612916127286998964564621222132935237323124662517355192727935289178735147161843741323459346565331273322584444163732336881247763656859715129252799259652952639116374565233964156644519659895285557944533376617529337594717819974914573556178118487572736586447973994428472141534692774876447846644435122219915793592272525287322772156657792261293448615477861276613628567567133333349882879467439632437273367917471988235679919761333887115691457166232919342182955676161954222113591358294718926234549161174995577737373326411381785143265465732563749215899285658429914482977444652811385514386154295177646746941342354135521135998249675923282986499135537344237265171256882317794684659232647236629431631646371737423792241179362344123653558463485445162926455339337489168296723763281751759569941224679147416639938255659149867236152814118195367612849669187419562799342562763138858437928125379459329864637369161941981638256943786514279113484399243735532831481645896813676637241991482154691143333419154713365949347757613113281713982612445821249643156448397127177861822467282985666427743253445386574621314362187319765465757274122482111488133367451183779483136758688883141334373228824726688188753321615677611961243216423334893519325524911582947821931388622644358416875293416764224574675267551714765676646147299882561518632316192676663294321598867842921358919548853748646379167513386871751264333149324567271931929813674214237269655681798726641569159166125123112413323612491191587388677912615715645475957316748115571235133436643714954459388545723696254564183765484886446454948528666674614575376117547212983184511694659644672179272622297915965331734112853386176768158572718773491422341493335587115865267243224867388228312789647815725459778884965358146518143233328222627212937619231529149927267421643156752248664463895887415247942245697478488897395469928898615297211561619396328656262328262342111227731924357786627229943576277527974174557572975323191441149925827634442438977867288161622267963678632533387647165795927321241216351464483528567586319373978161292925971568134615414887166225187574685658417712695372271173998818586491653298492926922292831537215198946788559356762929719516147854362561227723998687938886315931611213148668594391552744536915845454296961348175683727788554782566118173864251191132619714278463384232327744587484498143189126214524649852777468825652771948327486832468789371619832274122266973158487628513431487444175364661925729182267324537433399277512737137552333682779988417886831443548796446172459394815557466283211483895838687382222276513267181473112261824856254512251712383258637119957675573271297627572647486746161948128751611126416739421233923438825859895671333156255335385357499226815388664812525747418481368325771942537732735187377541155172343863654782295595337119282661943574614176513286944657691211651839689991776627422161171739138752423759945199638313535472179247593942568937595118131291946249212361354187282431453659431216388642783657338989793543389483531138922614797869647947977231276636332482216139319686364688193562453714167724984322182275755762544776748386685953431814543126344492475715361828666836116767342251693462311533659613551693399971472125626548933546417517523615363317316785125644625921144139175418971553751832463255341489158591824126285442563774374187822822935976381565181222347281728833563137972233733265148657871656182494815215591662133938463459961455243641284186752436448232932983672697484897144649255225346925278341252476993615918179884681458347369847275379129532792323751593645883798783762413426728253933131783357977955825459774969158651928171865913937836234911951648591891182935958652548324783125856221962725388137638565434738359118748584375755831983612421431816744129121548912372794782666268629272448883292655837734253651539149837935535193473561123131112476693257954489114829978347767519528755425265664745358657124782662811578295179467118986155492973443234611825545276196484224857651637151821525552825556356497143343329839316679333712967469183145258365372225812328157764654472924199724732337673866587165471774922891114223519911178799432795554854358194654796354599543397688297473289979495138478648899214291667434779633269776229433243439226349873392589977168635373424799283862183657945245167355369869711989444872995175923346988786335894279179935529753277418314111143253425657391956723339599474451691642725631317831523259212145473789496356712261914468566645239246396147971198445645176755913441892172797897682549127331268386836339259614648443561758914349787524724397686322578458123347595181478981122811429713351393185896474165237964811485738673789896311481713196321227462663573943215444394637619983665111225355745528112566617472422483484715367834242266553662455196848986254918987463887347132927694968245514351417497252313362216699177635815461549849213789495835422355669395141666339498697528443556847391118239169973739259243563175788914668875772442966717735572817843272585786539241326264319177683591587352431144867437153222813495447948571135583181368357131963749544923487581179373919735592313886111455487346883824417519481819515565499867911968971642489229925175656512133671317692717577585664685574165264562487847523628991786176442783651937137527268492673817568211432688345624361911996727727735798979494314973438918516611838616373969782427615554121423696125594247552889436348847932928179694648361798682254526748614582941568959151721712572881463162172868513897176515763453328812849555661377471793263144583979974435744161919956235621366546411611231239625575182248766685227816337673999213415685368648422461426568539435853322441678926447748154522334521741174777715711294176423316352112818571381732683871239789327627146144119282481735825913365841787376724993848379838927619323679338947849583825126949571599279412312188751185622194993699396927323517838668721998296973188461876257154178397865375492556675183783849416727289123933857323386469238419776968769795382764138832668628139612688424827549985454483311672743469328884656114323144767472774517745563424789457934528313294259565861354691526327711527483338159147343841671766714354848266264631813826383698674453957339241356875885371554197366357489615147666678857979355865132544638437853928555492872913658898989792217648937327248595366736894662614444681229512532158531316751355561974314756974619861986162986314817477226526753258918347551393224343341554327173631616698332991385589321222443233118319713722299453493686717695843211888861767758143244614927216618359757454647817846131563356236658971268863242945381629953171619774837586812981972156352352449921943922172636119691581671273496785768482716321363777252563749917443626749688224358231978237844458912975877255914426543814671593411349393936126712227833192482342985442887691689357591692726828441984446154785162193361165325161271327342155175155249266152426362229227393148844736813746682621378558626553467269361632833813842675997324344153396464147625778916953317557836637588634962658375174953848946286844213913254947231396648212287625163278462525647279616249263412111727553814411329884538673874695671793113943138422356398411543744462574612758775853899742726313724723432272432776674847415316129962788348835415763938228861544397783285927556446254547699847659835379944555187254747494789478372844712139911116894586337589925211751538477264321378559228321253438431133527871567374354116146964516875138867592666975669645225381446672927391717576568586973838342831369928123526553825783511482932615762218247392371926912212397678774613831326193213845536156142663759636154449619648545664212494783367491672823611118387247929155987131624226935636977862426139531468253264352278328441548355272422373768517872341438913366278645666692515262442497762891364374268575546641263951366218174351845631727255149433774325598251517456531815598156811793249284943781897148311711138815182936395226222917455742655752684779361153366442293484764557333181162972925871929448922999588183372382237361595617832729832791135564597876623276982224614545291161522284533475192779518462453779145854421818774969511162242115156491775264116613883556224314576898251478598368639911824118691292739386629175633322448282774274318473764865223196417179761986766865663544776862771155955529363112319298895764467124755659716861918176383144373323775596729383157814583481725228761627193587118272123322241445852435565688873285627197925566716616155381784729935721431681342665914792443116237172536174187631298417872947266552488155447628412649658864268519953557711727911671722734244616431583892881173712268985127952138698476768252856953378321728291843668627424375263117119454146327797228857129448846689425428567491158261337121897732171152475415596515395679573338195439846614573461771668635284549429638872375951955249878751968158518468321674853625843898954728116369788937497145185284913117659348441246725146766874928224554684542829167118764472961835859261767124818662943458549574291423852181632655597826931711916745219157129167823696911619654712785938795435751124285422619143358178614794718556938722518948241523159249829383587991993155144926877911724531428487235784195648673632921757842878851932346736354417438148856229645352741853621478484398612332957322124255688532277147467219284567424324222179285183692668941211739363844479199916314523697848149679159837654817676343139797871642976223283954948165447811333256799214476333134161676183421115162535916131692345626651595347586476598415331257374858111645241939986534872719266775488136426883123468917465629321547841562443936733565735863995925536984245721218257855779883714144989139872369913685159886433372276928573659956671113834773178489463712931172815118166187749487453797587492617697641139434517516316992768926428583493373449694928746934411392671626778543832689556887257913322569935982499788253232759359345888669689931256746275655678372651687243233762466114356846278152577875785324351127175341641215667348918246653581865119858189255737345633455353194964949866684643886116251679286254267418696739344291516454428588411372687542226416847187161691211283225878421329153836167492613837721999547327115886948483276171628842273186161217211168435254518595562639892462264831251183841176437534524816614129269842135562126362152332416519317812169184625313512699732662151235791596683464197249752217665446593643528154223282538457776172234855629274314427172921618634315174151731334534793734512278562223623114763625992658548854423827689636918596421411358666931912413747281468488289172176758158119361624795279569529872521349989133723131276462235573143578179186717948595823739151729949994886141143332384582295241736174442745928827538823876534259159483293541427318534429136828174784346445631569853982648245863299732138396713189515649999146225955246855812458422153512142389526491631324233433361931121147467327178322184616659835884348888425937546654931189685655132786285527693125547284788795182126656449913678634936578846436354517284123973714561866847158666783224548772677387498584121647286799453329911486415835412961644856694874542998272668811342921419829377477132413389584682258811565713375237766458332578717789197181794698112478381456812365795443796568824159944192471141162631138159952743953978731837186839164315765218658162138353877346181379655297329813239268421455619318182788323661696661263226616621298433625194315796197376198349346151544257886493976221834329713617395597647314582163447653678252886527861651624275312296655549521572636221113669391412743347922928483315259529192931131861891246273398894721128826819612545329947951424665292927545581632652236798569396937772176669894121666627357947592793129524895211424229411624845342862592527297444546234446335355465432424525633898155917518981492742354282865229865571812783165677315393367253723462744445265374144555981155122674142175328871346873771173946549742218654627976257352323936342387548759268987683637171362489154289952234428779373853354636395728572528983777542619883788329525994352469247649187969218198869761599818697292353652352982332762361163358253687243466636125848762627442281153721971854389957417123286822763511424588392858525684123962199855126537831695318648317736376866798366884134452543469421265981485472452242192536642517963113549896123585814529321186812647625793741535913173177522124536771567352632289587939412555494127352155886754759462878167929454261154352658185731397167241374687524472162523657125766928717269371631169141143266931961799786738262158484736313214349129154737434462212982286559786317651712569517758837663335658923168753823595433335895375758124553322286241278538993299694171477538451762116235428199717215195127247541323439387845391939636432993573995688434672692373141784182262595552975292216884316912793358514381162737392389686234156414368328223271268691241134216772997397533957787462728117783215275568547443541614599182462576263356723694893954212427883911158555437737232131323972633297498336478537157177569141452282748123488128268725727423833438187328223611822652229776644237323943789571556634497537984865588598687392771485241226296788287372564528667173282128643122477578968535666287297918952599136856776564616666477573943498575367366583824297547196445114743692786341583133357356374458862574176626459226577676255314151733748332817164955456743559778353675641353721243253383124163443912249832245441312938171616845656685935974762767258737749268862911293164858285183159879623585591463951621588267713722436842177168488596262735492368212381796712372945511228135934195197675688418544895659488793125523175738773584382967221276233362752514762223944244992116819428252334726214587934763567466114537732373312441415174137239882997159283693625277585252682782285743665263466112944446691594145997462553159261161635537912397837297978981435249979866887598281268111946525316533574495118591646864638699853162338978964782338919423975838118774358546574771341841934589173212722393765474885262443638972324338289791337496198787399945123613717118117557482661219613261136662524328149373979166914817717778552614435329535586735133348335394665575922547335219465546968358396237815567216349729113647785751693284331962385864132749962167544424572598118646879714613387595419561528287585125869729323624943658517799533328916791664138531454947188637169899118848466127834366415575976299351821141329784928713757796627551461514979258262393534923345479265568772553861259344719832522861671618612967384723476256976649731938427541735774759728142645837929886162674311464717397797742527671988599737237718398834492266587579231236998336179615512537211372836582723756275463638174277325337231122987953317927352813833215312431263242267634945712181572413885973198462771587315136415245797868338961385845215563229393128414769115427877624137497282464566861745815628234449179555694381971544364632962322921224596146991573489261263756578425875717358329149597739772548868323365693595438362358536892126772256154815879122973984189842881994921669231628265633189996443148243514861316353632868862536431838653652666387169826533244249381882139846737835795864315387297213875237387647659945429559811715743895465132593748697434265386942497573187347288373165879123916268522587622771952125769563892971412457939138629166682532887932317746745413873594779122353597237161843292912111128163146876268353957367622798963321987469887529393959222325271642164619283969134287257233585626459559857134331713519823296876594155358287568614687312676352517454666693713174193186493147749526775718971392711542441399422395427546322798533957986495564131622393978881172767785879139356858819914895424191682142469421567447717895812145936733168214857483141314842133759443296355563424321741511356241463733935816583673411995366641146684677634662224958258444462297966329527137461147431265633652869348294179787461284811672817523963628862325175542365462373479375332982863531138957257878266267555816728676624888625133688988213914523653433689297774244327466862532979768119648854844862442214824769477225749323395563171295151417882149241269478137285576267341655247695389976148528986949597446697145962474362726285124357166973764373849743651167653324529164129945741163365512434541874928758765284878469881971131428623973791297174151122213676633933894496693344426276542568313335162982191717968757973344784512362815153699432861565974234241596851465478723831775877132567289896483727914933366586382286713532453948626473957235732234376284741552286357256197569524667887883594188487752259965687626743883974926764896299774369142663455267214589911528178576585951368683128388678352211838945814314397575317153149552334832926428165744214225141185893255173852222863255717585324379629978789184448842753526655827736418832189523668424977965678728352792783185775369546785192292371896274816847121787771219498795767259961328672977145696599889867637756653262185514692132878389997165742861984728979545723319177257426173963816827364656215931115713279843431225659495491649368483427521213973596421315336651938871621221778299185511861857193857797975675685764492927411638524452172177569532352117449614512234441962586136534476646181329846688357154735462865213664373653665117725132696647771637134335562791171357126153154354257289131452796155266552559464534889584415344115241194341842544718326924646362886932738827749334887195332386248846933858778125643532588168873295117115738215351256262716917248267316839591442461451252859486485158635758566661789466866731141329194446928694619563984982448139126538425213772733913427118436364835348768347311757218557629127295659964868737224934882543985788959773462671731323731796877459545339599848512594764231581125234768954464578188729442262179738992214869761865382164136885273268251251792621283119666235446965284176513781881588325993382978943545526857893963542331526688192974997554243414281184516727654285766614351544524417478247239363975163353292565981924412335451414197337341337636838743565291823561793781363328745643883529447362932851182891581389199314127363118239778832686622834575834861341598969744594162994151749215399674568761622232342279282681953836633758886721319461586336166216249484385589143989232419553833975999181726159413356257395957436912672134152156955562626834617724766142736416151633612768437242477839828813952313867385231235634126674537726361669114937354162965642657735181455972257285347244221151386584843152137794771327426737215337513757989614568552717196286297754543885783767159588495713583779785127483525374485383415231248426131752982552171795815833896284386216918834933955662379577457577993271183348455792529239812161414522768953951293394456872915933224358974437189715964871373425156288371675547687184388681344498722742112489932178238963946893495687596316457872922531261553213634358125841265477669128491168272992141253821151816329126292257468222956879594717841951741119784612844311529477135525878979441395163349159449757712264757763617232451842612247786347132794695595777657769297321978538825116263673633774612494421982442781952268759644776827583139823392951548951374625854338825631169148178151218338313896682729167258141475295733697762616433433355256162815687784971393118258199639516673368131975963912483953392696249832972122462473977232876891134651439637915683661659256887384953184355771722335696381964945697435163121632572313651492113981212842518428474941237645813311797796848854972633273734214691125527511471824284483769134638863728876316459587487228281713991944272463814919534879151143843363958754573896494673414521994944944212875121119152976116847229979943648457187183289626729597748614863846536144422784932438165151375312987635286934611241593344118934168426422786975125194151477583727813787772896578791458225539532839356477799927229141479267767671161912342813241268365925312653317112653637271736557618834694327777154963791156377632363227326955356593596375828216138467884396832247694236797499933536726255486548153725958434865851895218951926421514966488293177456815113222133264228311653218592948259783275514162644916898252427438356932916756981621192295791185962298216122696797637513755866173624769897119365692811449972632624752929918631531363274669169735995173183535586118125792823575749611144249918963248415125946372152668462324349256333391322383136648754491578535851946942888261294524297854836513347552638587488384278591697137661778128416383441118883156483256944151197165777121453776821242861363579875317959258741685217745839453282625218991974263282373975873368792964572322819799772289438869858369867656952592327389929299781373675441555242426372278547952578395931894391924769557553996719545794693376331134153828629461445216657755673938332327197955195641615844373996112657968646718121711388771557945447224552674244438518452114872594871567362293616537879734542454122525232144923895311548941584631273683131953675184254898642746234878245266862429798715128756855285887945453728953177514244472423787312912296311747251869743234138215832248429135439483373876366727375571216214741986427327672261513216472642556821679761466425895131342935622643297218282678432884163724435531533187838712211413974422821275366472943642688925884118479714435348831319821531254176458967823286118413417643313792382524125638635764188616593992988812138434655511545999555448422914111675551945495812123126521363283185521643579813792529313419782337431121324263567849339831384183414266333312959992199533313911198533511436656469491299639516539314122729647448461511581174463243274434573998159777344211251511959946212454522675417846781712127321957686966521155491935589297729189687263188859873134945486346951965457371995997916882812281469656689751141877963285364926347467668985491939184557971468412221128585649242379523247774362686354132866242979581322947199523457138559135885677779695529333864332382134184291961544527397514682446261829664442174248774669236471828136138793161385852474336681453352527767116365133787683415863491545143538189537677165948189218571188483814411251915713147873681186697548353761676671825128686215424717265915319852323228596886859696996151163698722462922344912214553525297913719296592276713227329269736774181827446242991779463967427922851281944938628141272736585628113751718759427532254552729676215377335441454777536913614377216981751615795914287251751684657868611468284727356161234848169862418283493439984485392813994765264913379954635962363916565552757288982134768319428379973528496133562313873827372119358674643981115727882843738965962396513664495586379311973851939491644361659971296513581188226133555856831866414972556589438115265681962828956198147241525254718934274413524869196452741182815925781861187884462752178234645432818115533191443161123378421839437126374156997723958798592279143321811881254692533415812668782354816168989746226428286726894746189897247516957595981486696824751433159826446764871812263216525192367578153883532233119161647814776419636541431991485426778697916872649682152376564736741816724468871425312976726792378366785533522566123985249553225994542353252874229518838131969365532729161585257791212961487543792528932946623553219337378451417215474467762312244125896146681714457237268172383837622183645419687938819248814518341185444149912748773161713461724337181812876411644388851737881218679726857896561566626526418127378985439515873327411486643136991937276658897114124572386173896611926521647453411386152299775152691845332364958815487582229178544487766781112268438562257324995626679155397766731855898524182818845349711934838469624944257711417818156568353494812169165825121491513584769345356765793658749778962216768283329921793723925167543944237682947378278371432823615265452491113971477352183545784232432221314862949293521618974584352792579632647681685192324977213787924315541462878149882668847393394985657886638421888199952184714954257839554162639556378165515818115492157459721913237616176665728639118575552659132589533955181151523313465117196131756437556733486741637949147664554357825833259659489659764215294766942726993471579957878218573765249197121923621441218151772867681132793269792675787577891452147132524665541691425897336826551932199145348583137829242651445292121622543384193343926163491219487229488438557831411514327581387778715472633832276776595381628563681843861123441834976938459299673989541222621315987354228355952333483937335788273431191619552422833636797466213112293619929155174957362125832995156156118741841154923442112984825129333731896214322446387353333615124212442256251212671234532743788943324532319111243232727737645172722436341143796432522618761558336248751262444257961584312396372943496411666551429996878165327613784431228869293636478114837333182536688289848915315479566513414661197123623264214618772172286636989185499828961989898634981267652761429152768692392178412781162148347762422585783418778618252361414876382624947882829579341925995141542253815633522291581831864491217857396687879574889953761474162249823985718316986452861142948333571259682344751215635766959439159223846767885847718135918951953637366623712537521934896867781826224326479717195395224771375226992721382134222829357234258623453161929456362772267755732445851644131354331435226345178668952711295482576157278177518989729335699413371338362577518759478838413712426527559458312372947242463935459784142972961619234132644486218618163427588617946746379922769643342359217345442541991685369341612729491117354257384272348573285191716421475511494793134642556279915985951761388817227274125899262256969616744756846774913799334353631311299778172586894236759518297596198743996726761133137343214631621744963616339877483936369999778988565574354593249966167916893665123426166157946663786892578449228471135663764882158612672129354942123535634589928791778246416528278284449386815614759862267251744566434446554917191925912379524332723682134177961957522574625185469954727473353747816524111931773393366599228682837296152856178699676772374156844932232512155961439738363947764968367818213423572745312274541181841139348613213665181655939988543563689214764429151382827271449423724896945677918766588793771368476784882517914212458684912842148113558973171114496661498655161818218192628238474333572548781625969519823961598375837518811983431871583657648871327563463199495446235935177721419872352764525672122145359487516173947418744546374359453228738569138752588818768474634167927784295842866316933949691291332135761966668553152115385322349689897626717478875176399434137947525823112684387352942314128293893574161661961834239783563542465738614843822774268658134643815677684729144118592712264893297196575132436948545742178763162173368689177273545671123773362833673975247821611812932473371871532675782934663978577662465474175648265543847324687656635621696765846428495439322956122714311181735955282658849821942831565548817857336819928791136542455455159393829667433147154118253553211339117443814191825128544374831372388265241763127964429751618755364742399874254216921359819769815852421377885819185181553916658562421952113184113786738448921687995113652568576615642197737111129246635836165352162525193948971166664451674327569398739363168379275573877794529435542296875441925534313748789441264389762553266575829959979666776191551814287882727754742673745849196391346562346384714466844379365414772754745961839638432495365176126279686877776758765998235525814433676664957925315614386565675254414714437715314463954598679513947784854464327752795623412464623214995555737894483642267821922195244924135631399673672224634731573136188864662127575147263126191698295194881535944831756164272194184152132237337417199279636916766327887923911797545735455992163597685164711758134378755269281484792754681469713779539726118174631739413399712894321426122643122537173123189229987915622982538915521988265224647515991754788765491231641531883494473941971135948354973513117325613291165128833369575674925169665311137158396171963118174582928647394369666834845435187546618585824672695992136549561826946222173875249849484183368211554566699973253663899784912515815684896228511531491951521188328299936356749317213136672451533272656241943133371831991738993586535966119885336386231822969133939836874432324535545847353521946414136461343134899281793266324293134717543261497476595328727337151623923347241283538172245224363195357428759559672921678122476748771453553184962792388899653159384617661575971448779627232188565975689292385158162126781593841769395982355262225952836127528213626169696418752372639741665885652943468552414748867611121835276287621764144569412391579481555886534767548594718433211765636712472527357564336627913944733164782627328912971564175222851766573287838118943885622937787635618528817792978227299354216357959915487293951331824665417679177873612583787859477228529753337254483457817757126778865266537966915245781416679272485865962383672112166226211979783542132963214158498341573355331442687477614511327724275436122562676162196422499258114313116237621244466193393863132951514292635726326519512755623496313144574338531135783692685342995537946477521411337564821838621894116872526131518273132531211537773319647539675716629367134775437929656577243691697639138415922322837219672844538232543269121817745398712837864323283711745518796638632833322975816133188952697623116129246393417222233696378382214393467985496715522236692212613873411114251485661353671184548134415337578349329564721375155275618578933623916119888853689682432122885842895929719186958845145268451152259292955725151799539688538587736577838166158895127824545949329153641654571272259921842827385295314634318469845859762943347871784394113391655837863519361617415347365764253646863888373784752698955331812943957157578246482627354189963725515441393359221423658296224847722858716739467286812818246562325178635828422354246359272864426984834319388136885478168526871219871229597446748868788766114712272233488179538742881919469821817457252762177626679613697455518416473266254551474554552585365484222213191234854146185481741414514194329312223165992632422666745135676555386275383976748756695599597529659372542621249996193287795865465333588132211488539878166421391284379578877492922836457792851683792954677272679472614959623388123895941955148544722619361694671758344441124582322527661666543623795843496821483998418736817452719743746651745351271258494391143112478355161878826371689623523735987928841543324483676656221848815199723122683624475128436453593155699614777726228883938114154343153328847866897438868429768353688654281331748185782233787168383236364764432472957453662789596381754129298852388161646629534139855442161943524317863254798892793296145919194165152328531428218228654918127421785393724549886979911938825569178634552923121914391174295125595137984649323848435435141172818789257289148699869663341221659635513168716529286837382957783456216981454667175133793676155796469112695812664268636282447762745576565912669348715996795875988994426811979792577342373175454162578854393373659752813146161357723891934617186377323786882273877389643822556757271424125853934522141464349869836579382883411418655181611445533219678556182461583711328115767378438427434149659425767414153562679422835382686849113252333897989196541194456567482998784112273739743469396871345547383834661228113991323257525652834516232352284131684847258453394393512639564613152314787334159552392424371131841736866577536218335445559961422487343687216448141247299284199334844915544544778855189923676678628417146834726862853976129195189347343347184521229959527197111228723124582897435111992467549446312734314165455216928787252827851585934613359581837154736257147992877757743776871281375332184771292228132346744588436876145839931278147115741482929212988317681714739899228492791697412531813245155342338717789571219579336556881785284563171775597318619846335679667765926137682336433259394616876766814522776847388544519867881681845664631828515213692916483121458614228451393635627143469556359125652346159733899996887775933218836112989851476811374733654472428195374173481138178886881919935717386448398994693241661516998743459522128563575887553361371974279749827678118697112593347356966884613752744226583154496522457442618244642389783835212653614274946877426111515382234615125835472917811919399281633843882281649125984996578982625383457844561131458351138123312834177243332685466344732783793428567537516189268394783795772946623355537172734152968534343719428193578768113597352762844276975495437756453364572328941261542155223743331278486282216958314427753852756345247226422252381147358798837379846988968161436825998525999768395328725712159339652198712447988754592938865985379366146682718955898344232971347724219433981466476129462797813358347588972334133428484972952437824856597965693843823739641884425485647883947437294613356455935696771785248736494257915152281312914823568583268153811459879187492631861129589686992542311685116828945275249172699581721175192731874265451111634694212986159494436196174964318157661862934117333395558814615513757257164111297532675366633255181994928414771948535383444415735374748499813431549391538225795727421216613398654467493116467757228622891973936263256429944958683336114957444575815622822642364139236563185813234138888184273976627665648928838272126871357315242575277977652285245815659871293193261691313769987678959368628683892732458451593473458538415794297173634867294163556448161319876917829277641775162661388726979957233191411357465191216525631822832232959497478517198916321762412818716543439428426551438359217974619657596457118957492568694437441982172279875924985369352595967638877748239289244513584816432492759245777164173959636665599172889943139774327846715326457234712477536116116144178314626327814427568557217172945161494613677385671545253513764794335754442612526233613511876611278667594162847284781493271685128392937114821978828133627863791582377535872399642778525549951791445584393648835373681958391492223251813443735738259245874831459186967711693116941828912536254178971554921621213897279862655613162643341658226921798279514822395497558812375911338529341254155442344566443153396898398387758813363521455754417165914216192123652636313636311119862493668497555686867745849631579752529822221546369482137712855799126778412477499339576476768127956642212139539496363875129254355857436868569131478435211976764726217243229264864649661785671761897368483965977564343798388933742196233611273188412353961376454231922284975836237856234955242732684695337316924672569834238324837137131544443255141786687792743978852719824556792143253785951819329456614719982696529519945698773271319527137844298249148423689772875594223897731581936348168986274765748762363824127858372294673369259188391227231132477389824916347333138441954122119397598242272155525376829825198512498555754579531563692779518384682471584446391357637655442546156358932934372792113785126429748475655957347946162216957174939613824361536331919373136854923386294599482327211169479171233551912117394513541786156713438111114924761125836616554851139773633624522576131953153782332398176714284265528171184541479544894634974929415331772568281256448391545838477663944118627654762623978522762123681861987852741786625645555161335564672375331997347418588411661184373347866295582792929853629146495191563317367542472438455696631928752249414287711556139614344245597725587626943663323766637335932723574223484783789597231745981161198815361923571451981476814858911718859186614866139563642595799196621333568383434725633144312577949393681516994173846531938137525875947786919627889515334345386287713383149181731957116997866777146798826169253332766744426536597564356878338569671256761875912469378211524193158542878124455921678793695723134682777226577144531834712991356222523178316122252876682276172734617248271645975111132693885455956435432646624916434129386144156525157895258118541853494323188495848873545991126667514925917737631314878187915556214586952552238342684297631681242761472696357556574416652869756571896378765151439726454785158487133827148339478248689482227661481692984398214921448124559471644898899626495685544779797312648873591878721341549725124758343527762688322962827174394254288635469573329883125559642254254745765473396358798329464954541999134978562389688349224532314235183761469154675884311397232976263841564345262471173134181167361893554136644375916234354972655215139747521351544476825258639735682545755933238216692886561117333821344779913652753211753531121545814573753249434629645453984363529997539152224943973668123452171793235715725112163959341917673284524871729628511172986452897473236617889732215532172874289137454545432872863188299553155518625114695424636165633911172771376861221199647151162725315864387848646284326759425621892186158624236793341796884533495369473555341349781162911645173555915279296117731718152233637947628541745456238631982113662985495521267544658117736146852234888661136819142155317184168387322252411184852157798221599233888378245989992359985492814363325588951821797758672395698297421647398536536351618686697986857692513776973361785471735364384648638743478892281881451683668216823945716176424475371743977571219372883784933422177752629821373571432229852318545955746615658476182825823312131241668768727653339393267621136566547843624391694397623621288422296496231313984438346541389511288679543595311958197625832618314233663156856787957375872239119766777822472335697191758958148446732588735677362972986852968122494216889894328448795653323253584518123231828435352624196446529998412963879756542462116139298897874431555527757288115795561388633817263216634578624177133541638451973725357476223768616898133464665676784568344462889276644721737764134663121993797463912446965917199182151549253423266396154576779712912115819317896596276435368117478439361941832657254944676873576282524752559381126629131247387921519513427318933114934565931716444555813529381159166755997587148757843927257846149867111661362228423771174947753395274978268154124368259218495513955643299139835585116713562462287857887551993354174223623715958219851618765348464446428413425457614151355481454793911637635863668512421351822927965447536125131627562554372315329441367715416323774449328262834313663146353137372665218892129352219471342644323377217331116455552664957631731375684473698639126652534364173622116478943413281838454554979535126936165395231153372496399992322526193495121111346132821413221247228436621964156555144912632661516527213528344259544476338616467453559721386372259677566575595622241326717136772416732482141372663811543927536442688913194459631883455913152741758173695184782449641563846179431257884947789282367249715368482533774263587167376197831298489176763829671731169231133644371939221276568457663685726873314473468321123712482562788722438464786871432222734878516897787115239224526156247213113688518369791568571185573411458294919314533866481129595329339938289938229778398235757968874778891254341735157177138572711864852457989655212528318448976898868594428265337771581989247768265385359336265719399683787742473183293715362913633459624245177731123187174854281465522626252666351598363345992998787199814822788992764863244456775514473926249927976166933395298375911266845727527265857184892821674763623138573989868976229273683959449111859815175753793987932122563122936751621473837278841353875879754121726797953362185194279381378246237591264127876962982842229245682118748272717294126147361713498662412925637718218625874145713473862519514884732828238541793344198759819559936672115239181527774894355951262596955551768432283722186193241164877136679482369228399782517833498864613768884346238364249189146751124577635236629232837611782862642464467994585521352491696191189197755778571391497715323596764824385725161115225857136782223486211872172844553831863633894817725842237612564395187838252673345143826451937399128
492161389981818734212517582161581634463754681743351527984622299591138918772182327624836943518836499256766395796264318799615122784248961221133136317363164567214468493333782936133364123251846335665787997679768171245635684547882964674274433322176167418935248326967711552822381566154597321446459119342659552295151366965531884365585845777267247837772227819533841321135527298291819829955545857189451262423278643622326968342892651242932328236447511563329624465342481724732216523929898764799462477522362285614914738838169676286438146621636917624416978846679615175246233298588882362447812668616678746268272486941526918234331119256419598858172152664399538537176864838453683152644962824511163243735951554985489416316616328484855242269691765299738617146328186699323979337376253126944457674948879725618193348871495357942158985668239266568524596495916371488375517341722663226446778247555184477842397922995326611913732416418984192524262634729686183954823585418899938936544389643811679332115768776725282976414132762846849246139382325423436376344536448382145172444375248759451584971754288651629279148794194916935217567966259743155182767211536969127338115347825654356376197439357757943393347965538561864399652992499132569957687223988257795617875397621655947913311122362538753227945998212685935589273529547152955112424233841856823725644837981654474913612294982659451252843946588581746837414388484161316117341199625213225183784447257851371211942916549872459175346568823442431939863152158347524957836233873618591142589378152326175958673558438169468272158292277225333546897657811521336228132286753173594888561797983936666766221432483138772197359193291519236438436224832188536229627935955712421574371331214977335116594246647825287217312687245893142274634459458861193874895648853761545866215858248452587297676755441571937868186423955951539583897678653664928165594358812219366497922676831255125417335399477168217757271461323191976215518724395569136576924913267481787114694948789717283554834625493512692515763276176656311228976366997153749339693943137276578734358682715215758525313915636416664656422788395944391151272547328657456717724646591541764965658548275445267747312581278183273692385559262259956232828975379916388444347563246226287176477612118266818231738964691879542611419543753185262915892826964185321164963958239982554283173455492142237413286929621377828864318693825429762158995431139894521181646151939757412414668772112775774178159467113118825227264427465176121561962174395711385114535236999229652433249169418811696244667963452847287862186417355131645458456514621588651467921315849111356259136631991547692915612513186467192424674658375759465752115678718158154629952753151349453833912132338929345136247418273349515767377582943513933681448682891875562917324187876419761756359349629982518925517135571671279839521885143483352316892865614823264444359466224575445771976881697784699253619123525521492693924897555365283232568943476621382695964463443927715765416773136237173895638575197659918569744882673411859749177275212516538913962418119365624385361133311614562541116113956843583526577575817772975378644812312712559537524353429393262937115989876986381664376465399583133936421271772246931247317149942893519867232457677758764942756916655542478923587783869563488177394347745958355316755336552961557515295819489648436828113161111372256814628457391533286971181342442495575279734114565125854535887578393214535339741136363214667134256137343785442414459668996684552499435236533324221818723772598746617117933396762184184443589479587323362731723398845967259721914166343135654873776737163712921189178895349645766314521285654258768291612678143848514395937221161623373975714533572931476643375383749453331654245478658378957574855648818649496592998739672911964268541726578186772726189495372758958711443155847545767866251553535755687738364959396354915619117124635756129981396783674922284549281322495623422448481799295815238214794271766526687338158184386724579433168387748425124693334559963763719257311835677356461926693869698215936985468647558934191452927257492819236338291639965783511752261717551388353299873357215314983462786227243271332979838281235296734987973677316791137955683541373188299688968931488752198444256923949949973952176368839283334689851168474122763512822812599272962546156234566211589916597623173388128196145142711627925529266996164714688948316252292272786314886438528277152397712899682284394954288365456655213166175872416384414221813556821128216629684514184613372344611593929132985635531147662592468784663539729616858678238318622228324645171441431588237543584333164198556681233974653779235791239836825319346992621858255374439755275682255267913641269354344211136252616447437434154425868433954441448461591466945865552212682831775251737464611493715848777446858532177281453858341521385856315546794254226238871683711742773755919166528597391939138435298925292153557381459771617367755691584139339412668469879849857414941336421112293435524616253197316352977797969937634182512662515484122186583247397587959277763796765762668254952966875395795341561232152345316522886526519286334152218989459952564394239155253182778655391541792176551757971729358657591347235667594555892588816455672315377749654714852874314976421951827484236728648694884171759475387724263471439824611413718728251726767342177367633157993392838282638932343951961816632831315628871861331223858356443457857639294967488732677222825249714524152464859129265452569794562748697837964117516658253772212456239878111992841693782332712193388529435676447151153972261539136846583461882394268999437344593389788544326356563747363444791533671821616751858486984529463998855926932443911137923437438439532149634662696172364375288342433912996481333942453396363374396345485498385886167312326471618529841395236314473192693422988426482632942211969717193444139847784621825848542995136331357975685628438994985512114331815118775222881265174455673674769744859117943829677781738152819992337983236485434816332615954848662143888226534762728526134889511592518386297827571148599568457314747566654373151386194722857522484819253148534683178213795167983287842825414153457516844894562296222251856664963915317452994741812773335931815688922838941228558236127419653784659341717139631116587518529432398594762258621237214548828123741572318484112417599572676479117248783912467216737661471726838784148568656393552636996341545247532644215258555581782241418724571498353775613484252552917584623128585257666216643829578921614389333118517321348358161128658458729342828357722289871413321696541747654144761643188636754188336818448434116816692434426255311373245871367518285849112253423339555312558449678471275996686318344634966928382857632528189335683631167122858476519746336273639738598866145176987216873899446472273444244866631777426274156815751513872321124155745793118564117851455163481844659616788758893839211748657925188117449168284388423173242988524369322327625347951246175134519979411159483812669287788614798711775717365196921659258239722185458343274881615691153648131165681635722989978826536516721458224452923371479919513814533621622677423891198862179216388224586111339418442172151414916197286523925624262846491543214227176341824594924641143583961411182234929235126512293322595778977395648249317959552548521441779785941362788661479282685627183968662911697685138436696751367928779974986595879346342489754745685725837859746232734784321943131528396268441978325911917561318181329187755942995192578772819923247245325188229629115546636687637537444544458529416675464769631712952615481447836574499776864457678797424534374829321141921661776664844262817945222719959178513933959872793666234458543264272319596323562796838535143769373788185768389423155936522811652331817371752944176835689389735971386335372812595299299633325874558366558594371385661234235451195357359518156125958379474173245432411672376747174221158399968788547715257652747158442155852724962138557449268494182763364283657697348939954221633864548635889176972762782685595494271241268111774454864339642542692535518592716881749613243783359179447941341462742577328162597318122929983648263894797213883554639444626915845738588728772732391933743491682286935572226259555336381217595721163689724233313956945448279952352442682748169415652663471847537474243575423895845844858976248975216128952272739968594736875817369162979864358535121332557627777319534686783388181364224223943681571683556727367379131928296918684252953984247373537686453441354656249813277299564114257431947381935574976531423918684574926167134339644297929671526763945413998676968473445797971325589675117425278937814852332696867922793922247163548755794314233587447682715767519716321157488118512362879752316339782262383622473755464631729118142527233282588684392291451764153129979328726235856657243859159266176945331515236533594632283793498494768532988325122989884354935345645495125844649232477376449786216715815318141354176315382221122976374451522777426271335135813126886729144515421273856913174492338262658212193265263614482111372766751872541671174618652249567234421314123259551567411329355923166821179535348425262844651413915145259237196471216932934985859737554745959168247836189174377387793164887772121693879959313491768212757898949164469457821281338162554423776473196961845483286169848772741247253121352186362787829498782719432874542168314182482916156568463535421616586339344822357622151146615957917453621927573113319535161837814696536869729869938673345478575591725754992849351286552317575177575573411251686531613446352212698126123739353664545181879812397764391733352421598574888612867144265122943642529694886397391257417475176712467897741552774657753175476226981575932312646174447694212231559453369865586291318216379543366267589411867244188634179862514535425225544754636431828357162389335982495499784754938434499847771229519895941752558463459142785754238194259223234698712189418565335128461176529791774351323342324215783261552173921357189696295382383346319564447515243375435586533549243451194712946547921728876236533776147455749194233558271987466645459924662577655554619893857426149572948586584884451135617482428324549221892155214774286841454212332852235542645975627971914988556791219139829173379285213785288344487691499743219964365351518213152372871463887144446756583471476256812576491616772368842178283764696189998443665456495176525986836226278812154994961946265932382991739398876467824198869292954669168528291538475842892224185942852435223889261968185589432346594653611854265854528854511163584171443466216834524334174666118587811378136976384247219863923111392234893553388716627195463291762625591857227239226173495794522784483381377281534374262576771415642884423932131621973243412258147589714987842637823755978258931816274121195599162757554678685147218781271199357488176492135436143325726694715816637469238358711482524372271517418433567958686153431117614675961567873519626193924111191355343267544553881944432194619262523164327819312136732691912719121498767353113351932759198712273158149137288129363221183663454714454729654223568142542418194843683872334572326832288835278412257632891646442288467712328511172938241393749441932839164769891759162584662398683823624767928721951429927955814212127385277198715436472621449276169442994715227793629421538844511328239277557934295732653368965653823482654622857522267254779645195333531793951422225844667554577989867212555231533441548915294611875211191784731164638176726788124723822329942866598228442344282715428481123323526592851853834921272221999964174634268526253956936912619316744229137912553474146752768992564238427294143352481944633121847325213148316452136391461578125242965646837245782444424665619445168924647618683717739811886449554345659432255968726287535957226733422618262616272886463832131387751272197536742228691312478123994788585944415113575752298618924846752215696622586525316137919131228866425673726593835929814642316415197887863661271239858765472975177796942856428658428652141942413216716153972178773549397242716293682666841631964566367293959434356483565254535274543462228848682311122847746972116258131791748165246512176326547988111323535496361156961236116535651135121192579457222497842483673352997454287425251554884978761416369356634563649336888656344855177446717876357246629266637988827114496559333261129573954252144337622681186698151313585916135483743114524317899298191394813165745748787216988895839533541637985626961451367429241314698837322482832643311118532931333428733593925556865946396295295817717564921986389946234781213942872651888126752274893313497843944713735171447862817134315241174855882218971133843277138492363635414373386182268918826926569543752129312647929412215917615552359592675792832684481415483968547643442955451911281431483595123258834569644796289863566837879761542936159326138918354265172371631174518974257641572595322853691822797182886577891489443314992694526797214529544185563629482574313751415995673311198289241668472556819124464481382751146853376285376886618752511831787931625955483289388493449983445937482832116428726849219356911977116898153743297298422629725544819718871891644835239451732184618613212244834764269215381732256186813518931857516964399391694117376599495694594967653469164287161273364814732731333452738381494425727824512141699153739678467962567137372948572612184758511587558381581525633395645532844967726811154289329475261792254792183431672339136485918533265921414584784442184697121684754641367476953865694391261143187249727297374783925616581495855241955215756188265965359549252359442887787517175351186422219122567859562213425755144355472918935463665524799769229725262555447499693447569158967682222171339176315183227316991754541443571712762424473731929131882934242873414485728631689882871575793849411944257477548956534249795521795772136912299642644746766216939246185486711678197321323799727768572519369671687931855443552523242577252716518435279348876332396427637246533157482599278759725982312889677316864659475416431638514155453279163283635232167672885383595837245461114437199961692339177663426428611124467884591142245949327226832164421166258988281755364137394873839639732737774161125991693595443148589979147528666929286137613324173987849791214886448785772511966156453554123811932262259532978245441877535454838311819937971422675694452736374629433788496697773347177173836864796515382751645296333139942691546547162653275568631127726238652115644623555232918168342862115644271131773995915332549157772786616558595731975258123939384363158938784232126589549886447377463494529285897873627564924151831628331499843713582354347783318562656469314114131941658692939354636423751763799292121497264332665326279183596271682596117624849871417519741747699372648265848929123339666285171311767657747872673929359468918253182553938258585857812386283262185974649219663847258392619421438153879885478294476121781595324829136496941367444592657274814312968299786197841416777961472116195755699974268372413614639544387629461339993223429887284145987574251736722554949785545813357175356293695748326669249325239449267911523666772147463671886465489474252316442419552387328375799171242491674667829242944853338276973463716432686822258755445216728427187761173671724169311455523941992983383521845358283167768978156925646972797931222199812261636641236823734518218732733574457122317659597561767745385743312551356245698639421391252468918127666939656386211759464579274139989188794871588723522525319697397512688565743918782189871669924133533179878922676278652872459818547334391245983534811649525115295868638495335347363791167142644572968762412284481527625599227559977571667962339398848493167617776122167869569259544238364625141713386945232673774246125482987165815874284584184687924158555896741332289456835797367346923243938658828751922679647664967412917991396713755823724561449686257394594656626428188788357599353759455337121855938156673814118495484727448928775449253283733142153543425323311242199491516883519742326533197395187318844179652589415284799715552481824565138899851361473158792566875194563753241221462282225211563413279217373975732428319879841422477593118576421156335291218636952544698283714816241697363957693261436979131557126156417995186835254545189733949979194641657547616216389299119377211816985698937227634562583165713565535514425399197411515876816911485198999332621155687632792631582352452637399275834952134639341184358477169541997166395574396937243488499524325698732842981513671345338152669967888557449112238818326498426931238321768341857661428498386928478721754258271662356594588641536248452512381682815995687665445932937998255345191799946733613292655727262452826533962727373536921646411853216152626851629334388273267833318676126426291353548164611233139478829469119866415621819286214995581354398315352976379311863248173445164382937727218622638491141372373583626866693562335692342791766987613171699499273517647918697332743267733867713625174921394741515412276413197467511526571423645446828715197253129912667839914987439532491384541264172456612331868461463257125429836277817781913676638873199831637551743921722548812963858423621474211175861887453611137982653877348767714982473214244978943396647163711323442546969483963455412345765231172838116552179529688781955257937474856253272432492675521959976412342376687687377634122369129245155721255655836163477686553554543696171173161819544125155568714773965428166993252599331231833547138328796912937971288693979724338932233668392125571291515145584662857413289639726447461655356378863439139281315498944134912532228687476292816354363837948996547639195876533583833742793635311175461259543363155755682794975731145312174249128436466959466343944224215528876198534625284682239476487953132144239633999869159342156513441289587351376442224116156715213537554115393442652973875557584916834377417795254445952451397645955166263583284197721617156311413464916278665354226923926529375656275125117551722796141269563224621418426192331946871319645534318296836192842525967975769662584351121377915835512323887128863554188861679657769466986145544525736536697841739982729579967874281379624674465579748645486648724352458432592199877479886955639248342292681138422553511873382787423916173799136142161954339566117483294845459428551187219792225921161471524658327863579145633112967119887395353545237373975151389126257934254476833431618136829473548256113961239489959256548388665571193213596848224997533351431621564322927716995194934411519993317581132733652578219597711495763149965324587338658552933854355353181912975155267796771773558984871127711279165149169496755359294598741711718142446516813231518573243428763348342414488591631433756923447254417396633473718782632519719213978887561627882861762526657799912947294234185217884144371612935639932849144168992384757177754843813931344384248158269771872917417897541336416426441529564293695932897199529122541158232258723823944129992745529313994267242556459933128797334823532948638385231632716623778646412624896575293242136771198185451664128616464722318457613253971583718143127782684431756621387317753855957243778398857493627441853152992627462784762348855556164316575539989811168565373138857586782587888276733629884329368333733427499775154347571413297141342673366126573522131884741983434187415153938612611719188737462451173322429183428416651264619961245816788951478793224214789726532537787563437287387184945321434894368348653119261652929427198919116913395182866932415314386531192357243742714437691935158489873273726347997595594118647723986346414648231215424374993687854571783594818785142517374143424869611427595761184442586454949322485884227431146647172687642817141912349912128483727413845249317695683499469526385561719667255875691976368977642133347474513354969962971828665377392387844739424121381981776223137135921147726779947215278328314416418349284384293995819262918172575823176186662968983621634919758739718854436831513478994658265156543363222195249749883942924299822665744876385437818278518875332555145155824531969718312915429232394172164574618831386668766988358924815853377353242518777334334995886943692529215421754771238987614819128851626117758554963279752724227382581561673825436262697179266257191571789533386146818711627313329824263612116849632613319243778795797752337183622514871318676749263193176143927125292244533682657398992341171396397243524973757727214731718271245723155681113163781343868185472741474126373993762885638373758527421566649854711767266811669577123547564614593517484281813441984463532988496918388291157754672194198928491861725441473585239654691127725397655639163724914813732319572235675876469583349953436279346912761364719216881717156786311652544125622116962254435871987131513281829366572363651613282877732631495732366731819761598691974185554818132714291397235527811284974842972482261767716276449734831639342658196737369322128965762147785142134361132542861416698667912842398519237959631212845297591256581811795295883799221662953936452113523932164416373838559452735441942437683846511441917978967993785653476685881748255396867487739535952212796977827842513897593338473517987664541579847461212497364931516644654465781232832635964895134978795113294864241441862419476636824855941882953898383646772879138858935247659377995232157835468248214527242476736443544523989574863853872119954257885478393265466749271168521815314449846272768531393452347632252872857296812677876738878671834859498113544316531123989657846831136144649395324667556285245929735644497757789144325629844299118426267312795712552682225178978621949324557828573432721367786652749897889321643322419316282457737275829318715266257727611541934349313829112439611293164583189464824681412195681888339774334197533742967874285284244271271325298848754466796743311715347233445451145724371545951414636395637362244779211763812831363691837231662759152692932786748583216355553141369779864147586819146335323527718381898291235796465459588874179972757296275286525285524229616375485663229227716177759283543597247854457198961567174636785251272116317296754898328113895129599754978313183815574695676639183644887842756198666235457829772145965141561454321613321243227574813979916811825783845686825924166527893283768364986976451277314676739334887688549467548736564411877717466429121865115982863498794699235241363388864836854211933424825823967186337234575517714179876344169336633157749472132322768894896432984477685137425744356383762995115433151779565397732469475162561873998545884517185627583496291586419244894973395158786423883936576664642852199179474639263986614378568263364556786913376884663247258446581371544415748239132751622673746888237312619915525365229725899176458548836581585318647497746451525791782244432422418463634448931368113715142522535316641429961199238675156346289892834495952941349957683665339874657694318662436986812732241617264816698498166312158657528783392545253865773439893351765316953824148668981616612481765182344642287883423963924261188832186677931135369442241784769442778472416583468893137368516762244124645161495524241513294437397927645347647799161137193976664923847813526564617152741135319711532195711265243598619626388466174781774236192458695984318662547688665996942359449784199275751747826172173486178396679629736123451525861842823244141613857681927976665468693614577353922113614625674437731129343262997891141884599192887877985337345623611833316256811937843925557464425741772246329126513589873917223234552866593117429883923922943337832361732182343814168431588763533287722422519973253232818324553316239231761313456844827456961222654791543941998196546687826223753662354665285636834791644422486766234318378527721229664178364177773663982438129838252696798696933119461356241815551698762423171367389741132217745198172844343592896883271156334521189332316152261981917113728556865193128255699535738126214762446331517884727139927566869417469526694844648153984819829451999665473133614938356117188187482335441534236266724797991878779872339338656941123819886272441991581933323751943477829187735726236618663695436558316169346142428755972477238165895752715213536754816879689373726832724799441839859734612664559215862829541211835622282885344176996785985727983445167187261485784559646195995655591263418948775193845965864525245111952826792448813349861658924427612222689467791111642158823666446952314795874782467176215114968514214525979156516981183775651871839844459196519787957216416376129973747322724317667373716354936231887954994256552369137863351354529641251815986945278919376926667968688611432974293172576686641492349288843826718758269156548155942849226381545998672728117226255152132672339832263849439898249518585159358962532246231293429527247745158513491923587935182132625461623411135434622581537454324341132949198736851616824729964712832397218334131536282249372947129558882445744493893745686964299429234398497953888511638263756393626422567938324169481577831555854185655532131851461795211355146424826535659718169342248927815951556716489611569119263766116872653211423623873512862837978811844487776642698835629619778724811624511288364826389413251779151478896326911954422599869531422371371359429582558913792784746758292277969163938639925125223251612648262354752486721838713877151827791213648778597891273912267519933362846171273159791196613384181218577512747343447274493638571345552677174243834222485226321332823394874484421247712561669595915227262899476114225984571911318364829542482429813285769772565413582719512323458415579487978179415784341766822239351222432147414262763255717579937896382559183855248143327387881488915139528117244186239694723175591985457277976312114442294213351619776168861581353348355393252568277365586828594129387384744944152286489912629659744482595789833714838388669142673471391231139728711342458927554434562642461458848221611173562818189541365247415192928244166886368927636115958634644153576493987173968858224361728748263268411214626213174333296676445125793963199574514785711711956744252779885335229198588856615674566939319362555271412954794123272168452341271268474441294572227322167634954455282677642782653468325338334641354864828534212221441332356495245516535218767345144262926157119611186935845122171914941134753896674765229854533393976192912262311146634971454796986216864238929692262678725833731671379162661943416574549497491175791332289831673853947926498326792134366948624283695197136127845929828483816171262592595453557537853238765426811582326955277356557779324677313276397266731694887851547578982628566444214843727283561475743933736727536856563849829212277118768195139449424256862854681267925534338738935627739468761312134643245713623182951295524658539348737465528186144385284749529833724431425332537357822926345264194452164118454379685719441782366467451312473895791118526744443611157535119685652237932337323595242742572262859713612916485349449125511731427223619883255516191932863575157554895132233112976992525245599174287172216262413716684152693587513753348381373999651478952114524338384414241757323615966181241196856465444469897663334931337324683873189754674116132754153148321766855189194243115923322677763954314812184931165966998751569732588129272456559947367955184374361641539276122851873879426878725915644277339886925524922565937776365362318562668743998212621887274888882332765164984311882716588272479815182832439959528711141356522365556915129247874397938141883615113621155213186941169348286999523134181452374278742321874665716185341873792959894234136993724774594152734654256341943343484816783214127318138223496979775165166673485454367791858547198774749977288673449595299618693863976899361715113883375332415218795957189578973872884436149782372418516495189922993439973571411176389932493611678727656562454838222611143376642172928327426478654336955615531357959479625873712246343498761356685725181881639657156266216691845594227466816647628552734749323647399568538361256575132487543642233446729271464321231426713173366223362213215172191396268669516673254259313444261192249834859128857214992472446732785475686231614633191219323459411585574241583356371529752976285743384517288241868414942484159434595535127666254351717146161842748879655588817439233279683482539562995875316629754333128974631337618426386961512846237911184748241352552419798629181774487675378683417867762313763565941615493442193392532347748922484925218789417932119577243336224872756265275786394944662595347534153355747573878635163279236757416311258815832745332945136452464757731464287545332254252828225299534731442965186973522893727684188265232363284593418388589753917896349541953176238366414491635426417538264226351345395751868417458316917765848476464844685929192319699326961233439289515516598111982845899337953111568752953676468935833191193672366579488132537885684262872261177999596112713683212123744347341388655444884671723354282468227617212123881119846581328555766288836636288397842255561768679832531329939257772132764315182836665223347584749457836474286918449515761587463612458668151985298161131695279173293166675724921376734361656851282323541827256837687154411546798526711159894731241134128231858319913659355177764518181655673217348424913289811816228689661183793347661245976767315548256418234642869569468518524916556174555575216476347548716778527832796555411253884366995612444192621746342134458626414726569327158699373193274354858127562965752859712494757252658723645431214739919928542953463824883511373793435311768773719728236856346652711436637736247124278544443477693225438764849566556625445129975221463745348528995856515437232759342266634647283496329748187119434443724429956731689526135497122947746251724552227332256542544481577311693834391873622819774665544789289874585857869656577997528783693957219634753795361248637874579788387716696513114284849859934253318441385391213669792896772993866366849216213765717634256658571989179485364566515546245322543495664451263538361894714783223486294383511727813716951453741119986922339871812577837443692675711737174296191365887329834497842317995385368639353587521584956558776227891931731746526148741152777828475461762887886411994954366155495671135355429898837528113613974719333153231977565658184326877895222924239761515878418283989748244683584129766449733924179633422598652463593135341115888294683791572134958887119421926915191894859113627213454315111417916132398124181324964839366954381215547787186448152291651812213712822742855914815959287944264631732665895784458373397722921934222554359969948657722929368933452272217237324115224463445455283592292392572278216837812274465773455513261541313312382262768131121772324865967742571271376131969686744939362796422537577942396417738457148526871792356546627744977188612987875184483864837743821343528379591176634662271877463421431692136128125684151389893812255865572126749795621765254869763859582387628623119169892346784982126923182673478767248331617574117542617276672175354193722229741176833767433549292482798385754477727343678758142415795227863961569964386638618738545838745286236768432464246786935713828953331878266198153192664483533213667415737749836832486144875786331546329662389791993542689391852315866221783545649852286845198972192357671173613347938818151254568499999342147666852556214349258391893421891984988333196428333536325464451956332177864372148415554868257568573533861494649397354576547157118396198653169299894715755716965659915974127898676912533211373392546855473591728143513651625923661292753836141496912347833487231237524245571531993651843355186144282974839941963236883642477167872696139499151183931321252275446957238393456167699933766641747647725482481367345513477224562165258257931118958449972171329926522421764453147831623741474615557514434134442448479256327657582933244244263829675818159986419384319595472875236439893176614443228657373462842725771647191416484422331976517931363766356582751767167714451418677178469647115123512621596248224344917278188161347595827837813812119261357853426111266237131322685532679535789418526139135632942122298316393317366947148869423834534363354899328439778446956585445753554338671968123985315646728694491588944238331341287942372757424546398591966569244791139523231669526612423315927538729529829475926492177727764637492161811473512272944569982266629246144392737875585386267284516315898372972676927354882646845523582129498573911486713373355554318211117881558595847921485376252885641364974837784352951642819389434151121455266129179143241821392474643672873486755242639642354468572576296876136518297788861737926353933137716258963355314113265754492869568164644995537255199763176757314396978748998792962641926181157886356552466551714194211697242842835732452755179514681463611159614671261138888561462122178261838461342656769996917129758812738946555953813574755326829412745258397491742229554746246172325768652787696483264131593974617299376232459838582311375416665252315368844863423491529151886546285651145366216943491752681364199322183991641786671767746936927466323778326719767478137418749916296916717593435131739317187364153956948273348339244125637493664319231261152599118511986634368819393796442324991218432439889821339325473593177145878265943617423793313762528789882973666157831126826191957257164647883249616447426154482431222522471128727247999491421491887669468159983662538449372478314915821977632336736831354561371271155278864185953468157573467155291993235113567939967917861916353345851635444273119276268424893859234735599329211931519376988624388582963337879548243531726987414522255965791179136822313539286594791232639557495727992582861799321432885162684813774894922858265658211569691852438764546776619832443172261967398986221771935968558422717983381868619548135653682496235868625643589416473842821845339861271744474598635861972497194384673941429569656771485284957156453619687858563696614116267613814248444729521966342384468459541839697125394938819219851678659626222396862782195613174451982897359292487224395534419993823185274357527533359937622978424521754862438682672465813362795153313998662839625516121372185715349927238392721643816483753259297344357478537843631782292815221222435124654493117462994983347462911512462673834334193262577427132457392277834383333454445385159198138832188613622634521433176224539589323114298735484657644155315868591825756389185179629568162983358916121583264673283649821282492325484487684916544968118843228729957231762148168733571481395114156929421949584751511217895394445292253916122233144235285213284237624988612266829375145641294387225352415615393722655786145934766865173422962153233535172125292415622675442381457821483975248649569937653661725983959186599465113343728186984443896573113971581763489421572994832674833672535771641865951434797763969967345728947945825122314282495879158174632159639636822879783872283168138671683544563789959978317484371644312382332413239141225279568162175199861843232982369549236732823554653119377754237395353618598938793124873274556987526386264528383839796919877794936362685173746951945177282949971531827454872454157252377353133492887531551621892653656754436875875733258625999141158392126555682467697539115595896391727164611667672633411731142385118412428945767324823321225511193794123331269531778211361436115261351125619238431553773849459352888885691138468822177239889838642687732761277348841545627493262773476789361853933654182218626143627665413216737949516627338747865129995419161257563134496564818113118483834518373844832143764525384431319371973813298818275357468388486741418386551818385517477821218297332613714686956768972996552225533236631786674233977412413853342263692227962629716368145719167997265768688619974449925883531915592469252732587565245581891258731461939166896655245543567462577721379846925972142454424393189768254327266395774764141436262417771917246587729497686127612771463142664536538927227825471491922331826387435615922866515753686982966997556698296942897333131691623376569696123764411111649943181559359771314487944755545668393278724834493227442824418314288546698954614357791711577151853461395769233563299177556321925224699163554331887376399118694711569671347948448667294456268573753184531626955547416982195275435948551912817492465563426621438591835445647748533416396321444197564331756115784279229297747839543232271465822692759114671123954811334495451443443624137638345812138713765641913645857655569434326992636412948513274318932434693557689216746758847329968611784592816435433193874377141536735211514516914196294952752312575493943247945925484424444292528923376496751566298199531488193186527166226576316137222929843246581888729111418188329741467474638742286151387819111623687667713178828791835733367298522759868582553396176851324377199285376957334777147791687825628154154152868918891516135562239461911953326732384149353275843698144179694939148268396878836832363297354585243911937146178478646512399644977432943246184714521928143488836859158596454119649164637475341394991154814218893561832633421146444972351269682762853797439572268139516554426192456717563732464954362794994933321759631843926432442295951342194742775768354822591426985355779666491985322841676211839945572991714624635181355485389935471234128271626763953976921292944184533554616955631112617567751764697626648564391176731144457311236449427513622818148743583957128513543358176782273358774883123399673596524778433472646438131755534917635992837813734395149996917298435735613442935416463183493386183448396822622438651278794631396937381797973421627359232289521234722925798314734731925445312482168592164661818812224442387757747996448644778627917545578492471169112134417996791574919558329398223189198711762824882776741739882463427757323378136753226411295445998732439553216778816656888518978438822819316644699914615152762962851355623941314267446245197453249995222864972421234314425834411128438823442489282511825534731541798322751395319634679681549877788433453143965972783695847557817218261232725878276159673121385815493551276579746971422663456362936382444352814222925111924528594817477661345862437252127864173334833299472817396888218149287471658188981168155536283223936775887267415414392443673546247197317372566342119465391984382644692165398254195518413722715358993315914815777576161531923161899337111275593116937145883461936315842195244242716425768973455496265958986586577125584238445721381518281812414885173949621846143689166473737936235333521286136737429838275337419974978963277565931263523148324671348959422778527612565294676832363689514187447371515995451354436278322391425995135835265121364747416151568213564485469534111864722847916414923755543333458849268887261842411892782615776496679964164195354961115433787312178872827721398249657765567861512171777952254636425322316458959164475733974559813318933312113953925729775144233543422488245165341281549114282327966319826959517867967928578145282777894148531293783751743654958172688715775856951724735334177781258568489875582574419313123429734713819513526111473115429777525193771154644527276359639524746293197974591843393893163446212543641422677657846788631851658579773586949753619283832661532746614214921382487663363254165274345658367685833462474267999139125433391492935679619117977184358445136118363473975577656864968225936438423569232246999541981832547558357213358716978814125786124415751751815547489486479136611622997229175162453723872323692548969757212875389815513826922985249993748474391538416699523272885628671813382116615844851566134745213893715319842657343646637847757797439784768854851474715854189284567923932952767423433413125227321826633917972817331657536644622882981342292752671387195676245777162413982962154661459864622231648864226534542585593776583888769724933972373375415727274255749324481412451314173622166577695494634558416554347495653757318869513845524981522696265346455996328516981323579317957437717342224219685384984477655434341151885414377776457829533835841827176229659136512613852734655942553955331846714812251254118274313442257482227338825624673143372712824338897721346398162215912546481593861256831758973934523532446412147183362597571398636536493123583181517482438429449572455378132665717383822598136628492623739521542686351683946599271745443167331334156752321946332623576767954658961285322152125778969188641265572367433985425123122727323939887166992417256465444879729452724221813833323343633495512694343766215837765366614896956182724554754735656563157871616155563716682671835224828434867945826835846242136736386193314937477873741492683164319934149977991173393362672184472337616561867465677454588158363722167751248372583239386493598742313616397158372865945257856698699745681167195985581556458642549137853573181423691733125494398788567999676739313296614438522746271151141946715182567722752111824341822731187166585934821725631585843114888835712551864262326514399156743387114518514364367931588919774693469687291383237523852713461522382645452141763811432581568429393847343639114457548527645478746556928388454111356638285339564126192479971542521844336182793227691697414565472786722151572422192882285225275627113889492344156516748527562941885744688214323729243377277269782274478438162857197433684599883944388752886941126574557282332381311236299619561723239389728826613256564845196675546573127442372847184265546363764173227341987123388431295481367645799257321585263954618255117813964123125277111964449345391148163329741813416167172493571731954258116122124419685443369836469515944857444113973273719618322263646478352323575996993635133271613188499833993221597234675684198821815313543912197434669842155273139812646168323767655514137612765775125163353376418779473228218768119312133261368777814265691714967373872569112826479118383651628779856872643586985293273199489332597623257663739295159462213541416975457698173923616938637732911563367186444221514949972414383773468873778411753725343659175973459117513797258947123837356492317314817933615165567294244832232483971841428453851417786513461868275324463472454846752137221952672185642724539612971265298178549546276574994976259369675266258848382497995234439734894589134264779787393548727128547951332877352635568819271222194355313355453139814543724569786543589235411517963932326483678756391878235556993529717171364813188411559997842344263677961772952798933977178756641341437815442736223528571121981182158915436599432719943842152853774715896484292132381735992664193915911571254483255483183166382877519423238218763643344736368339359926112477861772553862548386824694678169566595111424141236436271295811629849963351522269392349234281866954344225544475851242788761327327299619771311111739312411262457559986553314214611291171447528254192373283458915223166273575373151869918246475612565973836154962441576914933741591458534815795117362212516269226236957366175497264577547852451136764246323886525462391478146995815872361917454461452629539479525494765381414983732372874584226754575734245781196836167941315717662119991214478725627173853555258499669239346412854789518616628934383127664959913617127335591898627965572454612942161549366676148728127589418437596517439253571339114285122836881441542447177329777685574412221465987798858585558145181851326733166683789572651483687677565236541414896716213966152419692561179786288962132142812267837343121191474939676826299112433122166588264685792859765937888476225239138656544634865451398754562374972674865145598441673238885955615711552511822212821137667526573645537722637423794917929868948313636268227674743779764487375443331664311444858981489422757719722416482233658418582342131155921834655731838626863447842254645111975569633515567455873847511962733369897633628538842252962164685995265525698161815751827435189591761339882854186543787863682348951949579858326859176392147298768127556957811423724522534555386781274229972138951867132661621387395415157625677787652857723915491371152255849163935347673141711412351788294772371632561484786634184179374727218219136725229878857953326296115536548252581696928157675653443126621264653782632834114492716816913346371131564645736844464995811159333668821873233412426323366476155234718973682199636349869799292149167289991434126852931214627276624196118368589351257643375252144184553853953162778927263467942495645385213154342227524341544768659113149717392359287496288612419246592271225752455849262844785666853473684927332181723235717734624242128542636142733395521894584498741393417211521932146972795283981647412746447196187386272542364487743224742836418265561777298927486399354714524369832522244429555762645634273669564375231519293316467546757479492438325743225242826361449217431623761483734673774577138838552986711264949166188832327527362212323251948545251176557825376326255412832272563971331274694242438913958427175958554476741851168997236973764477951913483624845351189671922264123974916691634348224564897152792911568315597678839774135124817634154375415937948517675768811293941427763412916166785557431849975376377887856861146625866918571948273824985924579556671738796365233895531532723396637354945952131674249242244461114732187167113523985124863351528486859427978295767553573123324342971879812816897358298861932533665468138484637445943249669435459252995112558417578646976139762691292338129484144383174824574229228117261268276744374278291291129315761552492836616492443922579193173551559296653713763396841451351353993652487571818247175939511639181736548917721151576714259557547945668143247492478894333363762888586698467617718193468838684545623513972215276223183286253589323243144523391459397118752739858987137657648926516621672164173846534418625574589768756767385151795155497427848945946582715554144161266679566933942748526138621982324631199456768122931188178269213333179235533721633979751739788638665834852127888441514715174199646985973819782571416561656677628841485765165175431629583279132621345631434948446926659295717258611467261216548496333464977329988389781652379224246343863622866856274571125913542139123566432551836176769236266321883653878518839539729443841461992651219249893162784126942283644544136564741366738719529952579592396724767141571359772394537437652327525631722213133811874356379512614292122695283573583354258221364755564517373729245979956741833681928791459563755223453916254619285417241442945778339382412144773533772289527731752775828591189347938233334714584181745915822928373361859737314321779215198539153294653262853916183684214115964452914176534524839671753656633142187492682388114367462491718488132336551351941913831414682755819929373265894347845311437372473282865841355271566737418172663282463422257344649212721855741262613942517446218315695892423881555751181712195184552744269591743218239114835962622778239999554527548491787133964975289646181866194523784642856535527211693843514752212327641894153662561451461885614764131927751678398598424941667865154465851733374344762845337112357597767588173495922583899677356685752257668959375849158454173628229131232552334344844214861933338443846264471876957426539899168313799468583512486928391499958524251121177134235684613215195863825799711625967469774592886254478717373621199541439616514327724278818186494133246532846785861755129332581173761799811685883117743238757917268496349763343284666397134246878812951952222491858329735535713454156171366856123375853353237262187113132527956176174392626665562796662625794724476292984555774741687311866761794381744964878237364586281683351132131897678117749811683794212947533264952248549141768749236669119513556351647631428581636683391855925546427385276859968396398445719247936228798285115649537174989583431638454623981213119151169926311466895194926682874412444824856853694184483127333162273111346836286341782154345683469658297314773224383585568245726611328153529414112625559676228922842252916569112134375965383385663273451933691648899242173755133284984684137711584982775113776423193241625192122437155227182283767283596241261782724233126163493221228188455199525128378468864594112567819965592391647776753146537231334316263639787289768396219346435958892115252866251878465739433718845744793796461296657799218285354317711287933531314515933399765152393587829362857367273466757657857721123362824449169344332692315751298627666889715117388475656615331231816761843675211887114273955416648238629871722251784339159716493777112826334179567165317124688656861428118932773181148689614174822443115793895427137347673331545311132781479982151577313342915135687223274284517539796118812226266427423836496437924275248863983261197424718394659665291365953528283993112283813682732719734458924727924972164513523826484192145752389157289517514519367415616328281645198253115886834146336969138897295412463493658361119832393388941999355522343266453521171461549779627664195272115313291171179472213628836152672987224796215216147623837196176369177692234981134845524197336988237399851892223278393666147412451869915966797343321896762196733483638899525113541332731913771768195271464624844713449295314945391933692895281219586514645311382814899451968976645774213968726472433741691785246843356298921736194159464886462363617529239121956696541643275121563334685547352225766792527553646557223853478836758863962114138434146759889342132836922383351816485381637767659372843393229823773986844743462914659624771126398579935661553816785427611918863268317452163167932185493993493175528223497358556169923264623222881645736939281264254737943175513679281276221453811393177356361987616548116646863321214733146623975149741283585184627611263787726922396314396748336811726711138638328217832723315923541318397652953735249435762229952961545874817772226454149448189736611257866943452251992981716712535889576429278346535852386388286458569391211449497165953739519536637645255729531865278262346912382556122852332111597322911312985625616414942783191838324177146486339693635297894489577514895319825165319363785897982262485342911393715541678991312441263773597146564585784427465416317917292532412223259716351926183272521325913447248892937358659888397236442544183298326962525688977635195655596222198663737765751154189364745548677818475863312396986388228232346721529137515351279686659445696744981471234466199284133285692181747164725676665698967512734867546976352573158652798289667642549386432264574416636932297421153454914425975872331546298554391588212226177276154137742913185591457811338125151322662826149531927753686564385379615138441392257229611379852324196883386333216143486366665457675894661713771457149817157584765368359543947163467344753811381822623749919969549515875486664256169356137735562182192172124318291448715252686572846314283643994896751398953549879687795179333119583436138918642846916116288465384246813831887425392519938182836791475164932261445953212135895225293135814967397436821916838949539966911695826421265745784429262132518531988281554128843831538963139232525249627234284364938155618734183175571344724517478875456527281929636593942452644685921527149222242825157899354964444563798116172497698669754677787177132437757326224285783473916823292841985963197375529987389124456582251462932767724686155763731535421966158613173276382986956591687727778993178912521932646247938545829642931655332377355111171844319615789329275274484343274872222823637923337512291374185283312747182612378265683821391387769451365918457142326497412516997556839585616812694196454421535692388768782754596232738875469635351514644899523144134639927936239481915214678356468724131266298918181791537238238872546835469416247278663663695212351144996619486569376934373386695458837738428198633713767231397153552353915173528739556536614832186912653646763669761295712363795919897437386352356313547915433885166454653462812437499781776681131273295162724926599221616242355538952444295435815364736958135821361272193485169314158214859512342131837849212522922521982156325845412674138983482656468964415915755835698464599829132432427659372877362698947851651489884462223366466729893287447844347492148216897547446455535371126665557362295472135393536742653344298693322168753154676693865271952599117543381657731737129979451153417518582772949863814416613446368253328687259174816383364256426184787744777653446421923957299121362244133956217351694147561266622824656284759125884923864791325996861421567731247433497881759177438152817232499833246217162836146538938142936477257196414891685348347133586259729148737474622412278438724355813829154624961852238926568964562232271949112268497342171819258228668553661286362282952925765894198692113387927361281485557321919337577212658388418991794695362756638673735736595288269357684229279967854394852367422975498466224545541169923534529371253297113251328798344356291229828983986846424144888273624615283835669416432491825822237826479764845823667395133932672927523775352349514325345315993745793365488447663724878846483914751234988826842431682113193827813187437168617147541595686867271564984341727237329175961254935418451231956489494866214498297711311166121228967767124183918382376511836853791496177162643697131473534323658543869414355143276535281161153323534996151266611296395479848973141746159425173563111543114411981347624354625399395524849375312611821247232771899258653444334726629134796294643258734342285244839983952991534643552521693646914611182691232486372114917925264768157615766277749119162722263586883444325848647383228783454433987874285871141282337438652934652343855736392548755498337124846988632944461128853217286733419151527351135941621213238854246459291354386531519581728676483985322192425619891211221887412531861483512725775953429757423515824985281751966524619138292523755664519865915875637378469767997498932578236129985819895816835258233667818193575321784391191818223797377128416916187493615132446598471447538218394318962212586765179128129966545518653841511145128414369633223776747557624529672137848466245742895595815298841661227418649636259759952366336121679497773737881599246815925262279223653151185287117963974424367771396767336614192993979753687559834314269486812427538225423997582294762468798439569415563522796853413275452342454836333527286116914347551467943184188841132926916949277671671364197165737646143772746256851272925666417395324835684537215124278651882417122442986579161527572278968288831734971865824788258383715665142958656738892536261889637979475514445758664263217231469396753486652244842767594469473126724633949882146924682164133179662714979224533911964175752166632127557979355532461347299845163713683647724166157954871351987814484277795266775395694116759815266386672224673951652975985429737656865874562128258912373988152831784627782995717257937232116248432522191575186435587327514183394643925924993544998924723199146778885911355863656458664975457938893273351386937845122917735218216485625188257666915861997675452635325735998467488936837611582527297867354494861423239183195661825715657178225156251516165931379831323737529611711274244547129352348811254912743433112472968392289468236148419851249654748641885892593128417639853732682575324765697369511281325739127481759862582156465675536849171357383182446974712622891159312184956217741877573281358157323237358289517139976745851324284241291995845412494353321616718221339276467713599365539347282849942894321543599451665484643843938637197313286398192176725148857655233488377372458495939987376376626268365381541863429455219368261274416249485127653578679125483824665757774418273989272941778872128947421245129549247324945985577415362131421918182713758244127673893738384234495591936145618421746326284496796632292941499877657395337468373214595531923133424539958534177641941153395463246119148236358398432912391149692424237331419818391218897722373275524153363681654157417326858457745422664826363535382738227321667519839128735589953247275983377546732525361549839846225123889444551553878392135645553796154586973152565172679994919412511399715648587474866336763914164139144835931814515738876385533825517897944266771159254432164764587816159328556996514232144623758176355754642265636844553288854362525463279754376347428598117353511847131359286837139948481532622979336119466486928465963847263852746879418968154152965629411675972357469189927467374712717939891647131948244258993532434587333337552421947622459875483346877344414981315942191272914231895527132774479862792671332677781821311266696367784636765728826774417687728733431764781982365338867799157883236834537954798344829927579767685921138913382312774622644342928615818332248259122817432636341568228666869915215962969858569528884816459443879517251696464428112222626117218593633526487259757617183127561575952642381213746784318461234164139398629234421822828372231335397496165954335357977844974612691444448767649679524932989512313888417834332149544576761136131346769593594453442643593892119447697695812129335697363413171539419218984467445679122795853238113613352179675649582248495684664132752597345699548747442191287859451358265852293692891886318857264923799576964551474321947816513195928413884212547312127456947335629375387219832953439456118183746461132921614635947813355387913521319919398336495774281758195593122738798477363699591453116683965292223968623842231166266943471352626645572943284219231422218596481981659234716133731735389464877618741185122598167149151682735597975248972422536422337532922617623913291477385911195946144885921164942295686242679431621455371451136466758113313854793631929192519851238945327132561755622322361475749293243296578838149897954122834293765739573918974311477317758483659539663147899489916878143144192712115973823113483372676175591745634796529183186619964475414861176484588263953925261598166676822232965875784144832238413995281781982137551829311225269143573828191388234833416955696174913271855137276254814141848695591222157311472912361284531165981318812256865661384647332158439427769849275144942381743463462568729555523298253939143335295775164774694642558751312144798223866237212639296764415565433253522763513189287337349975969351661355628827846911527961716152628774757131491128328925311217327664559446926127254712586598858956332418696676957273684989232887271651192768727276868482191241128254823635436727596224393334673369991498278935423745459912555511142318589181328635795859637931322933711128348645951924123319941766518469146868227329984784133369537242236175589626717997578135762929285411365329924756784852235417365262195171952422761285991197141339785644943668973624796946165952439638123449537817595819228394956342215248244588214292154384971111816393579466247467486768689775687971675754538378623149675236319618226163653669567631535793789339827736117932337991942391416233997838165666962657255624174364962716828481556391453789352532446811139267683865862158765196362296981488687522984258878687571532214761164851924151412984752213815159982115416894174973576118346771618862199553258744855687324465948292182781327381247582521547257155316771571732652777846143556226344682413968557144268472372951173776158749468938488823148236758321995224271236714371627328492288544412788318342279222175461673795581684489115512727345856622913738925143457157574691655817452495726978879195999672259621412287422847226642923464377735853869234434135579716723467947523823938792463754449553354896418882837241235237831343912361926951241312233332722929824417374147929912436884414133959824855564295632515548684265277989745898458472121178274574312311875159537711862316312958251665187889169528694886774912471121285318891644948962667767193522858346561556151836786772873327557238765381713428252341246347933845874213976891819527591945319392813773296861949514356861587122223692194151747192821736767231885747529492179166119354269585669593119695152228159138641173476255298997194981526125415823758416941199768434628828319726542849516258172667811236654989573113914623164644411984283138962271636559251497579865642265532564498244395621281162189293356225119962231322961615993546963299543744574742812739995614657534329359673526966265127932587786632919847579698814356978342474872514119739663716223468969468773458647361621812915226676292731445782261992682382259585852313626131675323444685551519254374546139463674442215454163229495583625475664341823562669152566579737477844257136869661377256423229454982966135349395575496449676549769978226515389124366331296389467382837296697735614645794117486419653541892151249448285497369591935178362397583351657239475158464637726196321363522765143524811969751253892514282114213549375939759466513545649939397344333773632285488157621335645864734155435994932984548937943322518887398974476412113322795569777323951615862259741643986181282138674764528465544317735533889328778126892815931431717341251188211328661415358128921416853822784568969719517973549735429181849423794484222825393232511343657781573532832854139115952325311121958659144525822422851851198374214437155219599769376147631596796431874936562994657966263813224567551728634681917184216666876247647988189442756232913416952912841434679273111734218126976312586921789421115769832431415652516799535497942233612182142466981187894369138733543688411218522251317312849153318599553891863295768336537387331766651234591811973692642719535624719735236355259756763371461295469896722781713982272333892443761393455271455479144322147812681256548586414389263989354784532385451521969127827813717491732134881645525395692284565633242162749464677859461746951742232567971431977591877794217482195555521746114782554334228764792688567612345412994547872543313363824155337521486311158385933841883741148632698921951718476659955873313141997361773222765324555375844365332842267344589566297161279288871821664375279568226377862543765636733227558527625216471322995812541482943153891173823813728934952167136648334395827427648932583327372412468272989985129558349676451178256939373573497279821599294626429414719781615326728146811951928543287727869233866962613241137992739692353163125715953297597586714997276681551643355223444832832226766788431281986591496635592642562164972328162337592272299762282244731672557271445515926628871772934138431564922148419165325871283462734951869734166845527772532826645271155849663215162615915663781223338149328245492957317645874165238753197725565745614563859143863251161755398345862559596465886991542797248952239718414215135321474299426326154219771119454322218717838371375534549556742275842192373125123278811247435761552992555142135324112839976768934262863828552712853543561815412143535972625881869227197612237216113475887787952522616882868844952684779936826813199734732834252987426842145971291921758526771645969647121741373931814374742413935215256874258518247934913192534849539863143688389848266348667774193628293418392371936378275378984488365586995422273216374357535339734414796863475435478439224786222314337756656461559977184913172312498711144341943689187262599637193328846717976565825262554235155311121765214625121521156134161164231948112513667126949987445397514237657975527599583551726286291235326575211367228529852164114932945955466585545895895294351543493281111327849767293319398833773334648615422347245262378432885628693399546396271117598379697396945967566862497934634568856834733118119884788291718362642482434556987972851377153842925173262369547564723515769618986931613191638271197949833786623412947145486383317615591272329283248162281119482474383612758848414974126385182217271328324419874642875252939625838349215219261794992242229383622488663413172278473274665925115697778417312798781779579223777915631491622312651939371886918653835219758539298699769218862514665131935785181439671236138882479945538788675949728937337444772529237632821783127118459939154211992839578396599935221782559774536435293348361163344948821764181487764613432434125554871129115122142493626653468337452381323741953374322877745348286326182174917498182494782513912195399273298782171149456366657668336543422449222828385968482555917146948837187854969462233266754811346967467589715878791174957332449829561473262935225876958876613434414855613488841331576492594369673762548916314838874625226196432638139459264675632923281579497215629564166591139918195581278769216616718585337985332983875136587576773499681893781924279138281297257537389481637734292154786279781121966238137259358228664359894241247819785443884157924112421686815576559879394264541513546182262693447494458815763783328893628736828781245718742841572146862272466216678772513929366461633513435376333875641826281837873824256385318178137262928661969315867942562782241695621344218988559472556826116366766192426875291254542981735129548468539144225611156683212531181254725368357336153685842453991724791164753191257258443918367231922431124935116112514379622364267738155113149456279267571377896232889243458222878318868284814962948688438616498786461693389178662265894584765966144975852897324515331472222315685493299152669815854542782575837715271727989831649716668181917358489846549478737165677327748364298875358969977439754114535968999243643918344314639386311667853399156532445847336472872345656283692696616223151369843181836813539793261684429687291179768814518144876697262516699447826569677517571779622783752474345446667736454867317934654185468611219161332919285125321136845788698426921478316798567297553526929232212683638214923871591518147312214262969881915711132529515869371783523631374163313794584423352398885215978448952634236618777841463329635454781958761223436919559311193634464895942714744131169324173119591111763969663531278171536374682333381775943337689577958893429259416677437483224451772134898564535539168325321977552693332629795615199278255315811822284279642173384828842929537243631548456963567886581863223117282379673774224367879373259496456949743678748273626178418799981745846223792457146829696356393616313514285992693451639191378691769336523812545119893916957957753296182318725985481966448631876247759614967619469135119697457365764215412944143835114565832981984181859954881365536231518692623284928721198595591884581446595847165629126913129577182174975938368485311596543839784591148537894751617216441725324551484534655178239173936154334839578518429916161668888823678711791246379693846669728813139122892429643179397277247836526249776257882792164583871232492182129223812712257954418695866683352231627817315967656348744813136415257256838869223462665176114397851857985692642219562926631342721212474158951814643532745837891458262174444262813844231148173233987993562245837927225374398713175591394572222131669362694856733229335765121838984366886863827576454915158494842117138766153748659766736324167983678588717545515813912298312577193173654454174491579452628321152314277681832743814185726478457492193314413754183464521337157155243223255699787413541955888792586574958378674571662885339791562556148737547393118657978172191254683455189337232322172312273456833433563812193225181266716988687493765163568888589233678174167154876832951169213878567393519494322357251729613976933251522939859723749692379733972948779611347117537363331334243232675971124671127293124617517976928882452799617424585296477619631121162747115534896256442477439424562554129812481297397189352936916137512474652872154484692896475311816134568886781948855617595329498629337393223262385425944853816882957243581732935932498352573436841736778169245644171336934692686849433231636321335264942734646141468346498442663447859761294416894236913399976564889696412239111975276531639332968715431316577825327242791568727745547282382745526458127339293256977743622425678498578115834478393951621486659558216127683788599913755977449596134182163898836547778681847481226778719979356193977866253464163165183263599152717719641978658843344434275147767232452936181624295116613314579777379969549411257916599698164439161735397253236469235276765192592186458343695123292451342339336422195852126672512568397733557722285985223541713962123159238341633368887629972714371148615152476818639985356852192895235154795882596995619456484826677938313551674584448476587942849444978465429714275849358382121625521661422553433526294945889828727465735468723915782683611116447323742117868625847372253532696534518542698157488211115695736433755223643891926666697117413784874492748618479619428542899178792622364583486253345631495753111935882531751538236454544273463182495586553861979896439836198462822552472617423857636665216248466476649621864794514677527629248725881515451589174223697637826524512227531633552476651577814437637658165144638943947164287268355782833939784836172475823656874471883478655225352959842249274135875663216933192135391429159592144324215511988156582648456776268236355734546197318343457483149194597577225471786618941976198621342231944919548755224811951817266324163457256174946728989142231617192611478489111181318997129516268673225981429367739872791424156251254943272347867271744123128667819676373527894827219961536362926574416425191342741262634224469776329538866138222573423729839723399572162267583584358324911558444651639478591855928624828814886496554343262434497318177438668189467263176426355396417943331365153116131343959338834448366183229179772826232543347233273213542331357179422932887137874162744465321214587771632548564795863752672316855298651634621143783286175866741551565924689562993362389643412246246124429417928762547562474648841143333128787945812233741744646421554573924113592661892359532146759558822578939321237413641478917438877528538618529822841745317517277828388873995972225861246954882641447441773884165256548185278358616124754296871937175412737228293142531275491114793812839357671726115764274235488823589386342659544337446293395734191937955168834192112772416146324319218711468773688597551796253421971986827615916815191411627729947766369482717366211387244546582727285212659714258196322226515564161882911457238421163112737356352214363858188294463713366559396925485314729276733726739361517476112119446624924163984456125165897413652198357737284652867838371118512583427683529181769632855749895152581886444663755822692127828744317678152541923593888466363224288436918881537126137412827845163275938648269894964557972166622168742355521165557582626418366966294134122954852355639827961145976568758228912467332218747644374131155427158256444576483334523839323181555153338712792913169951942974227477629651696545323281912168731618216256794543176987629449443123156452113819894679665859486421665119438622368765549585312132313212114772341342838373264674321457753273296667268186451954372297615171411953695218898954238268192581899175461552749183332772726355485956816454734692824354174829999389676734877833981477595987277796379938813295912113533188998331725561382817748286516279236464865495234821389381257947662658324917467378521646641951113557296566878852827761861821747128985999222654977521848574245331494152297846289776549836284847223574225392472221717315254534481399172757719112787736662698827281465933927624125866469559624181566322458574655895857742786838778941741457142249944148766622869395428936632116553878798546163329713381494651629292827415692288254426995327493533548237674159167175481869591768633535643692857548161633456156611297553714712118655951174679675563676952967158918666622694473272261762637526581259876775425926379436474797184893512335363173659159424395915362458362227732839735169839536692757115377595415619751467566159368319923431878353313386764946857183121555813875972912847415513312258868729551566954439926465511844133597115891226598231657647974168741633583783757488226924112334154922992393333611261896663668878927253751423538344282524729275629182515911775696791626367882239614658282415757756171951446119454395865522362366327221848714531918644816582142557753743227488191383625193678895433633857755527927926188196432699234157877813652969764852598633921614626276137474866517141499446872176974161423432386329258971944587735269462114396344481848635566498339368175774164536512663466887182948946933129138423972111596516695216818826622188938413223512973711531983163591591931651386792489224847297618917352371216276833689142112532215228328442624211297142366698228191688651361944378346515284772736594373447294692535862817539399796519968773157688422636152835935782845499472583742895575542255249261828455633215446315154278431465257733144744692162736712377323225351376513283513638858434669139671186711495478452871973574958474413287163532858213284292961168731337214361614363335338299144185123145328679977612549619654846692296689452356321895538924688971759926644292199458477379676473874781454881353741251248127454867323639194714971274799919217264493155164453682344981324868323512847726384167111797238441343236517423954851528464367274152781581153529456649521524229391182945136325397246981986145969349784219782262656397739624855461688934184947532862989571787639554162285885754766815235693461415578139634462928482225712133912134316611531285713644567533161694697916879658517294971981386282953679925848241266954771997853389717876681515337514857188316834651864376297931645768649132219478543598757493685239895794334643728823529677267481841658777476541357553974236165133658734541874349266832662927673527448873916673957939968731515824562819712772261333822243433423978551887147361113259632534357324267362531214324976684811968112372379824751932549749417352624644754841795271364459731324199168312761419664771643882937374117198931464327219771831641326226451728662411498313376819642242641244299953824717919615575577275575129229726628317767838486331845994315521612832533584844333399744847486752331437335646656863272893494155897617626512869146379628324616825831311493864594642295437849663778397722943258273127922684278511335822929144879889379774895465819768186711319267889958192748336782317158766983748548526833722365461161359111471193675683122625722249143763996411187228469816792121381258562881418844389278185857551323149251285657721279264262676713324327462214882645114741953423181172522129196313165875457441289873891952786187231121665334512522735976715224739826415967149492933134186697824363482344672956499482929322838747222569857526823185944531278499163371928165892599721288177736279488914943812462117343315114222343984334466936598167716431648663911858722554941284837779683446755958148117145986157541545176781954335574113964531638935968267112436143139142845826542591262761314532227981435224884321951729882211164586762862965383779338817541857394848111691194388432593281292542847513547779999887658159636171591214722781174835233274449727614561643114343468285871325137636962138184992836558866922393573226469464292463226447255798847289878566823578236547149367911657378369286292976144594483397862238931721223514412915579265156681345785995338775389811297142553553382631843364615952345657476212783557362621323844589714481469797385858483478623528845372964933857855978326222733191662961867773957114254531643198536952835831587556331525223469313389625619329687971338839399973664825362951169559842376822774984222163621667247925724835422693412349191392364911911886735491444631239934225485527319229225336931379363954483343853861929878265416781444246227831272473673636916497796523212589655627435164338613852838466819958776912828745311736227151578316919924322218871296698837273131632164598349722987216347499354461465562118476255334426696932241274253258216186622127172398366362834498365317886783586536114188444111761144492778414772461746497742321422263638336217644556349625185182863667449457545595989356686455756928141722853316756695253958866114691422746515823473334211497636616414622463413542296626536322398197188935842921356233343111716367598413353627914371861847944748216183434318695316521582762176569924849615141518388695547991188938481119244711856589578631962861711935753852116484292282229336235613328359681492715345149771499331573835794149312712317659387949453391739539344663259246957487296764219879527465224469772936647246778318397243199769124471763923362865563582133214485734153773793334331132447591331184749112322159617814174324155453454569417848153462961653493966934749597272346353811323174353811756228499854685457333499793422274755476756267426774166547425442271321355645721715353967829163174289624888829525577476388323213692784681229421886389729966452146513275863746184936649735294266174584216242952741721447712481729883975599231615167239434784884964325495854599161299723545492719788397974782186346313444913954297743518137739223869727236147562615113571273439811142921988583585443689162456335842746758182268179381627656488667491242487244984228841437882973465449618621976793753786156913225963616469882564353643943394423488689714211254422168215671676386628149214764584145563496712841772893625287492916419146623296825127457635997531461189959296359977974477543142551365474423783366522523522455588611926526351826686475843435353842642487698486949326739779126373319966561375371187756826128363899215913135323997817315241431129391863151636961292146398283399289924458415776635136619838484341842164391227642982321598816146661311944894742371763239762535656968974891211854641167439371465765354334451874339118626961359976883333868565459238496222187694294465516635926521537591876741758562854162139441762937741677471252193253162792487364142162711114331769614167587777811688393976821424168917356745588481648944823231871135578782184689213971149786282391576155579946899226685394778386525926913595895336326111431822449286535878515655829582135213513729435422534391844644867374128223187829674721313122485114553116295256664624757417391589258339984531982858124586925174277976859156436495191127557984992765562232919834441625698441843744958581149235412575316529753798641676288748556121665996973563216849724281844669226461175753773328856594175786652898473949719837749156645695788634247378829578258799117488715433273881591442738661113439225282885141592828956358762117652446843128835192953568239225351873231941171162115368516775915821837957992725241531188274111486245276278868572482472623637914438353967544778184262447264586671149283128366927738689945977118531369451235521653383937575126513273181183739191983355842235912651691617151945696329842314122673589746956416346798145262652328232638685111345331784175999667375757773137183459464243277415566456154493127626754442587217745946538368458366332959687285445833642469438984384757327496129824787817236156941911373482243724671436435627297858128692384355187285815757151183958137356593919341126319939764671539359929242583143923529761776311488171312864157233229536624516953696251477691161268848136654926532266839284138925415511986198397791997932497129929214847314894968748783659365251535267591554263334838361723348863295276672896139369797693442437154213288837968434319337854763735367578757172657398182422246398796582313617767336616789714335172996363157565593719575328868116788294628818269448362621295159369762361397789165658987321616856774356262133122729399115644398314618359793229717294761482354734666586481112759377218247163455751278767347969981317284843739762652687539445587618844292359199239623173594667378194513459745389569514593531573792417361454172165984653524959512475885777366424151975114545921183322237146518969952293484512197936668574231642476349423191746974941533796247172944548825987739572498993443853247589822617652954667186946381666847921342227717468619845254435835222391986763314156181725152338253927158995917533414366514382951545644146627981832927362511988224685487359134757833527942912139141949349274259616318336366968364943533825187323515341335666118781448979361526915792664353192212979263427332341931933475752533972659752872367363327166675736143671661997959674738656683311892432126476646914499337497319513488663341184219122455624371135735747869199542682563146527133765343664859881342926661416575926436365813829174952664842894636371288269212613248472237167118651543174357272534399927369412533567234134371171638955239221962635336216571539171355738939222192426244416986368866711753756989798759556527451646673731841589687547642247237848642618531339238559644175139889995554622611888143127875125766557759217371272216588635722279667435425282487537111866621684852147563767457423232272938212938484184717414432287117365824466118922748799137113315744379263847451247944226912623645591569952412565147685339118161389262921226286855778663838674277332777412438447883475923397968376716198251221177323317187526927263358296243251429183676917984211165364232424967955231697436586194658864188267262356563564759437869421134537888139782982866783465785928661215613641246218391489367266262234411394961416471814949991466664739378999293778563369319547137887753322439875351744162548489854315322541727522768247775845539954821114694381486412881753715962211244683163225343247321571653819197763623498638743868432237975165111147332838259794827931692253782186426581241923748942621776561654519322374763842843563128447723428294498866723658827151452573489464536655246613339735545281988537317622716218643565888268299329463629674639681635613327754491121639342241271683442372913542155831583485647466457978555685193273129436682469188852487552632742613854923337239568717233635325755621825657268477188696447617899734695963947557385556249877413935479831677295281368324634444943421585427483817149965141829299534395697118581328335172457247952537626122514155519499836154322135962213596694196522582223575555494319419949154667252216759439752879556364331533526433612433594558261626416852569984275423535449332773431532514435161163488489642944229111326544978285811675445623681465829165839639227995122745573567193684236691316695922659637799678347575976857919794144935829166655659233873349624276194591251521148649468958666382891228164452738924244837322394469136732299988741427625883338671772425647633614487716673112285119589755715159586121829268173714433496514848355967954241139461245753144524133188373924166928723675934599854743583662223678551962219214227868358147679587792458646875511415929521656572689911796396676531994324516798516371427473433533811454332818161383925687679846512284742713325251688144615441219567199593142182346529171161398128473547912913942181961731373153925564378176174477739164379582636748615136211355141225144616616324481212951575835746263762844429143726415533523951747927325846429145151517467729945632423357362848855834957227751268776153369487432662315952198284235395337759494337377694572977179698644488723476423377398636911521874632594311386643686118413364235444118588857435823145678926415276258311578892551144286849521939476593611737296352639219525277246751861294149149173763681969681595354384683212524676625212596994143777281471464357362196639129377546392129144192484569598371322992571141384516293414633172433189425562117272225641156159912959715446992958929626321769669487159228866551146349111469137828877545147669425383618191656735975869366599216491497371347128921841692432563552336788519392579345915311713523871234178613975316835686722375169538556314273147978322632915421742212652672218829688289244227927965913661382414217327952813313943449181367124597889225941893537176458611433178544918625188632887612874693956166174249616133345178639644423784835392875559116986335548893484328431214512116431317295579894994366825149816253411446621115683298385232166273974752129246969135116323117954391829523528252193841314975583824749918847425555945153885538765174383197169113169577515248994749752264448398175176743925474484561675563549282615822489786548856292276931721427361845674486677915169619611753646176191736517612589515161529441255961599141242935138587316523738917991527359459554374168555966379227972673516116513879991681934977561432477525223975246729456727723644634393994245614993896593669894997372699939358611128126946569823192741995348192875867816417989224697481355174981963727656845537313649222652132551291135817624482139457859356632688267516763473361673722913545847679482555588453473155852695873495992796665444348845814574755584231466644713121745271774954141181195888595248899714636473363648345151929296162174595752919563573467632168921658625433857835116992858392163169461724842727742723274823427381393352683632248713314535851365477339329655158333653623233967324974396457539295987219214485615239922234368368215534957243353848142326541621847566697245843691689251525286826925331742298865889415514833466968912855968799228441735836181275476829851168848597724978125682111637279613462688754658546182863383412374118781835245424227219748154177495285617131855941995976384518463386888329448678315938739574412464281751773414742385237546732884859294717859961775358472812379722613231784563682391299797626473455791526496568134961268381742562581111718758522633366275782488189829865514528778373971651644724698137863213731391787273824255369687468776855989562865662227213126576282451379997337221487446223359132967834235316478954134248464914451541655829261989433257355728656235182845684389311976132426717232452814234189762443197375459536423147182581586633779916426392558668534522535815443255526446853382299518622569161987552643559867689813226555238965813643195425891676892268658523751532444369683448715613674261814675778681716316764334778454594254167543993872989211373876744822989546966933755221755175836772314894528784474966251352976271527816262626341939761727276795521964266384389321838288315246366653176817282399881472222491385932119219481453664859417128646219954913544671996492852779838334358217157489165759617412566151354536868993233677219638136785139519951249849565224415349527881686797314689871999618846362535447639693559452525125645958612326952797673521984666336384892839264489411648756543143742292991847619255529125264212874725753339961256658472993324962332472686612615719888343262562234465856681743339766636256492927664472149633885279113742677514288499785142413323155597571463815115615859864564119785367428163783316691324925674767278362978981373139952877312176965123729276342629138863832725397243683684669446155847848373892747578523944253546311383134643182823978747311219447581695323148717562419967359176455189875296441198617232421253243266535194444927985531293371731254493632816256769915123147984414264143571184122353788878831822838586947332188525833855591943966543393288543742836685311686571897533136885825292698794557187551616248289273423944624546526756881574788434847218698936519119511125351773853989195388764677176894668719489274546778192686623572346546796446856357482355844933954239319564591743698747826253911539562217779478411671372278958599313262441546611621857769561459723795858698466768464324694232783148349176261648774483467727989457796821193872536872671269784917882824386348384668545391341938145457378723274473316385224618349958741324329676626236888822487754747641845152373729244569151769223246172851194423727847894111912253683716626826273638713195721242325132992834682312158785681519113299494685518392646921973414972283138275315747231537984842146721723733161131712333286479832872431741968255968839748513218298229122167849655215838627377965596631571131529776746877299642462511442319188221384283462551713183339975926862596539288176633744866771556784345121767811521798862945134339354433812647421592959927118382197524728241499279988221661553565646817362735629382113971871431296132815939814997816182373429145741254132618323797395527425853338488772448111387162389198889223235856362151291763486728813584272128285342453735999282281288312912374126724586725741576825247471192828536564123724159219273668431612911793988193431482664161431135513116483141218418735651178331244653172634444725123648651542235966111631461595217954389811528876141184574398511251353922499571125735156746652229423346473435657255278613829675137246244951326177128336274861915116445282793956312658517813594543552314878276343637822244666188483358614848239731236298263341612715741534593325761217155523973229711416111239337892537652729677284339271112715795148691984899835954457423565299528174259125685717152254357399727111562753848386482273381345467549295548678431596668432685548519592767733838715155114711143997923721199539594281761972922821442282933485256379647945562795398767682838838338372168671884965318549527742136365874333174718121965271779657898399544791955391374288944756445668377248731881331354819853818829525585991957946349174982269965263626557255472379718413721822972638994556413549362843451319491598631615366594971457293758721482265483819632798545644544873254794869419287594176565625956155493321999365815914578238147842396335662352126884799833773192642595388437235799785386159472337669936815557728167824581842321493655277987185224364988398356715195668539565314863295168569639355551683629234888291873478864176751166662891584213429915266356781893331995364941551238599821725725271812616832964115737662441615933245724869586231561262986179875694585648562433142729517518316291697335998122175656765223265225178482556617789491372624255244388163289917632495938869535966551331932462437126437467334185611564143231571747687156351752511784611388242533993713461146288254233135471579772317745416553919264429463525465823319231528188516786365837383241656495569813178975611834657125841124687633212398436321278398816455894946441245871556116146337663819554417126767969239776814942937547677662533816934915954126339266665319294269616888943889147715642252933966275226363456477458641268316262378298817325241669589426542296799972211249165367462831698548218637938244755411928164224729762438864326411694334831557552188652812813894167292268433198557993221283782283364376124312575677292564485687148444448515472341445931672763155824377198474167251834744573619116811351388272472175858742938347378797899358111433789627229232636272326162317667524889716674563378483841988455528394531888159751543426263282724121181695854264368177541559454647396933271899384951331288523738854587563914172346614525316118274277894962891823968922664765411576587631194881375864833536196731665147928991938153617279556599888626263315549566625394613394111811525524172254546837496712379411574754266748176895157247462268465845294874573526436892223485167915815289794148614141696792677314592726189228143178239171982265981196318544162347213377398177845732963596286277849596324662831741999315853523345393796979951622415524661898181231175769865748376197396472571284426239853912786313147477973798723984279241136832365529513737949811189331273499372447234278411233553612175672183648851714787542676175445329638261563335429935746825876814765627623569624391856123176748171741951772364547143499162517935524389214727229916287636922646224659614418636276234772642148887384428967674313319551183715723258693396495363238384926849244163119893374894547742462586496179987469476816951742111579625177119765783414314469291241332849612335797381324277211615961417313114153673822553699124983391546621377586597687679236438548929752938821382226371915469977872759785949324341162149988857871839332764422416712681995793594176111478944268873411441155913695422585583139665725849157293631524549285896621698561372321774232954419898124898464622193286218524521518179474662754388856626968194755137752328736873463383125912469886221144519943653854673624241988228999234951728769499486471188253622124736269862943383394471834715694113883437511627191664784183662184228321621443927687546651536716828642319947526982422748196978449524955224864756878731142212352261642481172363124179821963358826444819591426869833278661236845958392464684421959247392992186222285813457263924375888811384445666616942287896474262442554512536595244921879373166787228135951546373329843876426737633733486591414753546766656545731881151431525993264175463994155644579836478492858644825875683645231754922317417164164299494426276291816317477927135326893653842823621111635158928513929171622614831343394438548421689312731515955156352814554119619553673131994383112477815293974895753942462937375835475226174285224491512939749882512626363974658172258874926468699183852342331664893649112378977582541859518248934292129259574397265234816189911836327458969135284756251996267932628427769569572444878936146922662143649933765987217277697517225114862687363822955867976424265951689185165343186732492193673263464169499325362756552928425758171967634834235171493782463941222212717698116758274642943948778229787694853153411477722775351578494364653691425448448646599714383828273664489163351999448774138272569445989744226129669427368244523832595755726154491293118671445856869416771662837918626394968514631224979464325432515223858422118984232515725674641445736713456745776858537382533295585793121136559751648193216912492121641862551456295679435751651734647146587532637593382311516827734954961318615343217533196186534915812161154587362844979421376511839658219978334772352868378412759515736943866869431864777268429172151146455377628231824744385897146511459685823813893515633837364788649375716489972125626111613819724941827222224517436835349572536518924345468712237862317938942339672842524875519277628762339655427843616151938167253952928347144875851459967713999926838931915282749552166111253141455597863266625171745621673725582814235377138947559998226432332288314241883378938235686981481956623316744526293286372987313394915176466565317148813417823927565828871559696364813845242817512889943476199253593173312727851368876395255994933229966347258533734116723951223972179577439273218633224639275844762447143814811617285633772511358125448521153835179948312112656276939358371881732484754134414774581515911661613613579529191191275178632422958546291358527945891631947619815468673823918336314644619518298199118637388283127399362151446158139264923528296662411169948972953482414744613229143663424538218328845984527194331394376359515639821432722554127434854314298884649321618966698684191589165128248224512134438196483586563363943567312399617822861291675221881557868684815452864215387243314639311613712241421676665339664897627888231342854557319962153691657731496624681843455436119657147743558392583445974941352267161212132436936175999387316173817312997419283152333537848586926739999846617419757363781592852235315112239821892424349148688759447536681297891324116382144689533436211952615988488181328151887566512691621415359138131988533487683819488746447443178276951125854355692918455247215587752147826425353227516695345191619158227952458599723568329254524822951667328474384413973522137182361515222638916817167635921311252386618548177283244816399636872813126141943724949553141952549425281747353651521344631763565365873574482686244916791536454927335575197233738144472643249819721142551878158188389351314788749274116262423872345298136724742669776819345769738545122458528296439118228412553921252482673365832218613642641218354469638772719139696845166595764767171562911848823242391587229274325321339464257432536212153958592921474276271329219377588191637378395763617651976624119244262552954951368631621537497374568579394117521896392613749166833846684121738989861362914676297617332272827733642613989111773821175692996392575575719767833461672582242385394595867716611365391486212111117763471155614741482699782597181517197265629585679792182922523267528372755525226499616845391272136856375374667318884354736752146256233523532727132132943142679555653248231866814751824542414398362224941275472381779612925317742916984761216643811124997725911873959268728959345597258119331685283796624419725848856164524325531737854689551199782274622971427521385243259277549739225242746258693721816341457383155129683923378746372766519323912956999653116964465972851924226886729855171932494818534861254969245856637575968448413565221864754422724332493513948264814627249365386388823151832346538843182126862234792914478549392853737294284156116253912675644212213957747335562463344577468942959128237293593472314818858462349991223932239842475385238849729718539153944234273188567344939324663185125142837346277594266954197979711191349536496493221571786315155775845928632848165297797484163331992466635113822931764284683711129633462628614336274861155974471289493889135284887845676539137473752523416732645463168288396616454818534677345962163846275199146232943185467182684886557461864124263198916167656121316524988783252399435992495332382875133538176828297762314451517244683287857168237137762679942698787662139281256123169619574418636857725881829644752427339255153499366517349113291677486632719856376377779576813943274953358721929795772651431385397918732413418918246981215782332145682333425519547234618675118948493638535878285689144212481484695328439214539947991522619636763946693734249222747241231781826545158447145847545188554333147123284889682235913784464519139216692383787195432411729384625894219839417898226759419187366962477937666847674177389584522662382412236292989417442851222925695725983988145252367723121853121319986261451645252566538121367397553197996239671549182213925467661375937991438975328453247789522268125184875132832737224543522883252556544342346794973661319451444859468948332891756348254481642953511219181539827179568966214224383527531341168897694566145572947319796884144748727574184523392643766894735551983582417111671152874267536376735519537642164332333372157553548876891323563414861487439131851162771373239536651553466659728391935737794359156251914213646137114922653419546939685452818527984371791196939648758136998913621112498172135412279511314237566284135358218217383731413481996555281272478741464362485496789666938926979288864548475116855754297227431586612729251562639928623451516433742387572215892985621161233283446481926757748635753887784811964733358613719132256843423357967513323816198233174847416286793249133817524653928778295215765295968281474883662528234521427958332529115221639237986214759754525819412875912595169718593141426123221288827171478221523941562337353588589164653877238627775253265164176482361534354638872138674341535882333542498815166445752786925333696124919243788772336391419946654813593535495864685121826627182774111218874223972392747152548839523835656844494215853715342225419966865865927949338961519251357299888825892556326636465175466843193129291814512998418312151595379434489921148734484271785389413929191124464878383443822145732811145255179627933134555152646812941228368782869382244592689597982184212968625416371798231586911597481464252329949967834836812513873289679322233332797218158519593943759118646517571122844768922849713316816826716316395466982625923413326517414935845344267899313166523683947296545142711546979997153537912471819228917278522949284351711812229258696684835763137793371155986557655923944364428139318549835617859982213346488565363417814162625884833819485142843522178267824129824378133736267383914815234935472399253157217584936323628187887924713836139182166687693197434862852657981665981717185267126548639863419287767236346877636579458622224133978251833133562418944715176955969449741835224534747775197621185586676342377535172221827736467471857833291524132487246758837148725435343724944944792121964139169259836225328491745366464871629186176177636614528863412847194345533311777255263236416923917393879199623312128357117723139857873638245354568584963487439233169815142516342512388369938265654278499955929849952211624116484345795624845532542916269311356665862511451762398343735647591395437671954832973675861373348459625688685432385958549937414412895367875956315319495742747374136541798445838549944921152963653573217317955525556124813241268392976745785268773697344461571911875268953128342563391613273633417351576841843314329926138695175147553285284385142863366779744126576579233645478169298473321782155684638135219723336492692166234784166433661289442253385334119317816213233471938195885657849492831392333731634647296389349593371418779592155949616648915478673571953315531796494772685661186272178849911771225528756262115317751917532913438155321178758272249559146979433745325175475295863869335273591979385113332983621724284625865345513844862613921652113315967784177839177313522295651243395539632287998629248465127582841545543596919187324189534518872638626871265385542455383167685594723128613184539784622464973834288861685921111716398655244538473367163647567652286198183322331591835572491681253968254946849698493635715568471844361365589249829829369891243619132234658232629121293743458732512412319183647441153361743753494293451879481962691241565438587399823762711543213492344844499352428875991653331743866354155623873119254283354842346216847141472565489426431677519825986392268948655845427877521982679583242369679845226626471228653721564628784893829453725641195582564833494825325853253151281747519517222481353913185367526788378678226524412855292179489849197374237911723414329855886163649511864272868149561222987182194587834725391444218225871835159552295946525259234122515224253736154186123782672244927371927432123176812652712266644172511481546388337213798594712176212777772779637228369283894292696789317374989253546371788814197447699257262188762418118617734218847528583661334744363775777115967974197977726115296163326123412744167657733358355353797281229344628188762693535834184397459921581342673795186388373182867464173213225721313538299548669478823836126424113748913884296434791633543651836595355858445981963642779121684744817897594158522672384158413249427819167729456386285523558861143232253539212222765524339324981859264288581114153436363199755294828321227227164929411241886689686956784292129297918245475133126117717163754343224281758832743886588345533144452526779989917135283734483271122235797428628339163798238897355324627298875448985589679526198113157122379548486581249743485442213813276792748395624316157479832875986632984753847928629759584872758631264257271227974993343129262944282133225586968768858275224171568986981992655742578516993541552356684252942161481533351693999116936149123582392572235997283845555885483634462243671257347127147836344154274779258882496463912253555517116367927646618587652729162973939357664977163583522435112616612537959687145939189216523748816125725955126949355332652429824973996586859862373535344136551439135421462475397975679699632433598641757667352922675236115649781852727847226622474955344317712987693378244727413241491288132913593339458219384957226959342468692751234266784582423727125743948697643328461793739221955352685166415363596454958595479826341864575795452585481577493435529757491348463882258297166874427238852296566363873919475954933714171113433662787688924824491738621172668319332471295531954973638717241292912339147762734766624764657575555471348854327859786728115864297437866368944953522966872496416939583968667451657682638872647626794794316817333225847932833733796835745541718557816967855264432952352545661947275539565845858781552696312442913738199142257463494496724454796859992683182573691562727196136927642737971884228778327297341497837684416651624439967127342579185557153262566329722277452696756791287715572618745822641217455374993717853542498918955762746282772819941595981139155837389579185438875633325359325259821276633575899232456856714297922785755327678942783365323738113262634176851151893456326445153838985459351577779418297475678763661134569138696427324384174594913114371531372128449339643414664816863153594964585729423118111624353471768719737831113141323674178928978621899582185842615965657466621179624864376364388281519855338418818532158127944811183656417778565837365121922928826962251699747662458734414134719449325513431131261413187644626686758167722324582132866678594151494191331783124972122943154614153161367245323477244558121456662973279432465854547492129688763682751589147867733988217542984434926648569248163749936738939752863973631275951555274865972712191532326191664267932183178114118213116722433352429432319234148845621645547518188128214498941154381361688392123684862429566269876325588516441642581781329729148783521955822976526939199214737876437728114714688598921818834785924469211434991765874283332736986617589664378127995489191188265336823387117964615517736527752981368846738682267287863512383159625426366324482827843685527398335379972287315623229821118271427625923399114272257495141773851994718117228796162264747318396289216345294826963372335791697244127361339742558499345117634929417189571654299976422947146529247356338885138272585579834173314852389817123748883293491992984725941735417515862684439934257893566323578617161338684283692781614164478892375783142717692685355122366279663991257876925819436828433917452488294491271926248458921713474368711662461559333361946412984549586732255152444761611752155777962764438315916722356323399583517295326848917852487236399565119445323821256445257652783633375453191572245771413867877474313473436686226614149818786474738259175371729717138158892587778836166146394595348739285673817715244243855673588483521229973291543568691322696861925185878669465461483216114383833317672645554769517597823811868814683488526736485976219751439367966468537914195961337565642414466129493355259818754987432912582435824331231771522944583186625519131639977613776971714169379159992172181697632549953191795937668711431584334472836346511211165285642415475218341453444549177379435649873123157164833842567521349133837197626855817868521375839887845279169637898478745652152664928433464119575815624894312172594473131171695383227467385252238835858476115893381578774848545469479781299222281222368831472138939247532474164554119571613832247529953451342556896121984131338451373282169564379527245178136247925164142163669853343851669648244536656264855493311747263565319588398141393718987143561593611893212156515681549369374752859343925966876228586298225112954538765652572624517297534786359172741895943471646781171358559929388538795379425341916346341488764377543125425465863456438127536629945922339153169227279645451641542558414544276567169761443434625536186697716349261479126231952822127442515821699141791579726285644114226134867213487136213455772863874785583642763647324315813382117493327315383179169628455114414741564985639928798265535413141393956317569692242842467349322388638355418963874122683359787423531438754423878113167693183272484486276252377681593195997382611994232986877561974175725289371914671258436462296148451744389148364829716157924954421342811919656245151474525144529121436391559752344547552439464845765237924363458736519529679926824454651369448667868483236444542961715893225787717226777357325491782727569182359853872653212143469526755686281744275266653952935929157841871349943264685253578486887997955277222453317625492468476199914315844991519288578181881838742859842826211648215634432833795989272672114863578299399718182799251413979812751182686152563631231216772495596494752655514171552435322931831671578198437259181456432363151277481765677352788336199733736998493741461335673513525677381323255915422477616115384885383989269311754953171282499117387957248742567997835327244291126525441538841719847885878545533485577177235756496181654281917623427239932949144765768558193426424737567342115321311136996715986315299794323632581917388361393472561548242853433196444874236556614282664372351892285568115577553595879952171931578262256814238774114413413848936812513331397465521976645124478777547876543274213245493467816656129461444361163111696245455215675616191562548547195537213538354834232128387532422912476882853888839947133263516826534228451858372169651533164442224274899937546452412975853555952555221768274786564787491838982841798868933971882729248976567891574471218293454212329486146522874366245485993977793296734492553371461358778327239583576845298876124162737938381865326376882312114538598218789326182224252751787216245254261753172122269892988378885279876691192182136344884419678219969173352118332594525872876274223795189617654796897247394169513123578442856644382173499543699474842261177275116799686233429459436461988278787216131645144433788889937511269953822982387325112633187117521496225567375464151431545816164421432545235825588571519876784624342936569599125295334659359968775925115622113639312264618337511472813332573834973876263537284512663451982558629389715481174774932493872559524293517152919378183211424393334387699373528777292363441724443161122589675479513551849254563132276199647637314786686938129288188399764496822674426994554653942376449116331467933698453662399127972352683623484438947892596769931591848172171295362877137749142749152529871453853822394574413115424933288794347457452197246238666965416811253792394453367485968249824154136651834149873156246741134915232832689216788596579924457618153143435874325462758522989482363363556785218622813178817137245557558341297649537323138789177389923635349353564381454941231129185719761811339646588754575354712635755339267192943624659369722646143971847519777191857953513512381169992969127142451571754891742732844231455711749315221837286373735468311949716992722227771256342347957954956392131121667878362292119849693613638279248813493864121714314918177361511984344247585571423439585714391339656928172318294135439347113355676873529353632841135146293139635974478126611289613535812973757616163121216565697773923844354779727412568547813689287799985123163355658888276774468973124272793329519383533392264156915842369846284148531965774511582611611388322678343255195259787187159882681429413215112831568336165923311454765716683414996126753241266895567346598627137184793477358754999135493787829394936437375335485125815143945741879938731161283569578583432144587146244512319831638845672238932734936276143273291814683891419111439396626821555631583367577271369545376234127563363191776968352683184915694394689433173325861664169657976359323378488238368174635265438596787267211427144848277398111719712719757492826681466873214992558391418243597517941939599639892191881656861382387362442997429193439322658681592463918145868445285166268358756127233988262752747126182162661938862568867255649431291447118994772544471282531317678944979359963318328514598115182995558753719148647284391546687264842671954933754329247646331162594144223459558699332152391671385256827157457954847186761769745611659693758671666993156572282782498892349761553821664672214176812443262267494551782732215992528168682199839348192592396421143125458448236792568984766245678867327925629766456441363419521158475943312375514933485362121755628388815676311995327617237675731925422675367611665775965315323239349822726115766575938588155234729227616994162182628776414787624512346765672759426193469965737257738658742297938827733912717752323918343841239443388554543331912483873657462569973856545768488331761317629598388876798331231344793625545864276215322282714831422742753771269364967327782314373662959246186786974853546923391798211312163936146617398943821756771744166778293425333623412483661427572618787523258239262144572129191392631143468393129145883526117378391183537474418119825211342343982449425742118144197885992126971828174331965634747434443287378697775246431865916865921217171758974965686678841416131378445595749363781311498733421346125691783596186861712867519919834515725414576447127499679111298611687323829645663795711992673792986791231291888199669826178957618319265948119858797295615296981131332481246416143316931557442637698319989868177782276739226763552867778451334283145924213571667875488254945279825493377854833363274538587567759112132435419232975452385787333468867162174334459371235172542955512187362993359163986133848931943378389414962637646218777757543444517952356279835179315195622119432735733186586112663822425245341199178363393216371759782942568647155826513816443561489441911946654797531116924825376743123399457643145281311725763812397156983265662926513262255362764254365483374926779296743634858971399273359437156521649225129625842142412333889639398469998358365238165558656491421753658392718918416224865974747459339627855163188138395792448749616242656874137645286145342567724223882915113615359896414722733164831266844198245117863731825811916836893167266857285923663516629671261812494435336121537561576245527642141932359963391449313476142921653271429723862731121119852971635874314763536384612618661371632467142792226265614772384575538238626466445134614636382246853264444716569938663744324773132985117462345685436558445422448453215659264668343873132144746845424453375893226921357244956972553983392415547217795195429322461465194985822514697491645525485358632264268281372118172218817763759211187238565981745441529799529152194191151326615878642818481144648247815798616752122926996942255227691472715624312883735699172367189142259143273281946584839228482338736725215216482821677525444466475361251926798333633241715615687825862835456972948286277311299672558714997487745178375444382697488361326272528955428773545428314465285172998554268912497594656788333674848418297719341151427217871151576551541648137729191746972426751569876782117229982828193342627379123444116357375123254984912523986492619345568788321188424783814835783477756721919641457693115464557363481862324323132689346362369655863669793688411244446423385214136275219642811114828288981384441535983238832966511599542413831637713154597598313334583583271697912481679413314793517387544469432173238241782777337241851396457233723234173426483516785934714794233856419392132885724323197174363534242716486615831311324682892587443155539375119629943458919464845464263417497287632525692141266181118316294799136294692696785376281229172341924319755569417352375261882932227836939241727175557139877238124235169833497622142134853842558628252334536123125822894632345238828314953466517787962467176226399838286532595983654232391779435747386821647966523274162726442933419343923391961199178376913265163787622499699715312644429867225531276946461157157812124329131637244563562192219883351649118871256861718499693726297769812293935233373993413151771825112792767917218826553679271772335958496953311284933245265223371914414386156713332185913574513622613169243882254936629896794923134688975382659975147994665361312624167166137252244474915955184215474296778674182912761376211229697226549581265499169286641292659115269255831655125861864498258848784318215212949179833718581199514556117682716358592233834149949437346818426578727575453363815182352344215367191884958659246535879812148331645212581683218282261582876735681315568882739716678849852427843836655231181857314756254384985153357962491689632277643543552964314573333537638332516445683221251924137734956573679555754794369961865214465452784431227165512452858738159529891422124413122917731144962891335391638648512864962853771429473639946313764143175973542964666435517518527136433861829181369856955912975631566255716565711313666545479521296941841156188111488959594543863612414156477483438153959182813779542889377992766117572643161541429571114937745497482291784335932455433757477244296923253836298498781914148572962724532332358184432292346495441481495163328839459621792389573177711775553295636194924639669365668841865787426496524641172818713843441336181332328694216623133462584525235523939199354998955989225813338624364218186354135164235285398837644953853631285766599382645294791957764972329791717841326114146721676584778847253392269338221873476549641461265127319497347419583374417733524389913396981429671896431534718343355151311152356677734577245791475771155923614245978641786537322756679859928133197768635818924218638771874476721244163716814763582634585163783662118312153366793351483337996967527783164327139144467948192133382873357738386464858891652682734249862462514451995995857731669899914767449497637919423913626671591633691672427878972696614245454949696274481188595274699255431131188431376876616742822456219224342411521772814641944668531848129718534531658364233559341131135944912794846222621142562837316681941916217255132727738772389743284841661787558891674525225639237943184951832357456229656582515283733148423592874123192724632415911821818143157629947714844492526118935646674732288242798262454995157785116734554954639645113699357368546786684782426822588569966576349311685663469989236731269911432887713266217967329311757667941338393111118958218588981466341659128636632342381112161919434657244793143794184133915311439291929117189539449722192875259627221335453231183129493929882424721121665186699556215491744898144937755936561243314917727238228349361849582372832775534626228325172363872263449782971727334461538659671213138324319992453437843297716724389438886813457417227444138353481632633894585997629889196753395244246443569458884342345328565225928282451714259651725717527282336547279376586641751429954322659289722449464795671466292322557366926877193541468534185144861156672228757786152238496319816287451889966832768341724461817685577531748231851163743338753444423646729433995757286189421221327218827644186234763124522215897394217676575194177275228175346847786252126239442759257562136194758734628859663255669549635697827135341246185383422976716646491436257364792295311222118345953291123615851952152991826538515129157149522612577852526587768425166975213399788218258361354376117256489268173284417671385854383733267817847629382441589346161951294832233889886532965292791351563526831783179356727425521712928831384672613334243498386757895297273261968723258232885572696611995551439621248562387224336232874389846364341884272924681753643513265155696342123561326731211432397333892454563225398683417986551832247141815187944432719386212683361817346939227446944821488557529718716864226591512555882416163397624316384932625977355447981518276278373164442881833617871681512337894195763771692858536489391391621763843549136354882851353798376484476731188934148244864458679695972751886185965949169235358743533742675513961134477936672544928842628192356489737373716131536622128312671815259457899464698186799722366541722271419394285211242622662339282446262696935943135274744365541229536228731824313568179738849581282572171233272373981187561454221524797674995496688242339917452158374551942736387712344626186429291542565182913368151951258192661236297865161343514311422629465245814251556866697833392346868412154227365963954461662272285943878984939969436274244213622231952448543155315253436159219346443847478966783559344232262731423464368992791761284714974857949276113842527386322293971133532615285362169288817196249149225247327422416992955577117617839115444839843263621579414716815361517131467434152496626564577574214862491744443253433833281318215534892594351643789991621174291125325529668794288726941758763949374343721547889949329911416882582768675175853838962186415834471857925789841698393278592676978521827212136624162879394922843613367333956682384222863446942335613211797249779192183147718188832687267575196121999472273735757323651883181319273439839281311853222672693256316684517633492918757154222947776898323582951747461558555746993379193281576136253394344668832122282721331334528863389214351269813833141178734517853697613179894626121182737489437378943655454564958493627371364485796311145251221243474631528111684487979477919571874164933149326332182613662548867999136265328123883357542336576321211299163963922733156497654251981217513134412436487178886997333965878198927159411334663256283252589367461458926579728618653752374625868455458769718272261529513189421162632655432276841939567184153355634489312186552929818139673822717367838118256142964876696497632757135472492638152226617963442142466512214435435516798582257896184426959551292567572532647895837522751135673355325817333427448611489655718916289846691825725446532257341174142686739436275367564835496225759961694469195397687549584513154725923187365777618462916619941819844974577643888616855211814493974372636225334773356714562716363818957216577736796373664186526976459138957958169643997129247812992878821667754834765428571333557617974369154949759786368642735853812832233159791192893717578416482241218533676589433228664528614223415236193734228127244746916297326399192836124449225289424116996562362424631752616535753685255884755365598124166131331465878937185693414279256155151299631557128424662474391161144179987659437975296285838521996879756377459832831832914434821345871537686619967699532266988643512498179352336482726537914885115469385357687178843633611913513543136989653359331623891549179942538342866624266353298322779872149263548237815623134673457575666761934566773837482266163128959712275276352863515162436887341336138453116734445328961181215416487131521545933387444961648241888323685412656543366945452848347595411232482852541518125724121136892422129253188773856549663577562996468873462761616512711219967975187943846182529728986192483852731169546126695266535897717576574173956853255511714395351421537487828925513154371532244769349756662138336397143779874236941299952176146528852634527642854718929484499464547289884432498292216193884952693233172351123833123722314192824447771482624298485756421143485221339166488181375837431981622955729124467714843262873462339336641999997844674777726286617317134971533266334351298177961571499176812412494246226811111226619131751564521663792175168944948385543717536133936718286911225992462433157355947938485159618921334276169314629612369119197778178587925587294235415932241514358641489878777873948337264424331134729947653137234989248978555614629738312397237731448611633766139818221348983177246631343376976513393655682833282382583461112219143853719786137156529362164632439299317566183271965734344534649765333361526318492331914523557864736943356539832919719895611543864179182826418167299717977759915328321489635376437368822149189445582378279699844295699184838431186542722845223643611759951445663673319621441192521195468645379852469618778345629923227134393556479412739835268319622637618663586225879958433139271139218786689334339614163529112769697375469537976192321679332835734777671452412857936352258443246636643854391173614268113246146936242776756471364828593714418222212312485376452141553849119445612284557247569768314933796129114579226651932243216794167188497431634568498551477336382421985464121769638232662142418165262537185945935746264979216798369434621759396621111952149233497662975726557598231662463458212274276876116514826259799481459874325166946621164297575568583769951447154375391291491294469818224232712829474581445381362125553489643742485597791442224489191463351631222164453841112621732738431369635227399318587444963532832958235966474527927659775524456595731447736132774196268435563511357138973454887722229439817159865992434135218362153549224413293972832646685751749831526663828118191994973225439826474717768898444626927591491936444289742652682938267722953551196659823752536123436387498311564911313415838748787868622124769432463647299941486311125812312943286151617117427179156316679836365113842968754472314831799811423322784454741772562694387143219445966242739543687772874629262932723659868238545741635389292217286494422927198117783332512391439366336934848684713311836711962426638334271523593584496362972514838822917553714655995828854169598627947538121943227379718842441368857471272662975374861714568641636846499638847179443483939715343823636831838593729224666439988653973549855582494322257116222874528999995446243213717631765653251611317964464274656112564464463287868963314357372779324432539989156444976477422225236774274255927172462138481983563892745583676914845434847957672771613859749784648135741152737622948397931328127659378529839147143893169199492476294233332463278373321267145741875445798817286368227272168697655286559236332412211848812617591387763763156231196694882933182923934977563647669797741316626375628752625981931634479269531251382281184127513948591437485472198932691238641289858818697422576764885769758576912433963553872185346317442737352744993569614154174267484566315332786285388447967944753945648875968645444731616685923358146826476228434279433919247378186116337872766953884578518835595427612673474546821622887622237958129294722882337499888913124524873258371821876193893126975449459184839777876772969591461731583561467262564582277688892728713223116542269633934339998648997217781515441628525863376371579667182178241554135236477477793291493932944453884611725719825352628549227485255542193385438819732957969928647398422748327348764511717543723546949878653617791765432993411229532441487794137952968685645469739188926259828686217786572248529958823164738424856279363313351418252498988293573384952746774456658561249932391354222365197816741166926478694351326262488337154281227317499175126917232456816681157825765418325997666771925366916256989344621643872224361668561196629479269281287727635885875925138461563596766829932721497817168649456854172153473693615383983734797331464152817171876526381543895178514412898262338324226474244268196372671316614783577741385493232354231432188888296554173162689338188582319355157323774978434964349642212698848755742342649795233251253726151255472924451554887566666674229195583165542492764531949368843433822745261418676689159597963521226296655497314899891454484576123315574333398893789337135272425871752624616545345736233715411237468886182198321124115414984961655332745252474543124192331592823993143563984695479942998346782572549491312974336526991665515813322468943181137378481791287489965542218396483981239956327324848924179224258716424599946254525822762237279911257885243456873327124537879397864467591437679441276554685938141188788129763593682672817924673771916824232473454243711115683829762989826853568598535737751689734917414635189412469958246724879111799463637671788495538635658575771116654949917759214871836455371861669993375463769991766495281827445364641825642814895549569524838852827153146188365883718911389314624361489474883361738919937446363327277463547589378442627151396733835135796331519527867239171469999217719694228329348733492416323699616528752112751435124276219762984116361468852318398578527844632812751638412323799859327361471481748352133427853559589885156522971868486546391767594699427251354883392273988311211514535513783513856556366439463587831429412245382497822854167933994323117233891237538818153565839733738883589452851343756311934476983879139733582396728378216385263272518781281758718441442147481984189846846548942928358432238227263249619795143231298457457958811279745385785944431157668578665185326295923185259228432638419175273323335639235827591523511121811638582695337289322927584519619424229643517943784749169566123273481573552852796524369921271712711762164293239131832768133224458654659866878575352124812494147899396189121917126241339291359549165513142178645615911778232412633942889624943417277132631348897866251244746658261876754583924951327851932725369327161236938511524511357112814987971899638614774111985253249157243835845661791159835471594571748871198528129983191688238611151823584111716545397353722164761745855656753325551182439671848922521161336547983245864267399277873679552314334762278392481664173783552466632214735892539317714195957944225624893662522322815311171318516891317132179824977229279849617712996127546371388914566121922279485591843795162811375239587158745198877451131129219571266535444467564574677581181341283212663273291992229935516313759819722224727224435947556978359584229152796851119387653331376733359654251933344197999878415766479125751417614119674584964499898331248411636868784616271951491368636129679695397144311351893768351753247269351789223986549571363473367633821135214366663563452652854377321421831736211854857914463112359428695295344327373251272387471931565833534751765522751359556334411984983263711782387195495747214799723796666768958915597264581367975537782451433514868227657233821331291144436671356515952864319851248575994773528865418186459767189979577196734214918578928356931685629435661972278121581199652155136437448521221782627266334436967537323124719172916295982471616867851572264865345312554682824554527199638319652167727673954154282753193171789173764936427248968583163865848741171371998325772962397285298322652698537247763211344748374645377641395315137732145591955145525885697367929583572262487663387493216711426135843118335558561155778764314738824535466127282124976862161873134465615157611617115318732411513826572764475231455854167511998987751827931237375722962886988184511226432856677324216426332273158162557883931235685636352195718264666634669763795591463353692972119287418796676816347524992442157784753562718711465495377686654226317638522989826711134741146262986815177457163365728717685911349377252167638199164778899775439832539124798789812824246264872956481732628534711824255481848446242813119789832825911531395274582324354967441648555138813221341863292317338863429881549872865937714824668318821326889768722534131926146895239836785351172242959786629557838899462429179734992659111654462463145362289854439222653265939724113844693685215555931558829734347562232921315885212515424635594926739247984286226871627721897174973679971183391291368255324241756735814451927379775284763497744146299724951474861949134849143553598331697422276468473932555583533841883293816853127293919829261473381891172198822957155243934654224949294973374733244477693332867256344218914171489811875329382259457743246723324123953633139257435572837139385223871742457432311238174432335998366176742149912249796134824868173385818778884238327748753876585192155162472131494955753395289338522316474148629722111242747513148423363821566274689241593152787315894114767915581242838215513817252749373669532533633518754293661828513832542825568597445861228657874573425547716168632227669935715712244824376822375836821934722462918564638922348198175193489126313424111553461724493288875714989253194979924343445616938533964312969193849344842129451489165375112349448253591343165144737724917833312788717272525799933797986563982521316464291639753523314553515272955142968442186427232139625498659446193365858723667786175998178777525198922434572479818563832384542149898342295889283572966761813686564714174275579866139534797651975777798859575523764914765663469589859724931376437675599621317769191222242733373285129522641115981888683391397273173236694452459419542453572381953587112619659233142944244161387627133911666121937325866715143434972145388237542295943466183917757465457985548287166256835233884225482136886667917615942573711554521128735827695846862749663366494835736472278152722741891346256921522179145634711335446897758553337217557311154687917455791426322983758281512779375781995713699973199384293875574258284563752435452831429154617448862142813954261914129226649842466247963915232363466251289637546554256471317293168984331176344453268261536895283687439377634691683237948183271853391192196834164221154433641556175852941356392265433197752469499976197132829546996763192736276424542976872262223162514693981696534448296573988323381943338212754634414694525635312465932772192623117472752275251751725919322266524336756552343512725952351249565139599427122924412661325231182714714516163664867158973342644743221972281261126681823391431426717414856419173538881747326611961433277662459982217834669455671692352511273839913485271626797213228886537791281462184441477288314615115668467356492622551193333923667214557551995388399567113733632359518639213822125863399738986724313848947427834963843741962442481315972978634667949263192971252457224523689666341513734626749815461285926178618292856945664375379832813425449383226945337882919381241389955769951278283581347221935415632493563255821538845878362957152927374995335421371342538598858826143612983378519153485736435828339333155399133134984357272235737327358445849748982772198533744838547192715462737269347199271828455522279344642381946484211312499632873756976333882486481368334132765748624972533323926149335491421324652631938344634469118217422319278891775423514919337885323497168945143172495114269271898942296588448545923231353528451224457151529748748196237663446153541585813548417761419553119233168221593587932258398164737229539969385849399516662537266659231846277281939697241162713747325182719971362736841143668323134896622559229687159957285645319144793677284813533447828952677728975327638472821335582714297634964279265837439987969517949686879132842651527348726613137661953147176379876833593727722196493742688754431653693925268733757789288821155621911633598323593238676421577968732633782125184166856941536966327483113175375231271673988124472497727616547599142968886583356344145815125421331632165253473217249468282171536654253412152779742455554623147263698192832247459422573242523273853617621272192918124839278624559976182913889512897689443671499936713453945249196675144972292773218457768218924171397829823761616441214314915138264549246295899425642337961131421399312284428874898527243222853694198584293825542428326578164844174212516284272138592391177512721746864659327459277563882965759215899724992971998865662347554184594293316419467123862472356968332982271785439495586212889882611237218559151432254143514376698314969718133625288452142799648518946465871912875315475636352559628832592563435339981982377323519513195166596819449215356569994324616923462885947998422355375518323247767714376388171741771454627611484119774447922696921312311292112731244495524737613324222366421416455384177466868934542488374225271424459773352476522198351198956329159872616447557978835611592563232546956123785152245572818117972611268177442761724635134892531235894755714875151454778574124816588111924622889917371966316775656435763728123633686911448625121229271645378995928734741786863896418633962823883848336386132939645349195328173557135856367458125348321817523586529688255264427778786778114731286335374296162937643341637257199554618398516662977532214141162943164832133933951553151181247991864887226792922332245973499924914338241582496582984897229376723892461832427162792476351411854245355233839377361218877598428158895932824488925781913249951861224261912757643182833691229345795565133155329364352167115937879844144559618425822161283975128699265438348772638951666477345396735334372829997544229159554915258132172333574349972282648355878647616311977657354353348298121799823796818933757726864661129797464217189484486557989299338219841219117115385373894525358382911844777831138913678813944823386629881645294469852595653647353549875246965341779941462142997679142446413468834912278451445258549245427483919196779981152532992625648722391641313536237784463921268876881517154727725483751843664261516125682278428979992943243796371885432752561137824389814755715111523658396863266199699448131463225546788915836348753649177896755688231581293472991594385826321661786283222447819634137413718684511432491212397812771327911658322764247359173664113284742154439786794511537315793939339516797231335116933969438227567534248952217388138152842875133594647314743611532436799129741923699448794473674349322479516812464533176653783113415417391447865785924418225779784494553911645871131259797696611934117744692256263741336548791599843616828818563167689879348662729535543459572825985315733118897794364338127736674217491193118628145678762599968838756232359327718756686167676655217632173618164724487947914185592853696772213469874129241696925391835287546364713456119111428147243341293332638219167638247623191656376326717412914127594624114323969923681881912181539887494957876321959491595939747331534187856143816611984888944667138157477545754665626494217193697627165482278312656254177896852171352665561117948245454888243213313258156416514523487545486171388734229122925144431336223764567655863163381911789714832413678849375183259727994921161127789398372774137324651529798986758221118764639476351368122899591985448895965289141218343473964976416715221139571518881114541341618762222497884763199569484867817161419334126896285325922648135672727493992314252416531439596426753999713932751745366934463379185158885346563227364918286728131161345873951722887219434826288616117421172235938392553626914434536576158974116753336621653161496276294318355727554145612271253634434683992545296428594186489399363637214365566367286688364744373281264498356777117648312295252949792452763521146541417291181739573217495613216654917951136858191311564627333885834431237658975231238819633728831932133686283585548297125946843766666645424825136635783869865216816378736635699432713723259789757824881794452898714722692466524463117548631245323792121594881424238354627434781974115557357859216123315321315371869259315614721744173854921216518635346821651722145179328123165969622867542751465927546828334343491858643981464524239717291334629793451421611519946499918735185252979161845529749455435144299121283553166386436183656344556174751943391213171211399358148443317738317598452221293238669652879228566238869931229448348694212539946753781358627876973481939517139939514931599924452792371137475255763829563627761326727116635795421924614158646355963654718612343756617532875245249339691227123872465777923898282578795626496598738297125292211519815144223198341696734412146955683399154616843811338152184793524482614584353457762717394889298638957996998325278582763921536139547388854354436196326471734152813829874721189613181339646823966631543536814365733493588467651871216143277347663458552315138946536342856358456833852375267829451118276314377946797114863162572453114132714317171544169616633694733148146532951177268227215333218596977469339197341131759777342636261683251629591593855432541447443579769253717223178224498862856242481758782959418788411157237151986864136334138324419259945448543283671635619497246411635477536319673954824781151136163764795689338728745979135713111222825128938112231816565914276282134154119544573828731229966982619111445314365135911843658633972946775835631329258718375431269865697736951782178367383755612318976121351693398243161559519458717633472588184916214143814497782685148683154788122425256841828494811364884393692273515197988591874485932144623828167629144734416382896622941586828299323123152881823826446314995514313321997216618332432395318982297625455295897617612897162466751752629251751243724691269664716481824218328594996575755541926953515642492228211576994977195745979575116381775297944167379823999762412439218294496685343113555134325411277725736584361537631692969917825187732884516824917223313514475739268569636962153619274343456489158431218682533576211636418552659743249257642316581791679254114358412199291738611522597631927693947551659249212641322766487364192732135371137338285631264191173638168895142254982718847593876746151352153181458426479916663784134816538562393331432813425792934521339163226276948158186694171282553539769799332155441973862916654371731615727875854195497992256333913919784398813253266932965782394952652852461185359116484155873748172215355932713768341552248416944146577269127373891548642512668192687488786422268693558276614996271359854971537151555892271646331691278973298954135459986231377443279952625435473997445464757341366626564167563991748726156175624922589944174271931727548363664764461228461562698144624231852663726872544369193375664288918892566146549256439644228814493422148818822596587855639119315178564543395887928869818428589542165676883652464513942916562891932528521436348895123637724622834651462722617482452344868122876692348675272223847528983616982488691724939811122291787389775594197652164912373819343573581375784411239174929946617466568512124445261944544981786793554742534835865194558147327236326487427681219414811313512445713137446173691114283732832851887121336654755214218325456553799296469699995754612132164294174367947857924684267482294648326113196585842431921873218892946732263937953281438986887894337382415312923827427315547947596422566779931327837575339942363199729831884664179112755264928915252221922775515271994243424274924483941727634881639273893418418493295472581441181542121669626971549267437833354927667843857321877793116985964461569463895383732985321792437129148927873818753498837243115561429847814318594961875958788126639588175256823638335212786481216643118123362277435441152553127757491561339149655118814597572758317715486635732739234121184668124371599799398476855534289641792766244126445381214482937553899597363964478818468824527484585155352984157665352544682811347755942121442665273257545449867392379759376533397874373724912344472132232599266587547188499653872185695612815197655935481128515836823545822532739362738214223925175528381131915732633816159123434647572299186669769976337758494128154734368891348343888765586339669626433636757245426353478184216263635645477286811725859291171131416753877422776791621733377228188996372474115351365392441414188527637671864144728776648758616264181932152613749283521314142562975156547986916362249675714688392862216782389215665776917671786461293484921224279296298895176974317587756794512883697123419687397735918653813226685656575514163966183174829713958311245565731486766376814488493259216597528882249795163735186435666244663732418832734125735121332645683483422472185587975113668258843372649896579845529791993622496232353624534828482181575711972291689266376286524535856816963115311754827237651481447247973145198878621923963193741584676265846493286618953977382224413296537779228938126279211899168429599245191187555241335914567788881669911286388373228917768321277112546352531128765456478461584522595989197849766311313299454852233216495261524392636451957782417179575586197537419293222578731678153585813156939834211418898588741281636922942669249891711141764294221719576792931117413377553988373928422311419544589121578831226651768635545919933322558594412571613457422516115373476698329244123887441982455348682499686656527964413565552492778837266748441796152711131545131926281844138287154386362932382355564355359782567543218461937649172882995886512781429862462471795245644741579572582963424867586365376135968499537825315791558553133174528328729334372236588932544158958136986733887918367354352282768973843492815742313221995741256256227157545893864499415955691858819142762782851866157299439152227792567731819562411637489366264819917362842844524194668962837448851598172593396858284244255245677573815748329596397575277175234723635568499931696149462749835266559135964846764143374333999868592444583244542618727798145252127654541367591456216856788784346812188276613838459394889864944878652235835968489152142823376438221345758631883215554355572276916371272958738653281257857224528794326829196249433626672768237979338183811443696431932939286165726799353233987741425845676255945454853473845954518597744712648462761451793216896348395629211467143136289771285639697762751818915416899626828677627323622976239642776597236738957589413183211739523829873634485842195277838124316726831451973181952187217986114253769659562544642677298127176261441112315738461867741746788138237691175736878461228869588871723113144184739894345492312195567795464439534112625743245933353152981923773657281187632774837149571326843598768881637486333591742396274196943623992945913721938699188438717347547537257568659557397916112184382616273495667432616745898383281761984264223374851386731992937292322558981471393583116296254141287854944828731629121475783223277245547844763954916565631377292596692497313924537465915658764339668625183212396392583673214561768551564393473134755972148488659844658171547639756111988894372985718814335342589584285495398953498599916115892249619816279596931938994197618786696936683118927954944638383967558159864148659653678814697141577532933645365274352649572325774331885199138778764331358167799629565418397793369344442464381876999497991873491679827362632324397574239445816347133242452193693966537483961414621514352544972422245268674435719326183226383849869584686929643216596449737344629345511545493421565636589572661963642776159226658187837223931347293854442538151975934444933294747399296914421684712515774519392677539237869955333552971171542789578121291535786781957196658598773347476823671912754691186824319786797244981995911315343138247858718629619619697486912553254329345278847611891333569366335884394448995548565571617282142742213333431547652568281117853828514269167698247336944417316493566577748527259487763991951913683445656272979159115553434379955293898581428255383389791544586879865728664244842288345565997884655979659351815172343362613677714696155496388752294955274152641217914218393713111285956419724374771999939212365124746861172432446821879898582285337476137295525745389527392771151445294376563513133528381331831119622944873634652528413758214157541824719616386932139539619735795447848997579346782699163953754673493723632781145999671636641445165261765666463369385421179925978383274989398171756769116689714175593429162676862115789822292472124762811911322663115266114279417379911813641168429443172916256495329611266843561944857579994976545444631652294155517257258562747425756286383597132315284663841726644142885342464562112836522798339686814421443355132627746661245676291244568428832931872197677633276863427437888448354363879623212741215155527266553991363673446981318195451688595176232523968989419334459123242165295213733883469138414156772463425976821311423185638679635357114482643474464731955174245674453514454621825636914988267342988979516622631676765832124678477377582886271114651735151113652912215398177745853556983266862859234299571784729314296531559221718153738192775896952487853113417452496485541198259919537531564641243782773381721992182663846441284223632654375127461824162675973973351741469155762634497712657225119149122579722154259574953161812742885866953634518151365932729529147115525555531136876563235533553535344416443299785793611275378956792535724368578775378183658862499398646815156399972939254261266776453467951288687761422967118229712684221518522426671785739977334243538667513141291266467212121786278955274263799371634843265571668185517851113166942613682921122294496968445226467124319311142387332571273387583841659547261388471967415715597365627475196398435422386524663423232184128534716121456772526194612318332455213347959759952581466268166117371915441822986913988445733864873931631636154435169541871519294453771513342426922924592236522634941726732994449586844664292697333739454987733642644755963973584674434847822654498737391725362972769841611953543213971553136221718618587827892633266377745468313737871131345191593669713139887437318659913965817268898473899833357414732887425316292334369725675215779826394423196793896251165375434163922189166127369269321857422977492793194845322276428261738785123392699932655941243117537452662575327431549356218248356372542812376728159296335929814271795441621799473115735243993662817629336965948327285942939257127727679921882447753766298616977157527612577528669712522939972732987636649675313235249611335759651516137715117315126369728174852557886512646141111361685993486567622855189687333567116712893431838418111152545135428693567257842231565941272779976639832731626959646621721124173746693142359553773791679786311656549391763351539472178112682951665572337176667312961573689632127512285945233465833989547627311723814548562243216791474148965156173891511964495245514133224714779444394817198756836663236596158922398583663942342487316562521473567553316484232815858651684375588352787198474285994796432568179399518183976451944555533932553384922197125696553143991352265799322442117418277526944628849148654858475685112453646535861963879724854591594176438635796952331131178798328979615823384961427379256334753561378781263638397239145294956572922248618812371835196269142565638382258892222441823765851623428774151427328222152255819999158599726858258648614621411597647585463515483217675866261747123239341266516923237215832931124821453163845776322244575964475555611593911876715685524857678622466164543777819523115384879847992178128648443726168689463983623798894864363862358181879551354528414478616158624412145168288239426583124829582166215328156379934219471265849782124294232585869743699868661489973814148456536871135645661842498478374161284233732349213453114914185174179463488676924353388462379941321216641451817791427696825217164873565125441944842589543765838373553616316291632357166912952326616622313991268131161129548915145726176443327429468861493482251541269362156151664654212866193442927363113545746482467443399965818222518732439867757455999229351214561613418941121183274624756295257756737277147119127946267568269266297179337173199154491848258813113327418899639436316215897162423167145154528364546893294925974369538774728416582342182212236623365221642923336614664164729355595574249819657555246929797667918262969334429566967773644916417163865466778115343566391122877327537541454719888223648165614464918979678844811918319255655329943299687522211237947765868462223892962448938848414886241917283435178954747228579888265214422582373334139551278475413798987396322235418594356143127338913855761778185923692264991854231796845718671241143728717421192127684883548722337924681436242136258677429374228581213922934624571635664771171127425956672338431612983934633239567394392678294351655791382662348262557492236168137863441949749614816346199225455212132754489338967967642643291884262673261554738115354325938884233459654988611776692411273384365198249539224113796137113758436922666525252653835726691566798654281111149426317241227934473729664338173724218156345836574833465918923687996216354963637615673223362124534833314511747455499124724897776148647279535988961653429674887711191558911537558161422163731638653865937539252212222844389827842292566451515311292589144124166338852917883137459591473634642241967336491822536565652295129838223331285543179118298383247398522535852358272127727782762952747683424974613531459642564366644436653735128111199161522644275925531893174332434737488655538215831145257114212935396735464967725941597225797517364825728146381985226392386172482943891236614254754831913314235948989132315833184256457756299692455626648498529235232435185542616326839127155479592869152268353317975154914955722284959614299179114448552727144946494286677586237173842927487414846981387683741367764111112174186466795279886845451184571351595682648611322533592276328923776497863934585537259376226247945555913896425295893244385541842398998598699353666669284212697936925529892347924119365664776455354523416486236562589719952723563645492369755411261941345832324272148651854524918352925328172197439234664176531483129344798943313561136123386617788228541151365648565817575817894322627213644299155969243421587699265317341718798415253976518942347354992424587123282398541871642833159515521877666492628599695973476148245235978999913926557845458976398127599667267538832915171934135433434849942824318731461146353292121547154448638162864144125858253737438855772731262219392285141721458118639298711584758178138931348966536955163862677521533555263983525947544999155744581172149337895467573791632488544518752129439464229661429698217947841711115867183562617177533929161846578946227942956658672866651315979215525355799165483845973471185786377281935542344176572214127366182216189535352923379626216792828226814465879285241324212381112742797724252998398445297954281365991495826764848684132278773865242421756962546498159525874761739222796644936111475894781376276828658126972328216332533858286467519828275182469931685474854335971924144113151338371131196526456656776172471467152747726112218973942418411754914295115298955284944268615621715118476155226982476693436773224563393173664849431299844147264487453238681411937119651915157515695414591388157235357481531712761836417244534927565941135247257853238328448948396981141243282871362643332898229556984155699133525433392915143311868972687426591235745189579974433845591757768744162636285619792824649752576697782222826154992225338941951233841171144522732828933136461193558111141152336139961673625922366913449976471921198552672289634422346799168997856577974515599691454711388628434455853839666622265567129767852596764234254429134219939837925628946814393743162529142762137724834978753173412495898646335325645554579849575273157543163785965273815854394559835894252615539227639266175874564197442465915397958626262353264763164781958451671132252573126818284561965666949837176671786119566677321916543192325935641858624862893588363571734916115941771896815633765476826426661276435914348645544294589246138516146684916654964538261593858113493784615819287259619347714342431925736728972354222121492613715192337774455135254918514255635914814269925465414162842426572937157888915177542835992254411174457411493964348211932241263213738315281391811918649281446751316652273746474456399949951193741663779441293398694163159846494574193937893459336989342251795182588396936882633534211452634333591943277393959327617459368399662691592364895758472284815723532238819949494429237977597719892111982374943978534843719176294549548641324132234696591383572268828937674472851783233218521919937663986727374526188832746439727847269216546562797933939132656123754493432969458537967173326687298973173755748294241571771559564931377167542792729585442464983376365176973554167644556881948419633771776869752328344155127329336672359831655488413169984492746734964167731294935522623188783335697392971416683562991562249586848479541334227935311255884199765933121585844248558691455755442216237914494611362217838982268543885881844234269178247362725177993674541917465871987624773633762237666336314931429337367187935757931459185664951876729551545149114178171973774237711379133425647365996223789532265969715499722288635165288588279228838167892682284573212897752326178814339682721742162313963367521653779421895695766615316419148764852437234211759956772216244639695249918487166874174667157423767736565477119257647545363625883695658916612844556846819728889521238219374564156864749296433739165673943769187584111992978392683659268688574895243941329221361146151962325231211321787342959141589772168426896581936492686346989282896748213337316321458765968976841869948643617885363943391481288686512463363448721866483429378276357896973494589263969677995462995236823954431562243375467473896778984332834463991616791239942229256791624478121278389621122799778563558853216953839978367171433958342958186574645387774232528451297726326644966336224433633525135756339185194891576989531159583968796658548222875434461136891516694961574291964125816343916295387752931446343878746855687231858324446443422531161552766352811122664458953791645613275989712735787512367495261124436551398145672849671552446164392779552745422886448836532852521317521612677836396214787778222837496834739117344176951997514986464252351284466222943433746933748331721147813363422465423922215341896635444577919349461114739834627157713517754574257291657454499817667935229836847181442683134939595215312722118241964364996144249796937467821369581287827183395891583644518633346324319786859914663583321476513147394781266479236894153215185749629458547154952839561775864655238886826356243536259257479614141899169829258545271122863994623333847617926513469332312145736148256273413456387794579749796732977714928619324539129254159514426856797361817481993145197967759144694671226832668457146892777811698723693244428569158952134859828244391928845684719971379594965366219365456887512638244777822119994195295933168859288558332763663218819798129147847667392434731271833195369865984967217563566974316132773623448523386435319554391956241239881268213729176781735622137544261516556167615575447298831916383576393166817427733777131228522334864581211616215324886763682134259861934211469453118916579636947633427413523239275462444225734811448444993887191512952154554159855589558422744755162832542652295461785749271834751855338612674537533286689853747542818956111791321758559195258658913468225643626663944325739327987917618969388423912516281245931298137311527558823662132222338689523119234531631467715866862315764263743545156912762847444491571621516319464965371815887756868277258742522274494291823857276355414395567735618442741512322833545437718315948114391627619686785719982121413899793944541573726278187994874155611614853811132281394423726322434232131191222991817373242749686416168268621867972316232144614556324936564826753619265815796937655939433613565372864745596265662522821692784577371661936742723548596132945159727498645434147878867991525673798267322583718331956216952968585381159227893624974683955992745913979853938614836524261271213537854912433518918474917618733294368882628911433982233491727749484414744574496264657323112197436555968458254411986316628721221119284843571354385264694741871348884777281621487282658972824247175346139734742521269253658333781443828698725875354363742595369271842413641517894993465372759653116882348876112698265188219544118736328333623724931874816145196742875843295773558332763711312273432337194372636824531984888569467441451925727491643953124586882431244299424279291827682925752555454635393779926352413638528912521751919238342396929254458261125939492352558163995621938184114768476668459475455263573158794638195967443175688726863721178118368338212282465691488499883331215684635654472454431494918626574638252463896485819936181446658728632443814146564576531442318553195245343872183735618446361544898132924594623133875589235798852246224441171195816746482711115561445495859182595179348775639936561457714521617269816389411237262133747677937112545224334446447761843411779478591366461925273417787739468319258268159835954872367447849752513568643241985523392425229229413731979674118769586238652739223483244242756531448115155194242261545234674821143839372366358877646273646668459723662625149459827869593646128546824741947773895583553387443687739486113187697147889734733473153352357891643463554637898624127876345589582175358486476752582568721953998574889279296553343918722487792282187251731167457694732479712319544192768225444925173537741531468576131422349381767486659239882244754416586169997767714131933634768527776959123275957652389443784319981346463752526426987355179365557443463152897428548864867331936633113132624848722733521943756845538564386138842166273724157241421222366458339994789784183532586351279855939952889164131672215633723716287673516672726424692727531973725625593242491397845229685153948241113563476368422246517691325736259313391242226335267974966669383613993688281464841324615712173828245349853557277224818837341586779233929622133417493385413398824595627237253293856662298161388899127293957547456741814597781475411859246131163478582632373667148773892716366452222189576812442541655281944798262441637161644121766559238698155151764363158968719349971527588361873472126633518989552735798272555997461531654717159125435339129111412666114822393691533628994784942987957182296566989754286353286198343786445994595841995215617164712384518839288423282853965465634891315535634685279538198914837153984576448522196563454913827851192441237143657423617973269999921179843649574897525567538436656565743417667546948918645352866951467343223398845881125897537166476382583355728357781921777614571265781231742925182322948261169648684423959784574176631499564715274414258322414987757555516264632937713331787752985523673629313827229894986382668178146221652459862647355412993825279617417584752663166414533362918911871333825551812945428634176151796233625454654638955835171114578567937974628569558299623624964925955155823121459836288743327248417874617558365543887325797337774383955763925232115938116532477815899871626594223733219543233527642434824952271654679972132758614375467381327254167946118567193728433282234449485573728633368978896948667114963227787595273745354612954569196859588154563544527477353174759846448358832373842664374131378752267214764434122274893713419352671798282998377442624137417488823423743292196594148753366753859222237444165868698662511273439466247231526237121116325269491451811532989742713921235237537298921421957387451683993164925737976511297877263122218473691592513996593364317256855451615899645663564917763757196644267368561629463676452177435354669987576527546154352135235933535627781479323268424956816327594377679896923999245113446875217156665852788867612714713382122472152143783711196467751936591382113227656976213283677131637651695728655781234257581355753428275574458242265493158792522513997573587974426487869761988195642732312367259231597557833983231236118897293231454969572371767163622462624126735652281723772612751648262152823346772786589485253333735732472515112715114312936119972785332814194387786344281227855253128352649253147635257235242627776146838424536321627357665772897474381918863873727989786721592499661982152116469154553739965387125228312267866684974184593331576166124848471525221846891247977992243998511146173177384797118245357377588836559459297831944828524465849147152216134544145973334754781638811925172238185828594962968391447772323638443876787398331549165483612412359362627935778254169172973176933256178714157514951854294688285166894973132838534395381863971323831197741735773156159286965451984735312524816683969954699612151358344475631742751523381953765638778961334497533452186678712616613136325216169318114334656435359543667759711291441753884143576612662262719191629596882387334921184668328614418993738131812121865565553529675815843899373521266414375519348882985954382949327186527598214489259142186396832584149576745737997466772668697513221661964339427936442332319895286632772227649234595141263921934337993224217212694687698279363499251878432149684715172477495329375628532838394541524681138956328646167281492612357735522115932611124188871846485768296353671352155534341198122371147831285536432487666552944263215326963874378255841132296118296867753131563747497465351529718867146671442782982715482679559953484989922234157772226146582293623285576637176688174975886513856741477599172815669457316343758953787333969926599524373392536387425438833279252222279726234365835191714234265373522691496764773374535223345816885122189342529575585177484128492664585418284818556348417627485462368736628897233878671133744927967174635567484746312318847859472271111234353392696134466941325881662121667156837183946452779214677136719489312712713421996852138537746798425368318891271573175146613231274916641936739499729979257571367725226379116252664149466172774382947521181878599633113351656697166745454875261832677126217117659417427937864436578596216764962244132558585678428776234853336769415258184153367734576381719432888217169828613552351885597341133842963861681217224914718191528146484345363495122798395697428855162133872766214483753489844129247962849186378527358349366557358945235787872865858814953311212738426882167618664163652214145558221287318824827831746818661256746111349493155442545429132112769461251131473266379188453864985626277746863717946463914518457769512318911992475739436524111379172291221866512658855767132916913757864853431744223862437495135826235314792689626473781696249622167226552773129818475692271116224425844672119899411945279925434957757396414335746424734351225471287771545157442656145761542451536945687984844379177239865169191585961629968539713668965698389169231116288538418774426773414196967248664784917368553257287111779921763875599955661438281164932611592452249335762767816595324646312232541436676498441176829517968356899544583139392494158531144526164478272144972138187114124347734462733333747795132324123547525584532918584327524938523953554941482936648844144783224569245561273244774165165733954213957385525818733449312419947967389676942826391899466421384342771923443818481353831782326234131119827518613669239532528585181644417695449634351192884542255594742139282678813873521134369356991917151954888314463453423222894835377483172897852683364553486186739833275684291494741793661317817366274596277619733629996137937856414234566746883969545485222397819981668465712135367447968821823361766623368987958659669546721997857154644117174861398722238927834968754773196475213329482232883451979996641392368666828295991769655191324621972299696166469622535561523374627438659669556272366647742263856811274326621982863533869225493294638136955586627653245484223341449932558799621948387362684865272647123343566451863156475988983332365798442724692337491148121198462275186626948859432577617412918869362227398446979841724321846568491632224834529238344189589748244167939168919735522171337521936453159486159911626761621683849553854994254653398834345523733167383556147258327733329581411314475754294514329323485434775252797519287125248352524877265815182143111414833199534464494634725571366836217464771516176921915436411672816462696518579173853244795496512768211824368633285185532975516734967249218527575895949754555548744842438462289228618156823672721511144291112872325427493858665551543161244972277722425518974728757179983531768714144214667195216391579574714569399626197981217963725431541863656731859921438691731653828443333725668771614472654284696578564682323552475346731649162948567162535644282947223461978161858329221841143746313152832667998518169879842765183755688498168792589586721337385834747591118751379552257484824363781866543124372988558518946353316719768143872266832461145813782423354242874115635592324696766399532977156133576932578679625862691398461459679397372229941947283543524644862911822127173364571122238141154178282452912914935871876336986884329592314941319515816162547873636514536444912535882457548687752729259241127691557598426826553123859275211215114238238768353367251851999848221296268344166211282277723457517649272677231555654277853927225196399543253268479796685165698639721527915775762132649616373762772281114349429463242774693926736898473826132435181854731543592385696678418839591153396125415943533236487286195421288231211793229428855248328341294181653651191756999235689429738839758933461933115144531179851497923245625316718969148574246439721114725527191726843822141836181363296189656941393411832437574451582752813376193456993616333118799461963885931455296117716747322778894284626934932522861925824825364264237734121545623161813181642648523926244769631721336928556173558184621694868685558749122465222145878553268442244113473399726374139271979815294347814153532543322353333263245433258715262988836471629763534894442236414771426653865191433255613971193972748294593992118975544872269712637413137975715117956548435436645337627533341273913733582679356165913913331788364728559325625288957978582671666751498199828271648263125162297696277173569491499192434678138415958798674237461164256864696636237768611721284399321137964193181846751354756948729956573756114817385649844955281626653826922172424282251467722364759935443545855851537482917874665953595287892136917212376543765411486785462384511223846252973299843448561291542461627229621545458772733756235816444467716793117784333137298362185416761274942222311746887926467798646741976335551584619945431468231534419879443515528551171782315553422992688627267279561738584663183868415282713215285452971144615796194722585448859821297478537351575224115881646935312825653415947121268668757126881882522418575563352975249585748144915335748643487249936128168786175742621245859251579575374198712648748728136933832131436967434187953887481656135563747999452464685461721613355136451152521211393695662639882111574347852312332495165148662755957219313326123795419789578733263659977369411963746422629237116616557436453272235552677775879848454579935291122292357815624123841393544981824991298845569717888344281622179855164942836584681625716213812525929667916153422155569885884449843762373228639419613963242465931663531363957325637881786783671593542263376916939441554974515594512875145544518569954277886799523372833943929686298695513455456466688652422741927234237982784316643186827782862589738171266355311694749271331732392986233669941257656217119513681758468663368862754858418257155676194213994927643289974782339813653959728848332619638212975221412773399271873371422965159193644832755354269146542289671813664784562722641791163344762183644265823459597575694399223254339344478534342979174758874933111333598712892633438716634976521222963585352928953459661321731418485775615312684711626886752738751496198956638742212643232161525789547212676261611956714494332878335835844898231143125224244859119564325975867492299164114398135814635813892594511148992353824483372348928275773745615542229818563233411824249845192782281188522174279168996661113947423383973648529239615194227526566531539561334647992189132639465281329118523657678949315943914846385226952273843138213731286533251912769145593485568481581451924133988376192592393918982931229231614919172246716368642792814919794265691284813622456169453194258873458726758343395619548166681952419258548861253317492753836786136278172791646433716614324455543741319297969319193289958134324151926465482216992977386941215268351298162278784157897225693739218196146149758311291375335187968817885413391341121948933991428973154465166142516921483795166741543657784814452711544794329265324184252458391353275251169927742258658529988682867472266638589294376485586514962347341254222815776371474152518762371754488487968232463525818199594233142459895412998455645642212673941512376152977846335532887739114258471267537258544291851834568515699513147686357281211745349936328821282253712122867273842739465696438688188344297596117122517373494772662645116218741928131691297155172656213377771512246331842542923335848268621661965975432475663551864721365632924118655327852814895658731848913756537344853955213917273971468864665421421176412245411586634978169663831894814365469323491836528838687511465334738821586763889436123945267134215141466971549697796268628766799323783871535387324977332536395171538432618897429424468765926257689495999989291585384784567297449962461273936773228612693863713578865157783531465714647281341884613625644143727774398469917674765496439259423578494279575337536718246329681118155455427554853316664836134477112266242362253112884135425789755221747365998145412769524878649477141762392623883769987143377717759333587118318661193191493291338563357186687833283619876414295355619867357947762516595587518861365747134823727533863879111567144546773326314635953281769535831827878126177651445479329536524842848316661425791371939779296561163158242757634375487263148531393423714482542733496837647671148121932846597222681697467342642355432611188424556799298152333417752335767832227996172541218647945825253187394413678221712593144376689528931173379221588513372368214259198551734343228548396415816223531917555469353227266582393346233826341873332654941217961285658274716294588996252948772618945228442225463922246211177886191354411253722637785681437845924728238666127991371956738382875778925559629118249994791929629865375412411631881943981375322271132551716425468134719641567255897332579626841929571149198922798194629124928248464934651293998829166259371414935227337966823365476221194981217283451756541123343474851764464112856376345346434311782133715171347329192857672627215693749822662277754454248187137921953742241549171581752266395966443713571773461242195589549659453531211273514788963869419544458592442455342644849576982526666714189418762992968346226271247344414544493479964227275716826766217684689144537394615563225416287884378381922957767776317641891541242415481353738943841757896878168958336234432463312278859692144422457183656936385147993395961942372199437378588443637538282274486898242871124134142455663221346344228925984772238795425862323558957345993122784228864385493578465953671234468361145956816416597844765879264461243238274731359551593332645394583185636176361169921774494961212581337459829698265383471557189684879817278349166511163383376658268884713124835634558829462671646446484522856464528498132744945657214144796597111216821256968493461738188694288194545925591357654331765578245967538733812114161792521149419943684115663551556213518525454443692752782216125935863329913326116215114824142721668497319696517814516115126423633636492333281815286267167283242318175176527381361962595182413336339748653168926894741582461645777777132765434986958762336673423124624315985166187644144727681812716248765473926633669993865384911848963655565274754454273532282297259174898153739339782977543666831484236792745464531185842633825254322377135585157483132195157381755582723381424215276821498293247615268217445368553763112444722662353389487135451981679625477515782892528657233786419357888359661581481352457693733382948513446155821712636717386499631975129226324736567141186537948433279538718324454414224499234274542713116228192296867197872976796987326319317481349215995786283583551224238722649132727654338361985717432746913124367225229139385865326385114777655491815295397222436183663664846728913893339755376346951352517297744529696266391982674748553452125564172394323664924388445732156475776823768116362533698985649722873951622281962532195689535316416188777951712559234697367715568117553925696178285538248139518878327972416448853869631292161424753549442658326252155957568334815184986771527368419458312751538958275657394916498569168597592895759584898231911895142636536163438488146432866291364294598313471878346333283434791952866814293482561759142295725288192196844134783585473655669866278146823421668975195983197941454455226126784177111538463386627634636414481897935526233892888746543449318126985544437459717651536655688965784795627918991975791643426157719949648916712147281326384836511974244674382576743352359823963559245561886123124221935622382572771588324167653766125221378261954711748382135781544564989319651913272322871541522153321199155861622323397934825248151246559979224262125254738138665129888525592922617238824691844821842665271918137538924295284349897615114676314396464236371283213517234949446157644343751568314612489767849781618752957359721977114968652992273499717573214417481353888582786966721757618654789288175611149816159711456822371564299129619684621136628994534715643674763392696898253832357163777422276568356877373825729339664524669497379372232543993493196218846158148716286467472188163332338472313183273981754213596166174149337613624286796786862622758231824723263871934991221766784388123579419616688476287168296714291526925626334544486162995517693929389934778514824353182662341299199486127293397627433823691566527642788154267924966932471823862926446926236424617535553879115346188328271314863916485263683934227443243829762234142895162123543641793887621662252387917497475782964659721582146298836845674631152511352247737689714277794469437122474551342822853151481272313389553443984614226592443842358114275451479737247187227828829279617115321743152456131988332344137834151756124557784615441233131834219513813686774134467668136154662241985111512122332993762291399235422319565223692422476183781156214231168932789198793992227227859861474141282277211553961142259954381994934575238355182141663442343593174184587593276242741286661675849336194894512553886244529297954192844318987787171589352258165512413564922421963617977294279383997694975487471394477116526414175368373339394464222876794955479428195676244985148934226226485837975375449752199758476213649861427762443231317382719123256151891498531814713532978533947729779233895257775229573571895452535487325361283194881737948496375218559147173976225551981389412117616827566498192151515189571382844766491888919121133368126784153145945581313947167216856763779983288272672419345244674134564239314497529164963977561858464336483277175455318299195673891166139749543578425583918767445459584662632755192695893719824864647574317753875376155451643525661814521822966362522965457241415461771733887943731253825581681281433294458439333339693139367878265873368965635622395658268182313364625697475959939973318453657371126923635169337334284458128619752634161662453768655873235216753454448976926832466442766533793458244873882815693138582861223143711316477493753165233685343698132321499999343584892394349643684574574461139247659989246672887825219617993991721629737674772464617436651369571711274326332735417856437754298368554558918919257782391727564861634388265211411818169168417887727924372364494213338817488626161337154335175618878736573693221357444232448559571252777677687117598466248696411615994185821331757117743457436955323248789582475872119732841526938542529645494732276452778613541837982724748155181253346933281663314788863484973415125164393781688696225848234582443167134921288359951855787893382284655744285357124475477786277747196364717149828628739233431733398247824732743678173877951928568379879625782956817357815538319498973147456741259771297625127959999295975212697778477474334449698699452652885393342292837787416179552415665613941485982656736418658881814696914142813385719622442673257625359351623231882819952942273494186717818896917888411453744856387347789335817556357252783275119776524929342457683727372888685687569287664697373352796526141239767784235866198146967764978666331845987487521982812563821433956138523175426448683924269527279147142643641553441334625135844497232541971858733325932621956467986422564159478648965117913372462531615169528128876711741148421735741377867382384427912725346335795787215841116786597754489323698145943157254263243223343962167194924953728519653483589332748762228233498646493942263889721248282382425565682366792453146215532548934493445966847358715974797732533784799183527926162939364224547114494719394631264924236675952549654576542134793444724357242911411887592561474462222962262917125952718648411161971253578541998673135254232715728993353123428517714372672179117666138989613294431319914369155357867283184817489165463534535221219746518941132165854166438747233971675149626835864483842537567897523744517491248362719346156583922565136758927851444533592294421619591636812361498699637535772322443291589736946533832492834227133915737324166382443766469359565443676775532377533517816946313427766856227117327328455941541335656742111277211183571745524377669153431197745148335695615952785654679914621285285191679252757768564818158928515457646757223967242312783786821486494773681412433511214352613453874564329416631122545991266327697288784733917669382977282238322843334297272298257726141755834229344545216732782132673366827499167872833148363696695659132781357956164624139477278574265569569826817846197436145153178513537812951643454682813628195565915564644855655171385574314362479933477228849357712332537631761856193627371528453124537143118643495142762786778762615273811717243228249469387877594155398856639931144749724893862958277117195762387597756175619116241791171632436841911918883251272975429572723278379312768436923399422674358934419348246553167613582772287879419571313498716674333116658252476847252126557241126911326925477822245422332335829746589794275482224819331676192832329233723785491587238883113129685895196947535652636829665944393626283265785251395233375682779388222829697464574378329223467652279621735796448363375367746471824332549626294761182918149729851137114788224218255513816694922648575322523314951339188263869794636199742152369363668491682367737332378522192985289931332122513961993835653214856459247128264591174162541292771746479554252148285646356657189594228698665125632184433621187287861569835688364319481563564454621589734161734191311559433616794516366614975921715557556471231879615396713759994332932743738827573293197319995161187286555831113863427774451746186168299259661321447775664277144281661222363433992181359575684323929963311353923394899276311713118116369824936376771612558484318733251332715548539785937331777132288225517112347385621128629694935991527622655887695633339512316961124892889121942641937981729778512796971351797576295513733249259515278419334987331143278853535768571524543619912672212485163182256157822978723272513935954647973812688153883692743694793734288127272274154296711754295985387744929865492776391797774654747528889656258218873238446162327659496311435297317996832149436181184672135712481617155746937242298245448168956563459411692114829258529195671344417971318135416137258322161724929117523231312168681467824634422785992987536552481374562672765418841528999218282961915141683154644753868259642141962419111638213194847449463458678449211369552536898895781568919215344144184249536228118648196437885781692428193562692649836984563175485841763285955333233535877194425179262525541954413985325655973752569752586615436646311411122266411232615364723155824797251344115687233665461398781546451958398148967397481182171139296619433338297174826547289479646221848466699146836397342638612222657717469338462843894383424419323649126357295858868458746635698838117196322644818485526886728339112113362261584358114334477269918176636535123851949423381539156444275347175854177437923419972791632396229124566184868698224965199393626191173862312272927395826618525362185512735294656142255851613993499934176382352572159677525339635924397649821184732372362972512312354483494711372373542781743575654216228673453215633162916875494981484822453224123917139685643298479296719388588322113556827913536124246918473753749489968726863536946635711655423819313584881142211562619467269584312334123144283831262571632489328995167195323899514156444918619237691131326267618859426871464581555632253579744446547984544921616779124692771215744897113389399478378527395253351123661325689219434336364481212329289264573962346667725289133392626124765256267139283841535344976439269876996527633345541358144478222341422637691292298716258962842655479397725337596814927763388385885144631793335628866466115775812712184346797267224554131244371212643229381311589953191167689561933737585637442685125842679491598299879131253812942922439153688174913112915521823922559223456752471972294626438869668117255835979819312159726244541939653926965234122852776987877299734972696231916323829127735827654598954169123682394541693191159859993478452121468585724233134611775988194137648536935532257722855154148252696295618338136812165951944567188761841739877184459472512925443297187428957615256265664498229845118239232355473242484324197379633532494956397465774947472677746626863946441518723444262269367873576586463557147759318747492684544397897476944814392458164243546294946865923928956459768121313292472736247386452927137552342936294267471524966215963663387754155635919564463838636529245573236343414231383576111167511243299499249184746799925159942132479496143216298412234657475147816123656391322535838587932397969474781214357993883298141212171877532377712161453343658446433769218873415491512618912453347167969294786693526794798672311343175686885173586952359997989813541331942812476937373535224749471134471755519462751942123523887225222529339199897785361584525416423571512329951485571523433451574781371961145572427656211548661373922191425942965332485292137369144142664219781973865913248162456797785671555368318392352728916156116849481831633879213369587627974356841853336515357924893597466797422867927667731445884381137116246623447378571364766319483969631451268898218912557133171114653847769131351993571936661431769236743427542221897244137533278943173252451493323252451225831762857617313721311742995888619656351366554264587712378169791261892243998112692135571297481428736893257578148211264159713524991648287573749335749723642599229693437241552842517764751554327718725357656814765353627552491435171847714327713842739111788759536323547774365552679118836314418177736554268228759123775368621289557662462955415269654126976996613631845164699569362784825556939977647475659961668286121793832966463435324161525829736433723596671227257812919559323152215455675233855889718973121277536915391838691219711196948237153268319594444569352598723586774854362349543466745217258831444915386553479722915923432978248687423179856432594268934237537283338472119196694387973583687941341991698531976826865944224972871811943699622248132212618282382353967551311915167924231251319139289252852631161643613835991326198967686275365426921394347898558228962389619279385417693211291667624889382521547385485934731278555534112222698331541427169456313422913785126111372776368763173123214724469989545432919354484337413896718928447934841799671737662337399723875691122137885829252521588169394373238341831133624257672662312624411728816231151727537728337522255523565836183471778167868417722482242785329145453418364157396714689362412224934332627355642864451686378665194658846826161294331638947293229822218322154496395435612111551175275475658432846327413416139317131644447545347241911279153792718724363624149269312575526123781961586667233762845764475867855759611175272526812261322786249814244299453516659729796153952942528541814549465692624641163765433686996374536612999277162572862846344333422223395378419618569783977213271616438181419377835197225425683337598654314215983692548494473253875297797328397756857641155111336218832528493623478473316319267585526515235473728669212771813537366975689296543467928162195839923586469948147362418515795558585765518637284245283418671951812281963633562125488857762417585332922379464251748154675641678535454987494417463127992446288524455927486594228758794221721313292163413879471214175753658711361415471753878327221748344776628453761246884167585799726241839612817569121564323324378714764787255146748651565773859788629426896839159249255676142627873982596981492497262464743741139189243232111665896911624648399148556654374776241241981525837384422956638121962488138542489924925174373513791772772451264118882341489979944715948894738913245812137915994551826512573795276551824181911518436416567585489733586557411128354152984584329995613813843278355458376832212834383212292215622465211628235871814867415215626652998875251495845391796683933519281715763935274157614931515884671627952638746638953131966436369884218574263594116271154959923911987248369996934525239416446926574758673285869551211723522524411652496722691661693376384857519361348955252714762439416339476572712211148516449554969914622215651412459913292262911752151263246468846453856857814499618793253425851445568526755114671768161983825863314544566742339321134835712423979961252852644361477441933531184841696151459284341519456336992743662329146333311868999335636283124648691171339187215412945797845225644195473415481388719711872588423488316812113653529575663911777314876571529769124199372926661634165413656948344437435912695857158988389169268769428924562575364555518524299419299943251395648269447711218972414547253819954594842155273764514232532958979193493922991789668893841167862744887346119452876211623815378534311652165527246249924164712995346312128237387937186686461937892718673786568151372218942714324963414336986437637442734243533955555692825818248641315287586516255474298194286787426519954938634166753165248558394219498962965518639457954351388658542711475697382369944415368416633651781747153414477924121821846117414818236637247386413361275451836889326491765151732175754833429696614951228838128396616462536312698744746534178458491594786823954835687111184374813536599977843399316418558396322637962148796829764249227981338222276221493332138238348247611994878323516148156647371755717145168154489116223365384633118655224759854589761322673955454756225568371595716697756622915952717281833569627411538123262157383151628663342974276339123927595766291477214496561924137687654759734636788273136418525282746934764954143377579491159389622175433182834513661116174252752565668161837467675661912144114257894226532238649573943711924113653574615911441529647186347482112178426564512251443976988764641695231692149853936172277564968521532135821736158514353515947144825814382687424755769239797819562462129669214294422522167531189447477445222147554296494144688748325363493393426774475227288863443868472557298425544582596146454361295616322597137568711793841697388562697983294897222255818556337277647488774813284764114617259495756276672375137285913263919838113748327391187222513254952869113213753929725159965132246491175475772613573848944532333816432847645176176815659584254645448454464164483716211552176411898251849125817926916425582893865158644261281116941823123497462165581447816422976193191724887215898778794921494487933421748749617146135756734798552526669536729947219915681811923792468212578685686822786427712381875859327638826627748949448716183639129569549339263269677395369937946721936955819282954373389836337657449249491639224444729278135982952445166365834252476254137849124754299817524689854826684724828439615163113687661724535397618857646875585667157734221149431487134772955448849919815879312526682917459754644344663136723211251649513575864478759637865791169743158224314447114875969626734927944165383316264811768413176354463563181234214914551836163324454597214699612434954956381349262339156854379234653379636751392297433195265294245563258148242496366577761791298735133583192127992391897647573525612534162235577544685974664524439131137898239233677682456926718994814133984328298771922714351618993312244236962247796238532164366362854714991528365878683213212497398161777781711464646938815981996966845885453498494348466191242839681357315123561754489824158232314468383957531382683934974192646438655344982122936726617264412849338962258872165549331189719329323522556617729358439146984135291233928746857467859886765812123984233774479692958791531141148869879484257356256399199141578534973334669335228916898222228767281284121394351173867233893757482574411257812236343354333538482664641123163712888691933285938992475964275683723235895433314624936268178739666271993727982921242426517799566419259762341346237537168164725352386122143475422629977634741563273255376515299653685887263688557157626493892899282188939632936939328843332888826921646422275476826197884147563835648659615356171711874193138124122887683221358983216592816255178644992273424983351112844945134193381652559465232316624351638359346913371911447328575831866559927865732437681549669884626943264837769256493127225128176231695325937223171285938486473842148796996597434369291581969927752883674612544754395922975679395289867381171693771462146237984712624997792663516914294923751958983857342898293818956951764119566213124471692943937593835463751219221241687732168544443916657267515916718249657189386667882198786797669318312624976475798433218652114314776422521871569237294959635133293763591197633433313252893288168632517986248447228526855264115763532158197237264959537893288447632761339152628699255124854873652257232253649988318481375819533925186612743461529265384973494263791777342627533788571716314742765551177411231911294936613424829627852822734848135413479314729191519399499441325842481147812162794968456772396193252848586211438785537112914379934219313578416579273797647764545854979929464571753447291477668738361356265163219787851732976374484433821778758973852887792387148471889781668524192663718163186537649474522188425541193241119854788781212732753448558644125652128921542432531437732368752982587434392489429156254681329913384394871518349949331595677137423279878944427739592478317277822222216539621191462142614261973142411234163152544548192981214655841928721186951522175116532288493428476422523926682385576787875722333553246774119479153743752692189973356438231572618965977523914845178354951335821437589271394153661596565738152642245246969383462722214624257472469269591142946972964268922254141397346676928457447494433321417877281731655583122476976281954639993272342728393719176759278193397584958735614889789668622848369493612655243586182521762843665659814845738624568632618778765947677921381219766559244571193761939179173983324715551724512783539587754822617472443376873935879934159975365928145751137939718226282535319185192424232894669143759143421593562978991862963353425257922593873567534946358948754171272989842831384325872239857336166462417656923816934164674481537436665862688333351279527984563519795112414753632325317141423416999494321237954965242229848552421195838184572851673972246457619896631279263643811127161351341373496617658521424828959292829396147228997628841773595766649959978466859358335138758193619662271545215671596168559453952753152129636559623143382287646734549895858613266467632255414554737657264137241978684823216363943915468834553327174361939512451156941956394749851198288219193896464858839624141116471996558338217371951721417672635795358598737426997587883311238791816873185475537169966966747324991313838672832588811474668722984495327138364853725938657974454895726981735937864382712838481967843947371633511978234218849586558717788453865692993839622915987425114296412549723721555736829371249731294135122668452265737467974144751385297739399218338658653984746412568573161364592698234435539762423114433254221958914291724232642791261233656669258782143171912667556726363291756546836881142155217119455337127351464222242575223432344769272313274694188247959143973926422869573277846612927767331223715333542147964492796419737493811812559978119773316181729178745146268972722489985869744111359382914971869915642256957117986696318269133447269533216439118332696794211695649841974847244215416379197758753841949314762276254817475679366326211354445747724235233454352383646628688918493986749261178391175954822824286116521239542111898947859838715142267172599239422313857138914917913321977389913932895351361285154195545472233442316131563756942222755666342687421857449389386681767116621434121255243423948217355293382516585754275427747225173764736691386728332566188482866736285449558336856873468947712294899127479821454988247648513348482411426323426282997454549257766677562283586156831322453116879174998114925587522257382446714912738572192555836852119421792188275212332468517494734476643285611993238749984195239546691112897836351219747168227744475347252746929712714943749457817754956558346762144131316298211441215192916141524399144324682228637328667154499996238381187914196284466262745572545721264815861186154124387958547543637517497234225881855826217679835519442162325192415212885842456219864757376494615923216127653522435816922584592174291895425485779469875818274142521186332542732431972254157453516421229166461745623125312858345358222899963878329698351582345551768585552751971673439714854386642315861583855767699657965555224776716185532151626887644686945291929175917387463972741816111556615274515482332416721634495481999596135273842883555237959921676711153294569823582236665952235127629823321464413622544957444528837614221179972488574639157497235422753879145432572266168595638837412726669544386592544444447925555271246412965951347153794725588245562657422865372447662383422825255236361613681878229765524661592331191119983572486772253974795126918712471436814726183556642978271524413611941762269531464397693893117595614768897629299571552128177441137614562115492245181737168691122757444633893794177364245473131829721593791387833123343391975895231821194336732281387847815686513912384351298575394887971482316793395636545945681183273529712775438664759733565281529431959374413767616511517822639239346514197845871146583555718335195113187595596417422814168617759338419573264893599449644214395166759169756194993553699271771111858942414976645452556785619861113811181534932634333324355616786515959818911294997767155924674736435526416658563446224611289246233186396649125422325746275154121393989826275696379452594158176689471366931138737167164937236553283961686356194646736958843653823993622145185883712126898687636223136762929847837961946125339956827414844825858914677877887393593633181578187935398581312321125768255861353371484236666871798613118287551444529828336413129662556464239683366137249756283373483864171122365161215756494534527681419477926474527571618728874483182853868229333838563649637463716625775488834522374643821841127885983875559427441882114251427155516126854818893151783223946212416571136567529999853249678711151768989741562975295971443727771357252181212114877855824376697121823236223525698765575767845551187621247988966493378131886182726947577581626428354126634541362487496114613738945689233665596415183674675631942616732562847961917212154134161345332764333898192313116632878916326716751259879867412147864717429796396354872255418192268317574433876657368375722296913661993968753235148173451585387872463752358762855547992923976465863441943657539622296138543665454291244113379958962861567712672448125876148492141729267425282585626853354425889314825524395191441148757358822334214638188831863858122849815847943147495775552295346279441719597338484367621535569888353616462341829181876941788115365324419886177338886447324851135784956779136534888544535794641211337336181157176671388875244792287632664254882362199158922638145846731247166159665146121368581464195424521655129842376818562575457947745357288676352193214578957232184782911283931125964129358738754137956524979328929584381819272296683715817214863361532917316783756999222336916519797546764213669783624521126623285345271623692997549445724575956514894745868667244575618613137154451431862514229274787946363274621822911975211444976966141499281615562855417489177791583526668773146434837724429849974543671862876172259918447439378752248742723821278416711185742253549251996984783514351445581167933266243817788752164395611231157418129293741272415726171555861347388759632418163938238883869876445795115214643176672744613583423385288649722761792293598484697618366776237722163516445811232659328869524469374552127388887912191266533515336263669186466514534116764479516742228756732598656143526325133114254173145711487411185468376143182533961825626169121218623224533946772565187448385857477439444656459264577288822814214617941625751788181253152656434273589176298381274846475437255931442413646527258352698967295784682685919715314428296448461239145647119212457587838751564824532451327274484347616391429446675556527291154354376181465777812941753568772441728543849314263367272978619759922112124621147425198112122999459942399593998112643116561359968154928317126639792778141222746993452547874262547966589595174935514721944174922491672747577148542267812674588613466617393342791694139617691729819224226166634974637372181485344414195681231288119452728972517374669954884398164234275149644463699949889646591287497975288945543959753246127747932446833715185514566375316328359368831261964856775853626536176443125334577458575745977221811328444263293213895938686458556493794389152442825431133317217249153847239611242198529447154359648583697951768169276613395513227647641356868918495841842521143753989432311146768348674536834496677542155215966979966421931139999369185167121431427297864668736963345283584519681179844462789421657266557819725811712982862219653884457285191114586492532129258162414235687838518655893176494783629324875271583649236931328386521717565799498541244482164453858544982167754923168828781871445221846463831192961648219419684853117252955432881769755226313461577231845522685786836468289595764324549772185191475734418961556473649177536955117687365842747234956157834773412711117232941563117825425223689926686271795172431563619911541294947961341629943313984816147153946121458196532629443996546646817729633439844342684677626739676754722835888552174626283497131477491281367974151994649451244562824929264134236949235744522142689657132386871716487847686653333782729692995129716491134457762669664421346711863143343337413479946234784992282234713146617398198612733342187248465835285262653678364881744815916887843439924884396721655855179985114645627219375441986272153413439425595132772432247819821147913449274588851924611553778266527292833212316474316848542668829742161158466567152284149173614515545168771338574342466983956418719326658351267289721513919654472938876968397561212445722164253727371183645664192571526868238857991498772472972685999922191769243331757637878691332948288652254841791282489878712587271343443611791993453213346549333385778582941853879413187965382372313659824766351166217162275727386487376523292512244791978791937243963266199286949852939647124343263883353186884246196927482673627352972728495148132956374722919415541732748656928288122965446553678361215867439145369839368454639185461172515691257337812297289853193624183312846464576633848515397429247753113985618166217134185862858551848322123375116698163312297244738429298585578367431857831896432323774958846147228692652434754799234698164492976597847528213812473591223622915655846962244149988611739856649437288513743759445134175368562237644689624886138123119418921884824591854986824279918845197391439218541182414542736791763842196197397611744236426939864815694853877425361364663546248957897549985745544689331818571111313292855435512918717935575817632912122161221793614676671875556769954162554466581895967622931832389716641831483739283738676197931266419422585656775128538325666851196886829949598126916667673614314952882521987469783434457128237845131583518215459322669877211847832573893155961579368324121154939681966584116656979196449268195678714334856696456348683425519322742121433429543784419733422581999829895915366923935622359882939299863484491297849951632111355491479592719831767673168587176768724915435424765331865745196496443795736617215187258744521267681757485279254235574625152461286572673932774623564333754625667531517512182375883735373464392236193761189826832936233394328912992151717134581351585827295343479483511123729395232714794586495851554535845682671336487268653587444163697644841466572695685237396554569776322219694281296275359164413149386458834538972669484384615328377258728785239957929856863912262443645947429861288622162268771899167849982646155761788337923338679251284784246857627173676519771483523237238394873278333282123855354814427735774965429355433432245814388537264273126741323548942329416772851295311646854637599595621455329443382961757996595776227173128382544832564153489453727237572991734959368195576331122214699261915472168442515927411227886238424975665295361375642837119652195375423148735867363382965549447975665435838172318951244184324874461866464118434514915297756421124179514752683754559583562311988433633835871553984546535155874944746464925788682717468717173766927249161721922646313861318183272869882699465913717214911919641267318691137296273737593161711926415833431118534465179317452646424774551133131751263921339619739517629724578856156598879173455139631426543916518675528826486589578616875665282228211733622951265768955673523576977113913634211278711547377692632321682939872386392992231796595562645982662986357728881134366928241646116522831573851378388487146822556251422671627213593645456278665412135342595296946585248887539557546675434514327324662897198295847477841614549471828262887751137472232124317459859766161173363431545161598468222344825125696192428542511351886211977131449252356359747486714683769877334373876652836925925611998163527983119199728463249216248647951661766666114254462491459669259964831185446122828389217685659434543797946917786147531716829562717471499668257186372717235761794173771847366717612559442772441798239466414443643828745416454989914152525258564167815732644867872458564223917885627652929826929629965681858936344286137348651827324936311571182128292849882556525519852447387376282116921795795263571833183126211124332368799891899319124688223255689237562731456111353882669272952997731918165623168175811525495714182622632644486936939458429977743182723744844362462682623555423721468588487637316545445755468171366882423591854522833484618434244333141485576287141884179697362266576281394923738712921215284155449955631687384413598879624794864126896276956
623128428658936298376468912422879235815575173927932929298591654315374123655624864375858567261238684828114821995985994716751962838919946318548833527955247832146392928459175442314324877364745981233194965545883935888731981764331314668515878148392941255336569643678459898142723781347481832943632629545449159687166668753868748578867357173762789115719535835987296697645478428679585868673972866576319186322793775827224826851144485837474943187143431347397273931353449657878684741925183278137215529434544896851421672884316233814619981331329357221532339346298625294665866944865464153764613752771449213763263613283811476918147452954482589788446797662545739299698433646223616364818768752519523894186339749393131995165836643178216825811786734523292788593278982978514914138337283771559216121794919959485775948217842242912277896787489711843565999913443817347643694491173881255168837862222219141946866583841584172828343456768495747987611352671216192662936722194197451268316178578716973419612878396529181915162874621471287897479642355844183483316129186187856617976476689483269742415482876474447785753894428771387298199767823112778749299836989864397254191259743893876714899327896445566124723488781116586913557481427348736751585277462932414916994526127636678526318253189349135519798237645495942231518757367917733167759327138587351772251128341469722247362618616956152671162547821644186776664517455957958259573357851319783362482973489336989756986593412841766359499281645169655834589933159487379515111924295824539945535789329656434936843957992951773141138679452666268727589214382132925489949791387139157559485687134395779747822327876897467357466934183298395592967938946399487914152372433721272529319537894146927592223869592868392644382982563439789881428677612643518998321137663152516541199635779755422448928398443858914673648861194813785933976141933295628813759886357595122193115232861727434979133515978778278724192635561789562587731925584698327929125967268114512596439748566711964181259451431267799975922524778588694149853498936673846839469855385419416619234878954549544537427583448751278899587749873142476599386678857133234854616495773621926432355794217482952314756341582837742898253641673929788994933383119221112639982991328394953256665689983315336959215554656611713769554714137566424728791281427274699761975465868871865486599338815755528516928165781774352181779794787982181474676668638899548417759113717821545858298191389883157498455529639673231732387127265256195218828174489783526551738559596732633369449777228653592122383225315393328847913553981811126286111115627868397597669236582365128266493892536571453387346647966899299194895875351524513246481518596448391117536765938463788413393392816667517447841831559622476747623477446699257334967895699879774973658644592913215499999748532815541457328857579431318469733465332529372847491892587488514639442752121961745861673711996276813659858565856414782261948883387664853569975888149776946593397176989974524325473636592678627477382763675365964374155895974863271339954612558927856879273244462318385656158959639948153261868784789177879823965678829625689196472598534114869799497727194842856958643385993867975598395158686968742734581622685449374898842663994596542666917187363865646248961898997617265866358534198259758541253837923243811927125671782717539352428215959117752523685999181619863417272788783657421541713625794433121259227255677993878396813792493164197555714753799416467739491768914838548689578813694625641786698661588614382414194481872823584759223996149817895557119992269477697736259361663472575193571712363558245777118269445537866416291916745854829767463332325654622971415992162882616721123126487844393589256864792812352993879263536211449176982221329913739497654478574614566279311577736555518367135974975351455813334624873674314955631728191438315314762852263649399641959279646591455248779237648497798518793715428296639194642541771341281649692761764453938959855776122324173216783287971936874991262498347544796218956188671987789646952835715248621559438259356974744169858875123964237579969259599818472817687286852946464923726729272888358796642926965212748859151418988646713392469446845237677735455181869682529368642729282888797783517379779115295373565837157382795986918373685372863298299312995818482271824435169859366838278367829594251745558481924184665821647899718653573111158858818132843895975725823187569932958446468377973527315293924572559472928628687676676785999731427964189215145123385852949463545152986448326852917264645538419368572612746365261449223742548636479692652795835634389511424756876279462136184865688421718882579768587548872798881926574676871774587944698666295648439491933157428119122813244579487282784182867785459399529577382951894146116267371325872652961168935188327284757156959789228993699421622334826684391655678358762897275159341885152937346589469141986569679151647916283979946612122925798834282535649823961259425553557493796886492198884966481717994921881849924592986951428248184845158892384591125268652152556841987983572357565565289339755145986841228226322212724566737499355477527882124869447621519399326412314863847463839638894543779951273363278369284273231117421352756699131984889941993353971875864891115667716496826935189854751923467749818286674742653353532998696545742734998724877827977862134233943825865316183451418828146532884184389462386932863144694543963559176185595519749777195841879862291567944261696499814195743345213851781854353788825787713131764121331251569911926232236961246952472224735819537325687844897462894734985851797518123497971951481691313647495614694733413993833956824574173266592459333192823862275194317941528979629914138666826249962833886265858866973452764672673523332413931146726654721114421725238484454914528626643929838691949368521452956814774583881794142221985976786446499875682169874626426187916758523328763162458597596456924714387853843956335871663775361378359995292362564947273878486174477438138894558866472975899267566912131533621167341482867271471582796996821236974783468594612871735825344258475385594249985538872949873818845167672476237128969638843195273663644932787995968828522476113853915453432856441663412218962418275648297452531672636954719287837675521668987152792267427813633898478632987967584492648885215962685612225987326648512492221555431412369758662715452389711581141135871173944686565198751189878664484952699719638597794145729338432811299778925782944499375773488991529136366898864162353734131299311188716972398637774291649159184143144177456826543584913688159121765298367296712335748486158399586161634386212576778383838711798685167465471474958771418578335679499611589346722794849275547814997214855295788674137324491982933696568786173564594163892543552765379176917567635931353878894657758581488891199714477132984435442439177497396789253676177825263653869968978867835981356648715489133475389978951284171688212944954642259438897241493329454921179836795874169792659832972732745524228443945129912772851483486183123957862881287716482494756962149458432245824499262466491978356776451727939258339497279951413947631534934456732492569343536118517655368498741331537891721422886915864837233698288228568944459953278299358892563793457426772898562477356921877632581395616696434375452539329248387449851337821965928949466387114992459442274924153267715246323445688391595849943594951614131543231266776234681951199998741835723234762693428456631334896114695195418975395218753729714699882413676475327472271676973793819745672576836215926991173845864286647515946164351941527196227157461314232884995755624862386994951968434549731791141573591869964745241873493984126385383421654286183256976593345896956589742375876462357744997982771553448979855242476252764945723299756749692461899733759594843421987957835922777377734565642677488149296356953536359385756787374398376672175385937233618721982733141529578667317259786993191326619895541247261337783773916773918347998252957979863686922524156995788289685834738875948676928854919672217777718668314377158763954353672863652441398377327434218588767582971317662164814619194158187522981583243858512559671859854674547623487757686856356266626637834387342752313591815516687265724692817573645198533188982362811268583384419437775943522432577493468896238657447699929917196328669189162433536512416212576912942186451211644617584129159885388735119583236146521671439388868944319691915518155473928869998478763344276735699763491728947338845299726763998816221828889717347711777117796823195328468345948289434855947827272238697917857751511788422966999599876744485687718585879717325917373362551337855634171926263891952698266455677994472626631539593835291111524966782221894816866634465449698221622141983323256747475616451598765981766881556934463132574157335838733196459576629384156321893655891342466227714684964752233578821182881849738676845684553395455357647124211761367367838549285674524357844968218452844246916358865924447854321692797843512483624219928134842892134367313649931616817826549746447942899955554381855386891359798696367382665991297696539423436297887115293253754419764349756817512878419562672782613872271898351698583614566965279138883886189212589456852725982532856381655893412131958296527897352454263573587946843428972889471527995165543745841385796496681961979714726326263449156744717966167521578684716978596681663453588974433989591276223554757285484544499119417586939942299948585938562829862729256381584388617748798175282196942247638247521133625328631927989728129635571548965628423327812555694729536593798643389362569681686377398239634889556617925914482851456859945998935313712399167194878381249677987122626882272969479138729199119113682535319824719426393494651349475921867374858855579479945367743283293435793583666844541666622832678757342829617434874532287276176698487646936577214412325811217859765859112334674167347252891563194464697379136561277836699275333571945256465596648319149958516853952393526819677663711231623814841441875944657739599219574659933234966138959452645277622419565199322887587765462884146186948543812698261146995574416191164633618144893916531645864854761227359828452431293957544325277144377893963337584792778987198557986299148884157992117889562179915587698931595911378428714339539992269565788971477611656395535834945981763448338412856997392986793299825971361843769569321717765986843483631362554281317729432554848311597895634244689525643252136576752292886437381218538597936976848733431864414134199387873924512933773269764472367356229349661961679821761571846365972837159323242628558925368379742695413492488789198883126641657923235774122863658469918526583117918955599925716562612156747395922719956465347734173327448131235171269675618819296427326256847766147365945467631852821884678381998646294175312169329748129537448293717837695763824946699396283339274148449314677956492617212653956773842993573667378365425768224146517511385895319851892242372758154265267766418341979549168334631658597996494816818283469284719851876218787851788361839576615383138871592714814699584155867151332363579432436778269178247153367614377344315986253396875196263868749479397347163818784817721976297973278845795184584173245814386781138834745942723188819857343883124523897298393533316956396115436772867579823655836658478937851469469457878599895795273695883438838174959375751768789671495414189862697837347876775855911846699651659799447994771991876473152557499142889194599298112364517648985521682743622348578618431847538523526369628229653978894736881242219969978872185161269647366355267334474279974997869745728644126773143667291459297912413158879552173841953595151169829128347979362929813433394872376211597388813418947422445291368437276397143351768849958929678477676727361353411219837169441913192198118483849286931252527775565852276288547581134294484998972696174478861733973879535512621246692744393862796183629271236456865321944764976821678351688268459355116194336622864897533557194188839387541968794369473524873276189833193973633866661729918694189831978679758279714384241336739757853557881178163521485115379187273581147174767559624416675997257886572863334367137371518689559829443859476659889468714457234426426677529685733673841513244257827136993989633985694255394469468158333798979462493578124741589134295257112748244266496797422729567811151928519394964465689998741719866217319547237731814892955652774559348953477417248794267878673468248374175284625436552656544488687221562216359497788193568452216514689673385656373164961524285792453135672967671181132521821581612377693791647975732844829529198684779864245593898168426694119643962482534465182992575795691821917687585858653711922217759217256529372966351927171692796248872959682399678696189485953647771746282343987645772472624198365299412635895895538458149326697216347648335353794624443859372996413768317558819818646299496495658679535249485487882646964917533319386781633153881528646617888778127735836921765556877432986621893648425965552386641868774829414633478872359871226112156849562598919592437289535838324812131861636139844396162757649627373617528891569343144179475194661997859611514234356183458826431317848623726388583476968818895957698432466775642997171829111919296799445873649229646836499852489598686614553593896553125131768145491139487157269795116367891425742666537552971835597778773479248627494561951361573589251622684959768844239461123822844238115199728752426146275218417894862762613687333117135751916494121161295865316855598184446827787793188938259971457366726366725618945726222497684433614478676916764715552361639945294122774538356714798177835298539279711222133115187631514284356777917247358775682221194719634427152614158879148525699276492654124595797219539372591997715287193359238565574677852392613682338819888561223521598412545895992574332799835762398456667363543113827281822145798663584937761398478552381752411233378653976328299964448461682813316546856757383171762568819285112726725862849474386947529898388224741187453375916252487116892973685634847449648514496736796165773727717825335467138183964957599419581521469511167419429387698275291392473469894648953553943565532476751247557148764453247272938534916854871983587413722529799862988456929934328955275485869671192473352426358412863188367283811854475766735869555585869889451627935753345747825946638683352957113481155243593241636752546866546169599747817234133534621926428229486862898729737966545928797949836173741495719515443446376295623819987437529964931846335891321674736548933179243663916618446398219888258318135542213649354974899713978829548438835634677357623446517279261698669851719825569241267435685693591958159378794673479272497872649267237127554888924647467623398296644893737339929344311927964729122485558932258687211759825199284411445448536417739419612797386527168894445199288898928399474491133623234227184632741448495283779488856881778326413882387767837376916187957885278254231261581693663974645714894543454634271151552298257787731947178962741185772167547562489321842374831175239617326119748846293838966128455367315896796847879788642529775945146415945597359775146924222892979366199642175362282783214697892114176243579647578525646267352199966218471624687675269393315413583736512934792649242927439651162256117998642998146147893981588743553882763425246647224899374849757212195658247229233434993585496367394244314183817888873395131958338511419947471894963914951245753928151877778436595879132322519581145125959549577418724689575473744352366243811761159267261413321147788257898495168658116628371517263456874117327354863599789184636316869833794633993258765842173897672323168287161416886567724959955696497513767865999618455787352725959311537292567774566411672511719942929859592731156935895882867413559447376948298754273623826743661686819756438286553637744867215142964285766743652457434885643647372614661618889983858767754696276159954121185138957959278332613772462985423381498458397363644321399618569838121937383693183643593388487487763671692774288343484951689778287443469793327369377759999265972158383199642364562976995524362464899257846219245376616565485549597315268658341644491925752442448621965913388845588219116513843249176467585449975775723259554846854156479129276133748158441169627874232425337157648493545894477574874384991439159718958249196881272289429932932321674674771426472768813639727112184286899981221696966988827942283862914377241286116194639725375392959573855678728258927137236999338482228931895449296588714281867499342464354681777678636887668199157322351794375934366122715877775335411449348171132449361923599448544142493377783727814953145952572428959727754221261693694499287944168854545741942475381639146824236899343245438251285841216678655924695923238197953675675996963347881761377982548466622561114474116156395339276717689947171528731774596787263825186983375932567581246966136381478736559468199125624388469494368991198734798986464712161599459277278888117127462127143576544584458417223618733339768596943686919786561854955135827939966495775938156972153979667496618925795895834213762249178386553733247879685137597197815539242532531798666899317644121219478596225359738293784652477715669473193592175527764215831927246673674977725564549816848429663255835395142997751513751855735596642931256728877888417988991722285293395687743923763763982566545637753394246998635942551692363732612981174411837597213439838774634553443494987749836883566294253455121472599945616248496347827842794173282629928567435863885165828826697512945127978386488965889968843958957176158965589418933943179575137674172353135711889825371312554751626416227978154178119587967117488229364819143561991451882819451628773645717571645465819779546285247314679259227374947678788451249578833179156962714811223712969769184878942185723843277785235854655727833292181962939895119775521372145887855475848481198364996242156743159392868824371745516918578937468313937948766868577593818475896944818926362552371914827527725929137699268725656576699657718878518896586516444979597294887389263536167793361461346399264619829826863486139826789971747937391377194413952838327537621617175922915951584954439879638589569688372686268686657452781131534861614266625884211694672234855499598587343492895962561716392951854411867926565588211275479714267646238987417366667173897929428253859297474557567651916737489493963435855725516815288895311923862436684575778314972453174199634224894339552111858869861337482489426464839463562399697759694149217252448415586451186846894776261656183622498594725679987127566875787948253821789998212981576736489779578469389528575788869317635356141493954647677233749599847894895666285946422376615499928533891748932961675121752615173847963997266225598946627923367682781625557777121985585912713432463329774739454736216379497899912564998522547857639767144583965144549993436422142536912167755731773893392171786264667287233399843717383826115968954692132364995951353384925474191824869778857238368685495687552471876283494194999148644231431793824444675384982911625171199657279713943134674398845584492568264729559169258772255959191942246628529542766933281462529594795467673156865452468929734826225511176958854757323218611929537639411722294643562488433748726975392323977655688337615154833687577441195731264267415958154791534759855491625918125279614829554862489394969481869849354724955394161577284779994971783785589139751566348217195415499564542772382624499164249795424263549744118857744558183571989534196171347471815788153671769954411638278177822313672811863695952135953957121726916558527482217394143555931962945861517524341513221478419278125927993963799614952488335529528653243195642148624183571514166735368992839417619856476992333983533426552664937981646829215846559286764543737287729117293118849353279297223523147321543458466421445275825384728256277736441346398793437872147563522941716388895357416779317432717573186935894747791967793225683596122524884523354614422955677327736826272313511878633253482515153999286987751267499773868668647767115612139734125785117445229265695449889115219296875779295938726722717139618371588462479493529478864486967326361985685937847274771988675728275542658288497454633541418797637775183482342293774597757567872449617186676648645245237699573686891877786681891756156825212873789617494946878645268952936853436666522578829592964482791925519757514979198298454219691854973894762487288628534439244139778193338754563386419375451459945583653965982419495196998697326629813954879979655262213147397865471982471139976969283987349137669394551176518995899653296174389315678677263766954798491616517956459643211692678541794875888452184932119885261258828678418391645389876541759781321865266941536437678474673176139825143734171527474546716836691789917295743473853891549194726985268799911628722346845483171153716448971519578148287375453346288424317952128267133489819928179582883197969847912467593136184418439868221663198933354945987624167965985159215655284698717972525615796355777964918648145535878449273995576582745452126457555198615914279345185857178289282196172337661512444729887634733476268738313651739836876566323496362636391998625251829463248912676264925286964813562136678718576858552936616692964367846253173123213616579626773252542542671718688556378999354588286355947616766637594568114515589496826562942679898142762931717134366359847586851778376293629995456585767237216627298457924187468323873388978144545968323523496378243122575445419516734867135657457988986295199939959896565487645964515561512367146473263328319869793695978771623561756927154517463573689171939775777698825351921374337478194622371476244224347149459258354822987578147813948728613185215526883934624994938656555176595324182138385194768988859475277236985228127445822388555753723886344582362318633892343696816749368918581629543215642555383251449263963254882667563849698214372161429253672732959528181137414167448371937323626958899692687528524576639793447671453931281946597912322797541593852447573796691539587683489582849239315113168851674888576788596441656551617654814818618398797816199798552114388648835846293652546736219265985986795592552352668661168263828495191446562267613966697714474119987723426542168483587275582433828352478488465138242683976527619761697744546359724751373198765697997585519857686225533948225835661358662588474486263551211644697791962857123992784651674874214321628636824242353212883754138121364413728361966938212574423575157255863474426191748462271196578724354476147378442876757123912942866879868846569848993526869875368198124111894285884714851621845917131812527989517354329317545478558982976692779761257518565898467664398684826461852193439857799997368669111784549936137296545522449954955866844769832339739144639962948746985518591357788738446376141667535157113226356874861571661959876515632815175874431837341585178343963536177436338923139392176119364447967294829656114664773947775819196495961779281142316639329363686934317531264412468439286191518146525967543228579547493299264211692783811862834968279363636338627529589271228733974995937159852137553719712768138237717432337472317399745224623653273268192219887826981619679461871632867793258941794119272527727883561458234438952823244896729255678715413122315764786566164975842219173938346519629555965935838887378541545385578248764281375791231395847429796536263465463499928922529876815749399869181591999845165381532368596685778985769736318483196423576529766187919235139844156878963357461967289786167956324654344611838564488962748853623475652189562364115666469489993447863573596512147761716324774698814243584945388338578483585646829756979335164636489825711358193561344577698259371636575837879136875225293164565928965195889136982117488235643441467771856378989462715658864379353539473228126137544631148834471487364827728567759985367636619152237845851268533695283678356784395196758288131635684698855885647237956738321886854853583994689157587686688468825762698951489724876923524249616887511476394867891315568554141371791779445891484861138767965114689547751368698598854583176321741914582685718245743914394571754168233425988762445641936222814465141384921561835653976912734385822135552643285346686495268277111467278849248639334442197122397856191428792526976248447279917781989339185729885898472714645194268938243658218473183331638143774815279841957679976885633987996655959876928272775968851968993252534733717321766565853637281986451298837422569363772785586228921398867579982464368965884532521218345888947436351325552235945377841684895195419687724766254371723886856389827967934162293981598163679629887563672525397624696648356627278816653943761725237144982368899835594881139385455854884767583281472739948849333324444263529349296588219445523493764389853174351912728696843233175337921942816195867496887661187451523765478572248469461138289234587686628598748676788264944367933226142328924391295813731341544844579818614143266648936899135288293289627995993781149164289677524839877924148716472988355589779378429181777164644141783964838977944418529444859556764919471489771829165433222656732352824693127768827763347619875286535833587934533576268965363185942624979718789716339433953742884777415361276699425987824339496454187828389879142918126427274797119916834461456998831447314568227532518977721356173126891554193472798781398918976325568219984874188283617317464534331357845134572512856932275594825796533254347136866334255975816237567194154872821481887252127255251293442493359825383217149183745968528149754394355752461523554951786346889462337833157642934974746112976933788615725818734486953654919579922699335385435176244939741411748355797553382879948645314767271323891985775786576761717734533988571152381436978939835218999299775111653152366337773978571534542988782937567536688235819295518674653931911297786675526978483592937396453571653759898832118469658236382585478816966748137698522622531382445681933342352522181759577675786395187263495824744494263465337438455557582375763982256643412339282715532236153243819468399751415295939954878946625974632363893814645887217735127615173866456355849983336728979126879161442449864689314286774471471787789291835561878884476661794385879534313779595849643458617583533167497264588987348937284362682641463451938448264774181262669498822526487496438276557424358648248538141353396333374681553669656543553972499455359463674731252243713839223215342374846734769461143239954569355811386828389142666282556846987183859798366363885934919891222469794252142847118293711879445889984667693342443255171447198239735897766341614682446426952628134495661141211293476627824665667741554431953451485285979519186497517989573335172311377628461417811551117618651766874674654796875952878566467187512827949456889595367957966717574267567837959368233649879416942986123138632816481354761716286967578545346591717884429191974429415924664641295821935659651364683746978645147762749788181828531144144732824453912752787891729197863854857939397137725377127218372564579338382754536729243135576686712418711415728789168913721953594829332146856489785586297612849393588775388395458888923681185999799427589145574536188374118282729386258277114447541171298145231318616335279654365771891626261593251443254739497731857981277244894179831767782675751989952168633466362946694272688682966987243173957749999537919169593292694552259141931378613354113358964566932388955967426864572293467523454171737111239886438296535756474552238854283457621584953895631887186371981163749594798633342182439131678864851686217341141132364961717871649216237356842675935361814949891237584745861139381313114574282988253855631296284459561946735438689977221923236997853967653342789619837646319282692171696547775284642391581632388928957881211629767185885878699212814743376722247719652938937113639548133359672937163994554996495638287842742448899453116527549848985826832569477262388775219971662255541917692283148519956951774786691891411757763781991322762796652748724457474526768891518985583764579982582596998598493753215773482119744842235531963215316987964661979181866391581957684265869352579592469238583589833546491261239163473554871232694544483885687862129815154869648815764977973911524826371511751995661577784476666951668695451329598863337751121814689897452245928116962873342961976491967917387697516879336275911713265635824615175948953953543889741883473642153567296472125251644274653266934695572957298948729431585263776423331259157828387745315453948367367828739359193285211993837551451472552193875855229325482152576829622788194861863338679732495365598473791595697524482358312175281812761981733955237737664726571659895818815356147917839517956437588777362658474131983614896799613847418561937826193569398792693582516617256661762682856712782623156452685919612127325335525311681366244929488186819218267211732337781769356391678844862232247131663497456124451621424545927297376671353743787528426582585427746322556117476182218527514792814851464739367752799816544788198522716642253771695458394973841139542527277637862795776833222865498988272688467883174553675492937176919884322471931689384871694856417858688955352777534856717558114193467622746439894711119443884927726624343839628498184842474539822764564986656314558311966498479821775968911834758478755781985419118435268322916673937912419324216174356189126569348369816137168829934481692485239287914561671115595759973295868396286868538577797763624879177197488548224485328626885941579914151452823234648559448594488473177929994338321271591563146489994167629711614291439816131322422799683965583865887944596579779236383457196334562287364615146115364558962812437247265854476579649244547567385828168868559157276729196451156962847727347382642681128634429891812872346823218287914431929552653175218129926294987587899174798998977412173733522599277256823958925159363457467371586477257267992857334326617826959519736432967143921429536961332714457127719984922625743813267916366547569527346358623167722866281245955617647913562198758542862443928294648324743728219258171581678998934843751585244511417323376789167896525831145917733119428753131558928493453855665366417423563748452653152686625199736887724818476965586899398894867635761997353845791499987246627555495287362369659319819725989423827254755879217384787817775857963874519242868118222183837686841891886721295963475161849757498987181316981957924379692646861437648637966969795591725331183753815276892498657499685693631385936216147959154562659294488473444965416778445937572624782557564666643268273689926643951559918284141235368692256521569395352138921179215125711146292456993364393512324144666418724598338894696815877857563194768331768293124775983249522319218681388439435477598848441851684697654993493799366155945174143788198964457837763189541984614554996651857984659419835614478814878431911151139586254476536467163228266162942419963517512863224355654451846525178346611536686793757611213338289324764514593412756864299295953251729899952295326183219479446374758118939892989558252717422972494459983177979433827412768975499579963864861969473955316989138256794727979441269888483585591285561646188579391555865699764586548887226531568282475284571456883333159717368538366829159163475197485686933811622795415639991672422953621825569873719593964748331355453685795246188955714396949818941841987896877297213219729475978493197156782299486873523636772755818267955173569136891276682881816114234456941536141594868338467199441549615432574564258326779615144234624393995119686365655597373353679229878546943788841396598266461779769596471249357585847131515578724298155116666669851862489678874472385739762649367714232369376337924291857362462187886291774642624384218339227816121869995744937277336449487439837528671555938185745299292649877546339383236345558565751498388824452567958144566385827363644326856434343315374294691261883868567229821342862556268277198363554372138397137461964513884822972826911716227844511368846981443147749243272632264722995818295683189896881258578613192387878228863261194154621119343873564163117697883316623151125153615964776915898956965265643369483121314964399638813782998138546493442915593888634551573565328395848731213683116716897689648195497332544123365522169292684253981372799831622465838835435845971266536138231556639156876591935365398436183256368666291866695373793181397768783248952875739329585685568164489868192381345431561295127472718224925717575845444779625475136139977666862539298249387454384127384814993773598343339523149758556292744227116741944351345664758968458693929924718563831217473847983867495365286353842552653366674477729145652895179224159284284733393544329888169817515874965255827437256432792567857238796654332187843379676648576991415764175282384837579919483162773719139394654483468752973723952292226529719717183591682955524276325191862128647545697721223884188432996967743432975848966612296835358619728439383453678639364799218854757571333331499312358973378767355872618322686656446589539922982554165462886728837127715596366792124516912562974136656487249137226473646573328169371873821269912534276768794595255118659848153367217937354871999724677531661243179656665247756878949616883569344896565662768869734323375893993879876458976944989164691324612325791763252753925221483674296918938858199563838776575495973284833992952539156924654627462865954734338694452826684793332662579537219532142667768321677394395723428141949399858345454984635146616158758542172213864631791989258729492974497379815182189126366241728262725359645746162211389497724462533271996753669371958818991159291484276412952631361949367717591537323956854775896873522755585424449932672964282946776949698986978554838567315537331453648444161192513292622347476972663765986386747621676522686441823481979528682232397118536971643855196186623128358892116668463178765244521797549533875115562171575555998582242814841182488449371689361355837151773477164871149893129496686651192532156718886286343649691189298316137138886674359568425916945448727994249717685786676415885557642178813769768983258397429142211698444272493764447884756441883252972787936329223176564548924921832919112581333493652815772557853824812352963494181841327485913541241693359785691975797296663662563883894724541796852924462239888534727134512833396573937793844252673224145375168319836253535917736622932841772525173629146828141988636539351519988447586484855696998378774579975361899582695191875292264173993587767917567654786211619943917797747882679461387129611936863273799874635751975264247371366797282817156261693614854689298632943983281771733288541814615154851279199963886423957999588463659291385198265119964422991221857496637475495256275758639255152289958469134958947959237277493737456267376955181459889491868125818129686512394375952986777128192266442451884679466965547165435169279665372645256487552325548117249693845611638982684541469289174555658934625264357879929749844645293216943891276327896221647477375182615545392145653485712129352934888358165592685145625321228899661656139722567233419129192262463294337973873816485593281942178958681528643912252337948657835175657542713133687591317545199847629768248576916985585986686731258987136819355832886385751393452762681411476811637462498665798649178591617843467464649718792877576774238616898837548139633696199874315672682783993286815176852984898892165843854276713672646425957687569696869586181983577299344725391684539842341316313821281663531845943971168951514533325488728482339992187626267835665262338577877829392951427678563774564451723169788685691245484696444397719557995623698816792268448377386752729753549482616933951989184458161115312587273923649428355228679948547915167662699759426388256823739469358793458513913849489758358872797683992944347548619966999166982178195166646589986522667916498547768362277264527428861422519915498932844261532959987945275944725325391132128138454499999986723854219886548248291159143347259579424241125767679779243529554458859554126942433583251838374973988392334322716466451167727248937732455831534474938561664394281259653585793911746413472852874873661795938976798494647524115262268574421198125619685718719177488839959336543992624737922393657278786929477446551188982897885257561783287346875596625356544787489867687474398191886864848383467781765332483424331914122582773453938466894882878394156886688895128264462498283248244984664883619249998983492438819222263861865779996814476733825128429633697996951276887322745527897881811489274798139519857196292714476657367945552859836691178512116864297793554617275662941978496961635568387465538617515699461716619232715383221374366654472875399312158772647448258381616658161999914368215772312861344658557933454185773824211423773879298198233267461215132768515155253461276671688557619221945312719418872524697857866771112826248788454257642551572223266477137723417892913368965898371132666699824154261357688594941286677969869813776845486837333427678649985435172514226863749636146439426749159721383292477831818637425389515516768787746591171598278798378653746569343769623874448771724461774985366282473261584773362858112598213995677956597685341562457395439358419792972117977936871596139949929393829525857286671323834765219721292571476993265832132542472546592255629764835882453665331586653863964589853478752957176998776968234458948175361288167751149591534172438567825861389474733444862288362833693597398646351896122556253122482747156688153368957769587762165517544478155976269527917484245956148359563867466812915566173848475741164654575539546192447678927368492949326998429515141465671155269678265435735663667292395989511846126997222748333258643775431926618586626279924177393595777475944974334953418562185854394476685842289157465852732873796837912742591593929786625296221811563742856651619562481883577946759296232295822279688553737482455179354218333758876981964779693748192362629568383884249416568112686552795588561639547785664752477455326149694726275493894538332175882565218139199989636657418998542371589994717463481876128559462911737148719367164797275429634456996375852773725416445429638467197649379472742316915614675438658722886175653161385447177825891729771882183377962955597694736917844248821379793989773483877551178776397825899376413985494157546369234876355598286793477588692832692778165174651765567988649234314615766546427746186484935961879715894233555932635279228387144813868992297362452971455313918612414817839919228958591942795566548866427893985944352659355879443788175516398928577793666574989386919139918746598461186433552844266137352125874157793587781185589231216732753887786497884965537274537548629584915664547354868716164359896566186966462776316428645317897413815414393823887139828661244855948551897149975314696537214735383238678965532779472811452231274791982751114447592955379363941313564397813979113848995637885711875998316113732177853487838194684798181932322715715529839597461516762213257823649382265419159625386184618573363527996296728145673775385727543784861768453739551579545974148544748522951983684941174639889427531553767649511819767292628692717433275667663717917562116287875126233815388577545168917179791295796592338826676127495954997926143779121794524878879171245397725527255474633862223844552879359524634145264936734795777326463659922975766396472892382187322137917672212171799489684616344747796196189274914882915286655319653317953634827263568985137291475426736922853578983281367965791557734121769683993112945435629247339144769175754172261476649364629138423671539158254287414177874396858134225257151544614378452977955787861755283316594884597475239377713975473196958738464787517261273412868294627264534227737669834936852863936253384428368499259787266179836765776352464964529521466873197761152791739451538562545295637241193257147316197164361958481333882218911151767783296212378424758557435383592392156831876174476546898268734366144274443577554788591484357167967786963172568788419572112375822184757363667495953675311616492748542233368622752891296469238184961643721586598167944117714797873567387374798392277668279267361548692187311647688424799848422259384765948278221852937597752927614831567653227565629915162456395441589878841397268686627234386867869747582149773868775593419235854333244413337179139451222339672477993624252342321548153329277243753398484521773386798157484767251998483663124293868571262457752194349726842745778527641354766756866212583328335451232652416928953143164516556488611857717216862719696638514651521185171832122115278437368953984297488241786373929559187757964138377421878979617135123844112675576193718848234712398738894844847855713231685842185514721443767353227582683272922795538345188566936129172537687678483982542561669438681855494225776247376964612687836557292273893733769959965867992428576863942181316623544691124162575182277482683665925588994544354582625328649748352486336689662358186329248279745373865463699953669376287421974926987673279679938334731233776828883215543742891167178991249283224453284298186227299745153927464872951169464676976453588997583666657747778151163834438641365875493611476812182656599632181262363257441727522771958982788366375735158146132387337993199287917888964818548754466433514599412357716447729714362737353671815257291162355358649464917619679684844195861853215484576881549369384494655991755938893942796357332317683751462889479734755823183248253333932433248751166472251797962425972477444247384595796359761662575851192758942321646444625998163991989634744555177832475465594989573896266351837845732218311291229694786493345821486246144981786914926699522987856666416479987486623138726818614767935562586965844481594189757814891291215326682128743297947564197864838116657548793918921762227891319526575227483614981691471828352277776169694773995225834682588588111543929997384492383647938352667791579279137236137757419417682364595375665515261198897935821195977166618181914723177935981882658356536496393477344936135498449762847817936736129372722994565174347135984777793775728452575171523812835815795377527838548674175525844249962252523454774732861442995162891691858538191478846417821298591596272218175744765548173996797498214885998151742693161494762877433985484756641564622697135968678579765498345812975493159793249899493637212691551447252395357127271615718177333542753731656971892435111687197769217154972396893811937167225165645859981139831589663886933462555344558194946115629566951536383244142143287891522676194823329796226688115965319267245994448288125282782377291854561678992882889882472689629998256941643195831175633293686521797463467897484533136218719731631478396546275275752831188899968617985171136678536733211724115523924558469282637269168585842949497723288729478599917857468149957964262556744653245279142426545759862435843887451846481642222693837271613648781177656224449959347596369881564665831516895572727986554834457167881641367335114498712885168524486487994834726926448727263771741277226246453949645313552841196242434118831677797283982532384656971521364749116318628126824889915464841563669193543448558532756583197495952657319549249287641581478829856527312199117336559516164548596169793543929915131268176546656687529376383473555693812941833429625585132691383352623476339664395991488892943682852874678967644929869297521983536571993836141392448478217841191647777932513595443464986895747995366687442766775147643494698421745484445453977479559545387721718127376988192244927918634651173849439758126353159465287866989461476198851671863119668419837885133274635369421573379274494745513854761617918481559776329213553128823815744821366897747348349657586463458582341441831438752852677498582453518398495525765655925128374867747268356381157766511918355356636778636823488841529697867631428963237615274525951913958385415327539472378729276998783259113954357767161578148295985555118738264996511783832855733263622637359422851169898688982683585555163554868887351689252844631388436549423383746287259878298473148435346488895862389361124572286599411568266658427873222968459266328472276434764694563841558463699464561567448797518236718871563992799811476958556773795374537584927197642454234937999896497994797137251673844537386289572816919388918889298473518565894798387518848573482284261852176633381758526172985242786787559414142644527292975157498137844562122117747261177661486536475648618357153899415876338384392616276539826986286369166769259891257528748535443327515293697415274687163978438737772221972739886166885523969638271824999546989191556354584227923333436653971727957937829546486653898175754844518346979279666529116238541788516434523645367384637278395582919399724546225868442195617293912752943543594268356535637859947178575544686849228119446412891239919375562949258931391211363264586865748892171776863658339499818771745528675975177193227366463632996386866878361888199659889633114931877526938911428682455184981313257526942688262825488718146459974413732637949259573661498553741291511647387157154394866865444279981546515939149236692919117442715964614543676883568674235946954457924166623857233364253388762341594668831993677141254293234348461358186527712563323338516743151861695197989663151235668622859117984328583583868731211247765981549152617787783857841775437971947351954568343895549421454819858479388525211342637146769373887414943938466499783655199248416652944484388711351222824967758383496797942322925381457279483482512651327592943584573897142742689327131976788891547769842592952484528142188241574658261244858873958483832467834773728621912944558177628522343718178789669842962144256987531223773868385722588743963998571672434923391659356626815839769437991391735654181428252644652292337777949216543933987958531696579873921357176147567443269822683413489524557294787131881993619733332396227227918545493586981562858283728739873163468242325416817562336215116585889588795564687369873478378863341353377241427916586293354866689748721782435472387453314546742295541888959393173625549985288394392365751759531586747545945492714527631765766889733371689915679857379867138211497458192234939228395323361699396125951629182248766836319489173242946832236276892938784752756376399119831639534751877731638719942127486613228172264782775548556338556757839527638884957623118956344488486235579154882642594466642545621782515863658797767717229493286232465617563498949898876492626372846354858699715317729799235947127249349784544912468999571563392441736993831497166728847524727417187598573322332791162525322595713676213374331919167161973727435438498983266962866227545812538114896555389654859221684626696754995273593887547346765435885125514529189184858775754225992323985371898869914964876873331147643361758534474123246926864372917377992672232692658185299984187436427231696638915362315154447856787843213529552678459515268998529359439727777791575154998753989961785987152223821677561834452154474698172221882841899679998938156685646555754128185983296199272965753186971757158689731898432898717465261912781884144215436556516671565617569141539813574497635158253157765571634993514455828312979664458594781436733264684745188291384267297146872677241636457232831274799717694552158697959434185623874275544246687657913935598114196814595986422756987381824552213363897215967173894937894481697194929446869985467611287584739252194563433915546773942647321867982978662464527269637857599359973336764763244582476886748911731275488897957413984836418768868748822158628385759611528288969177138546723911134671573346968964337579141289824599381571413473962625415213436489252417679544633777233969769999318225815375282183158875332698914443346433869738267795792266363843371625293619428365662635995873964792868535884863649716252945865991644168959455518559723598857232996361599738747991447632221386511978778271465773419634769979244691489689899665123473995646139971676454273255177363989887855165559879853717359783559825922825313163751576726935959172376721569259246999688969211175914353913934654865414711758764881833469675943488838977767318893919679337271392871376981698381545895314497578574994399932419228486153625628529222736581449442942171179869739791774682255433618535919194623445178849677772726234727936778897338532612549994557986536475779472163248841225833541451976215651656314381284435123953879684587325145571528542586494494521751345188886313557784958742658535484133633354486193236372495333797524688284676733243952966756378496111527466252892349173632799688378985854666859295381954949123478876167154496438566352733351773946748395685353791622535372594414597818252149413578856443584918258192321517866562316356672179218843725794748922462116784692739884659844751143563864629199844611567949549754136482116958487961538539422826787798722927765568851664379323196227679278553287247394828331152666623652777758867626846881998662377681228252289551859791472453136973476869288844744949831638739512764884826285717734467758162566752291941922339985376718274543668836963391985712324637941444954846396694233545646315713636582448847289397396121539877922741924486865173922193864715655976978868145179642521962661337114514983361251484479843267792317748494241476487837431187844483929867289618951874334596546437414311684257511516982974294292769657469338464653624276979739585595833414123738566398468551756182635667899516317437718658964555639464617957965433997125466378463391413984288649669865792194437769168981977692529537581989675827189134699757813892785426348498214124979817225443527964256824865599788967531997752829244687828899434845733173761748794493754567619937391657188424781762796331784584959951895262616789354534133324222245368764716879483748311569999851631387782342151638167382493337717144964255959292149811799817954743572817839499584978483619629987231225932475786226738874847653632738841387646951277314774419918241576552866233911159147688645611549226289511782534365216715495798715399152544957586139541685985997751315818465689342716356717679934229244398627859786129896818345955751447926638463334967959789872921544359561679498811485143212616769845477293846962723115826912151514316792599895974995128466878875529165567184744174363364365674242627466186871578928293251926526688378179487941639431923137818348522555429438882263444737624133154559844117228823536817782816264927134347544799575666513367981716963845988488483777756679349516444693654696687582249412623788488511563793125611642995881889999286267128531863488984615784396583378177939981924187528578632475823273775898413973633978498926799674832861997991842786685482181923242813292769134936286685735418163267848539964697712431786777871899837997927932793962116576623369943925884138672429216739154439367592813249547166863673278341489692767291188545258451434753239882917493758938788725915617338658287677666934924341599441137668245324969736713749328785436532479134484863674856877392898728331388932657389651455273823579531246985939378672677492751846219285263427472596992675648557957198411442724955551789917897623416429245972286371819645832165973413826398673269321311835876281257373538249444232779571433584577969424492641998739218781557861692886829496987243166411317966986665223111359855577762861142747845453696449847774248534948873736883586269594649899717939536388624814332284847552391786495237398918815788242632239582574259258739311288672189776756484898827683849336275332111627533358314978695183791564353997865746937134128879913154628558952726985752554378789748428682743575655822975658984532771853856796667833975398719896595718775914683213498716329394119198577157864886916129769458124148314662411774542181261867893375832772777714992981753555869997291924479475751129455743494682745494959118454742767754815612633941999454145625573834558689267573823966697936733986236476428996667711661932926544921468612868383768629238996192896663682758839452151456941169964467735656131476459943351233983569867373275812198554962664431884998734529883221629947835178515763389226712546242872916947679887872862318521526164122382726784136469718814921533678225311247989445695942963714537216349539612574468378144927338959239575845136699178537875975119535923685491736552359815581314925321771654571833481392275725596677286564328119289965976562642992839112658565473287879485389281712462632296747716375593395591729954852616525757941864459371321161467161976575198877996529766155296132612662399116486467623883291881838194276146764556197399922256989974771456742561523775895593482943267196845541833186744491775988675547787998524678793754933835855374386685287423498735377471553383958376153579293226591116937369352151145138481614944369573268886771437979145356398496464893712683196419238763551682561864877763675163999511351171517987381244688876138387543264546995463835815645194487977638517664294632914468177388553578568665387936981686449743175541995684717955272586294657658321877797527557694827996895651287958269865927896138817736647879295558361675478446116982664317878911524555385175351547477321698715271688956677682313538424785466677799615655935728319474149241662478272375535535487752993726266127315942334283718162671577949948131957592677251993481489437293161292638636531393828854477934549369123512661918383879374881769257355879368565978475952456923772322967383143833185374476313453412995694153957419734534518417226478548464285437511353164331785857643562779951962177241365116965571757554661514925941481837784254789629732231726243728564142634685681265394776267588719468194492946336859921268957373737529928978254587758282321669458647255748758597821643684898383442552777896875425998338687149349697581858956755235255428326262589897742996779835234322698495219175172427246489374824911835495711839545257644632453628411237919178523488651956523958718275882463487361378245744656228472986566349655576693344268239222991333817257587259413674773348525835867917296477926447371568815584191256972589989299656526933425298121695956264915775184565934488948136138394423484748181837411865923626988564348549998596424488634417753472396591788448886174877594619891765687519794745923259855247754766739184927675643727988925581232291346953195518751728997467464755914943629794861797673227372413858286945761298796419895823621511497789972722217696972362728231585925331837933913693996238892227542922852979441966884873684648876988461987456131216694272754183597733382125427276683886877336746963839571778759795692857551127214761744461826247953219818764478283335633729513695772958166924134934913249821948842825898446329821248356549614692665579422477388233297978121575146371194863199329921175812827422698834394717621615815757357861242877364473348968415912734382443854578595884736441339797779398671145454973416611237784792471191464992877792786922478611512582294955924859672743947112262786425398788111416598879842518949714592316233766441621276577999814893964294539959748793918913256561663329733512265832113963922344241799686545318999238565614447317759452937445982963596747867588574624685129657515897574976853569158648974318682977814822783953854311887394998731546379643983998441735937294226611132577632747932696826284161561379436666967721687724122472367434768145975246726663411868121376733822714433298455273682655885314372978693182591874591789293363475259679527434999359465946886754946814697791495964111152591457365745512922456363742681562574879671454587419927524487425289279495291933827273862716935522846856856296143151448442737874292876683428346778158337671496395537358554259972261989544376587215873561626543285315339135176951497141539389152414179842982485541472145379466799687777372755269736637452521337656316699254714397566768428635326977669667996638516653672824297168618596638428857563163388297235574819547421974291933694647144927645886699193989333889753571373536927516867771761398737734133813231424183411688767454345153598799687439499293289341985431662359781174696899314271671896684391246696671575837451754995661317982559335296351272232751167979376757956788629427388426653444313771936157135487549988897831421711636564125995425527453114793527728554967375926913363687424375266377562439233919859622986681711618561839369771558568583225755444377383639164646364842294598648681817434651557927848171725255448942182274224339177739668537197872462324326888646722399786796226976291816346737997735387219326644393113939221311276522933179468285485214213945948444194348919595641923634887961152239361163263132963877395114473767319275834958597881149887765377559891528295596768929393694511869154668765182137338392983459552661389694391291849488885533895853658113299346755883591537515945494149384859911146577562294145678668678411988132296356675283762481823791992623324939989671966344752381782829691986988567245756332531773233778698224517384665559627927198329388919649835199948552765221282794591269219485622586174398542813391289726566759291697689481739113779993867849641769995439668433935461551138261746993177625243628677693186616769873982346653226592269154755495412278993391346419957485145557471939419182363945944376436884391259562856195874464857594859163429693498149426817487459384129949389489787683965875826975845444364698648947962739212151277154782325485993734519629138414817233547898312928695277982987853334629838456516869798656878984933679628821863496632963528967181866196548579437888538173848875963761366138371776425814275338416555199817766885728886719972959142715835924223537149683772384172913871386254217412921944248287456536781864472491677434775495763626181415961124575821467193822952348795685723342228535317189229972921657629148133357314139522241399788637268912687693471149524271919723218258267313378716793284244745756662814913199922866758888593548812598477149492292848277598738413896658391548591516529141259669777548976196387745668782772689454566492985478683859384165321376359884634257364275288937355149315276454591469256343361454854254842933536368851999191274521246977925815685436324379811736835818735992641558468654119168788944327358931439557841172786826427922744555837775546953491624776562862886758297135623992684221118428329948534491276429657654978313576619216769494662475711818231594238844574392581432788321197593825328892974578568869591467398399867596275389324349478126687548342762767235562653678364429995557382548834783266387685328599612994647254667283716878234998323419165941631643865798948286217564289248838617274172448755581597726673771287116298358459928127968986184423957149536926585681857371331652972646196666695831186146656855858369392976499957816217955876349748131853711858385816732413995269857768326857864353895657362639137596745885194441899882686211782125725823849185827614163156634872431212953765761729157493136218593747123652317519922388282835897155219981879588723359127439565276559188468748777217121445632943694345511678214896162992127988645373273429738595451568862578913914882972623421439234155555584431961158555333681568556787716592361842745891634577389326827991246686489616213788276713784666428334758634393862153799833515557735321436858868776553291463923223788418373587366751899283219296998181319987251342365558466212749324146717372594129627814533917444129967582375745116583846547569494172439761975469116559382926756764148944919176188443657853471934542276139413286815999791387849389339925837569351889466883823363851967919878261722936674437716362457456613287119793168979368969413954641773865782545841665593538995713345821713679843442827614378872768214144491794546931274884815376386632395452227793835186157193932735852375672318933483914597179179846849479274462765589848635957339368364572967753965948178591835113633459845595252715527684524958175919979251789282326367685351395157298313128188897863296574523648795754488646262978211753454272149942627198694988776477287184195957451282296182975361981258488255815361994596668527874747568556272332357511435996657247512293936569718623344726818151996818583492129927417772144266595637138424371841199111195844919173549529622283983163695558481134388647432316696193393489342777119178154152467989841756699467754565899795317585379437717129371941678765576496829892495921524372865851735765216278682722729295272246559111762661419985936181669933886818795791596474166569347774147133456914689131621716615545392145885687157956348926856938669751512728595666577197292592142466628863946818854183671266288715979932337326739431944888754187983529669367517222221856788819664836996845583258525872534533766529814583766864879638483711265238679948448961274449522314844646289877553821243784372212789936476184397398615616225773936149754537394867451365634857584775898323457146431214153947139299364632555482454268839545717796667115421653651866556996284367254459248812933367688113211652795532251441641393159972923264197634334877536673645348483436787646734959372247997328335995288239927652268959374898766684234555917355468489475196271197798598138793326698186261917641923933315272362635919997172487516889361464987548498217511259871155169257437438478484829588418551185197513248385971268769375772749546712889571744367958344482684939782525841695523935116725958866165637987382599235964162361288569726491731383648979782615321489662731883919142914513534744784754634462384825763228694694273799116979126887424425465921295957817283521967837923892559887787994125456937926568167539225587745469728416318235396138119238176664779945499595783213362527563337974317762719164947298944454858945948825198719436188883655192398352947694977644483357399172799963459871581765982735819599295243337544876483659855663896628914687812348678341824986492853635363153441519732961359268749945989579155689365784655388948769219959515595169227815849877569763753491769231349184879358485887857981373198948954839267216388392192268485561464236391912439146622423632939543546987276168356967271728512331192462665861868221356637556256673776485226339643721983854395287376439595614233243944487879912561682814717591791268588879965136746462881185869739946464797971342148885428854498698815965116185694746314147698951448542957788227745943545476494813685935974934286787364253315675863558867128489393784252478867548291626712675729153264111641653639612737645158271353351631299341929593464996755695664328452949113269217557747559273659136487673169344761484512453875895876797953586864344665638564293154851927284965844437843364863362518481845846424268634376478883419312429368485779657734453994229765982668252638339879764851959226768284829628413553336318573637184397863965915563736579146257264839966626161198684525644932441592969664451987197256835552774938972738988586612839811343712275368928333489737641574423157445699128164774575889153233146654429256325923871378874815529275511992625995969717199293257499417714913532811164953744456116917948469348288819661937155128672511993597972364323996446127564477843172457849486312752757489122762248142749628338387179582714721766457467432989397111657915536221544569413887681358546713658188174588137266214889365916481677462255379846884962919149976426477224743739627322689962882939764668672734753533718959267485585881789237758262576575995893391215962825586598412276132963368856255185516557938357363724697665999448819151845884324771148799982542857116848738383556954763853743593338948675596878621872894778383141531713666439894714581257749115887696819292289421434933165796218852141742157262859653882221938478926417562218388693633582612896794313419668974441377615866213756713336439722859244867913194299932162618861194877678771331542786169121873261849594539445868564974873216972845496424357564258845932557936875797613292664736512874286528886152617559692336328645482327568878968682322793662374459568541434139271444511532226892523696989185524932933617876969166927413755423987663521679767994641185234931327791558433927116365127716176795584964267984611699831992825933535262739996377957499174264726866491456131163879826664289314245841232251719151784373827539126627769851549598847484935171255265197748346153186679837373386381368774835299457872845826375293528922599668983634214443597586763895992964869616548414384674657826998626953265453387184711485464738945313754162181286645245698595123518687553889957277285323789569341595321648131424844641473455635344336838376728287151357941888572388924578333834179637671751946568742653559379751488535614456597769796274531772343539472693529372825721131984463311349649729597865653851616234119298928119581766469331387483194445616652369531739362581837468962674214465878485773691683119134637188791932495824472296311976159862584598664342893637947424932663398212469864173433778322839261599626792812352249468846968813321836894359491456728348799157263158862698374652747581998599762475574677797557534838882512677293747287671711396573517841516497627897758845499544771152627771972889478675645525545635311566871344964865591258384918468763485641868719844149413694865429415471223942176119417592756225434389617639788378129579684236429956369247641556343783649311543833698175311938884137896282877464394614577835855133862961177853519449322881827749746323336549562265851277367396377381887887234595328284125469373992448886934229612867153538595825582652796994718663596794951752584554444386992972854473886867331735934917589653667967612297719215324757852738482993277631138493545331967341551429377895435844287917549548588329498999729995154518466716514354887573564433213111113639142471478418321313596596847715442769638279729539156847135867277271225837793824738577874955627291525622935873489935588364984452173225377958899677243839657234988699718361167846214539565389873924433966788287195672167437371224311545876679426629766654629685462254955716658937773341467382474542129883349467462259825751286537749266131534954686964973125568299783634926482438134219978331152993823634953952111569855991576294129987571939188747822794645986916161742383764819885729491966628899384643573287393973273754749566199121484596545319493677173616476164688663786988982413567768297227586911317343879927319525389833522519371967184981345896333834834253825653671242444651275571917516177523369119777819469887489395436833942998134553876532524576369471547288686795335882354775731876976786723118748972838111637144737535528547754284883386775549173461752146136751956395668348765279784938686695723635555811884173179847868919313653834838285388499351444986471984399999179938416522811781799146659348851968371854637671745819347751584853575737188272436653418717273694937676627636229434711488449541913734663653862454889242885694878459441792198227896351553649549636894438821593696797993757297768314747386655787945216787393638996719684151327657312849988924233219144779876215233919767753766785291478798512377897922766487595392352495656797675398124732553869921931279273831149611852511285427243565852548449954991735631789949676173964944374556311654318517859588989118115655582457639915292615882982459982717777669739579977612369215696556561471225937445357763314457355559323781928286714822881513677623253265686754978385243863398419559693519115725363548784662525757891771615376312829966147523382519587846478184668471971833172988772691985352348993368131422691678916954676785278777355972486382857971289248389715939779611711898897527159897646698192875737588461461632242451568954339794924964946566921293531469289799457548321578749363727394438462882535273767562248434962263423946473149747459633867991613987558898987515643998432954781919781749498548444944566263524352384122711349321569685349896138882936726241861873254551925576799573164644837397832293935342494849185898852673684543431222412851231228947324489889277662456913465126539272417299139234163124442584779294945118134442824914655888812652138538367442455231272659314376987247665678581871976978515756511272512489426415335375782245446271262495116468829375314218945626486166788816344725358841849569116417281536184666118121655417942374234397585124738596176254295447346124112871819751993739734863258767598361178894797759743491956456672514899624193467545399347679871965224353799364797453264686765448245226638878828939428529642399137636667463812571849816787411799641988272689348453278392435711339275794772624828113498353127276678177747422476834467874958161481174743935414977728913823746122599835762957734251788734893157284587775187292227359786279137721816633791795364244171632615353794866376357734713246584494897425984687554182257396586754963289411416785656372262579819297636961976774599669847177264185873686129818467879757796199878865279122627814736233687636195475955759338815163968779383772898345329588373473774973136169693929415479467914144781492731338136968889951779884486791236284765595839897941295555594337625134633724962753443499881799966998758915281952651739911283773564979775114126624158399884291962171756465941725217741931737143998564127415239594832191215237558355775239329361883176138494646623377362644959113673374911948943843284311894767664572424831257474768761735223698531328428198692953589769377927448613136352247779451862716665951923317991933111332432991959333553526623871461128395793952876598123325252151116716354872432967923681673157497962548762883787836563656613147714592769233576241342117736595766675883489964721973546148282847238384615178296678454261857693884585157632186893341641768297976773255883674655276477337467542198424416891261688446646291585198988576293746973329969373588738583197628844188637725748285927433377852414297676434786362532996778532712857329149266797999261254614919675936282115862545844922465152312786998231928248468743755324649699116473222144494773857482597697842976691745572178744764277978931899339982348893758726814456291962383276313966735794572619672689874537771739749123277834721152512796838248864529469866713171322652666646858799586943242397411493169311174447743315566789682838767975221568134782165872399777293177539819596633789917529488756827499527143296417189858394679946224817289657379953276623994174986696626743597695722282464498328928853815487549677982371745686296283631645844123921935657895875674775869689222182933981475295944413869947555382318297978561963955596959566391359893247176498467777947867943418688546193144276969131999593374483865871751334989748488387494297271454445246155948935754377378686241315114887534971667616594344457859628274896269863821493585936462738559583361252984615716986489499435782388955958683646699726547656715752254566468532753323874341975833257929236442619454387395641342915913182251947546536647715899553654835852139754758398727785635749318889346885428393663399218386765894149437568815949915575879918124445437425823427176747854767155799171555227598982512874492593211248673342997468519496977856849198713749818528252393747965287578452749243922785196558764967779376349164375336124297289911345872974815259861494919398576291571667749651963691582197672428457327654551113597244337761796633399964466525432221933215996426796922762572386889894177658159979434937828299432433392412387664985119281179963567851499397662489739251328468492464171168436898977693176298682595922992788268716484645383382984142498999821766978898421919641288177978529739612732866613419221294367965284381546878224663854173971593777841497697645583317966168131329387358787619773663338884368728684184727497561778188652989861921241999291744714394469298481684816696826717436862614795279642499525882522957386621583756118943166774252549754517566913438917382679415856498139537627718466334424713743327824791942782139157825457715389856482317793335727124648935685638498773683815768971726214863947375248987577888259439641892323889689388711427415196434529612987736357997348749993683758688598586153861822552868613771929271394956749753479885128495233628791147247236914441242442154123883594416295941575548352688999629555468152365547432772942397253848961551916698738282679896185465471172716791292689224228184426821881676254875299848777897194318361197165812751945273129299651834841965342147627846336598168443227718815476433578362411732838632589528863529447594479934562785999894442663989129329132375842822757441432365298758393523865937865437849129817736939695775598248477465245278421353189778596715164986644241453215171886487758753728693887334213732388285349737488478716641289467186554598771937477864454199926766481784127448822529717713868125189522276358862263459779157428582784156128825486695613635388168479594181597794762215288918385248169866371915499694667527987257276956753839957738348989831133742138259421759287843976632956765738986559419189796554851928661345311972579319586537884936213435398598665839351477513273865489833979965683629561493175417681187176268628893142579226477685945891939828448537234781256395832831535514527712298427713983146447351972958424656173265848947932947886649771188224662448994666153597867667534728812473287671969114199718383963933741375113716482544828978654966212577659458675232279945853796266657941817875994732366264669888447967563498756528268335865248894516288642177189527575264276547818687287423339789962512772514686258786476793639613929359422292626311373251389945415634931527448558782798825184837342548277198997966889849517667987429445847187489366879192121392761928164382668692479546568266128142356333526344665641142542325638284944861952747923196935296955873712572599752312188636658578445249484568159774285461911425963746555352597943255712626113658719286523859749694138631195537447957191766872345888313348549453178157315988273813263337773256786986654259314739621559767481152323662252562868132152456288612479545465287683848377945966371913737584252749424673654699525821238277192553574548645276916159479984159922465475259377554861719319441572539515466931596394356494387524789573332331831899467362743752195558514435394699447737873775867458442548778369698332896667231534121613963954864331695784695476689579389886347651851839696819341798695659993823478856838716766593639129774262433324259858943239666599448222295354176855599852242525684158983568233383279879792487283141848815778255612631112349782652474466731926435577338688759676917339634117883511756695923774497465885234469877632788452817838812764225299189222857625735676156398344812651244594333227757794882944729276983563589291499791335666416213711852714971433639752847652874283518937167243452366455291541983995316973533965787784378829479995563827363552143722974394718185978256793773961457919983962874532887554691961791398739353463474298988764266153218878257349926489273954151832889782354667713966721827159898887345921713635878435493381476923731544364129889391629954691472465918617889412256739318345276253279911319212548618237874954288854569584499646661689477429547113683647469287557247281184881447783549783614289917398986462873626653249714817264549473573642788646679854979714445387372215847934993554835539987196678973513954768734727463398199598786686569426865121677345336985894394597632918778512772614327569182812381683445877777476178411251377736277222775526219511644718368885696751821638977884976259561348861348217398365665654955977348337897318489461672174688347273866299489565439868595325867268549125326367971833631921924918523362974222639667312756872716271719521424414567173468216561545697289348938992312596784735484859616788639889675437175198129374597153992775829943525721759941744633146923828729849444557961449329937797262845286852848377293921531268952823999584658229765382394659698843936294665951854996985836965963564295894384776387882548198538955625113829267476135281279266926177589284971397615499165767487916448549725557951145789679748885694883278294819238879533858329363818766498145528482829431756248712567456646815661664662899754292878794455118644757255599726911144475318823856165871542135791836249841558639332632227237453996685163957146123455735695472175836537939727177532934998535231369764817935592759573445165999317629379776486883826773915843359666576734279136752599663216759485244295954658178972195552726976238543238225915419691861874599391786496113829231169896414671744574261459797796959539877979385177568298454176651257615788847941542525977179225771176367634357211861866922635247794339861868272316729639858257987431887959488376544378912383317895288975376469467566959547169941584366479732524559549284421972475479552931871215859244178556761282858171392394764512848484238681827626774175112628955289294325995965637841899587836258541842783989663273444671782381784993515134839768183181541449861127829783579389588256116888313621791286535347429386758287135644455193529859574958168549816928784648127354322216792932222532772125179336893447593819786746225714253853121736834421326479372638765925135348246357514895557765814376351178493122219546388751557845739368668884639977713386697624875958494915151257716769789519582838765497986281869917487315535271621485358219963523998515939862773541144737515628821268423228997584199684571143965462526187948231129567255671336652149143768978297611677819885883413526596739941237275176991579215583796393833816829591793499813223796888597483737266993594439637186765674611735943692798474438358892672183369499878494344887177166792386988734944486373923231934936543836967889743314535175839295845134564453967261454766963282938685616568967748956771914538253225416212545311677766278493831377644571924668799547892151962976762335692299689312273886642568766482424574798921653729641138867793569841537966813112817129869962524974688517439465796214667435536534379844793718332654117113624737941467649845569983487535765419181832131552246599276474244612183422858334251196576569674644213743235526862115599212934968713973764737851372111823731994238253228481738233756873732715233659299688692987274634175837449366952612597826177422851173823738459599589345897425796487388851434993478431846318114886595326938339938239973118146612571285571191577719991355643944974494572284231281631212217798761322512226686637484247858869545679773245449852899559877653196571498446167213684224422425613858241892189612756626434874447989238612425569287585678218646594157843331458435351648733914461511129395899213315593356552998838879261534822996184412377135398426593528546673487518199484541555925495725296354355659229158891398588964981988431385475187734226725293352983666355526838443355738651511292961253728141457144879825753568669666772993371815187698498476549391563895688555454274286732614253794749621629471554685391355965138897159992156618275644516186895355385821188766958699249247244143267845356727242712163717398696428819795678686443838788356795747275566899721215769398336758789895524525197381133277499647385414598947945831942685819478686479286528489221767791875723159568212882673342954413145529382773797117934978441227284627539238353899388629382359545567465278724789516767214487458136869169299687272293683635115812962451197673734826872655812857238382316193751261147562444839917889499655564937596278111868776517293353517874921675515133613939676736436221615536336785158985485248939142671557964735669952181965333859532534598883536856141322424319924236615212734269142226459895944756534751798964654583939417637588881559746186886279854559326298676223344334413798141126682497568776885648379526514657114746673945539447825557139788855162165279929791929893834425193584157984894475329221457557925434543655565894165587942431811529616864191613338244961777265935678955348925593127826519365416962932448748158212118635672993371512925331878995966284389526839668291198297286587327957696652933917177891423933792945266273224673697968999574197411966589786438774618766174419449699624238191199785795159881469753836469966484232944113539189832871369741597814474944759564417821597573458432298737824131787475316317993857775318344385632591472369641738214373181545733749265725229524139416374165238162839925462158796337159794429452597628541598687925936963387441554282695517559423772612594121426862948773916499582569913149172621484773951521879442643287811397418993417226326794998785574626399419767754859122182758525742757639293351653925212355775921518794222543477924437734313785657723268599923338233643856716141395517821981418245746354536548881898724697443467984836783132484533494643831951993819928278178519151391982547421672226341948584432172699773769844936459945972537398425262493695682931579937665848755598575444332455215353415536855936876549613493997513991577737443696594785581387536284488689225593625841859275735514376975373934297832288646758374335675355167965261238286638984288138126643447319857328841799975364739629817746211979555524698653811281419136475366571291723894385519763959822565471175837767493496219588635774782813885838553685914832251148448418745891459266368469455537865878714472152331979352649696628773394762835428956463131531742971613537943688759538941488443811651891151464381665878874774348551478937266547748235422175798672728478856171665491264767674933838626972118362539982794432576633683498258564843931589746718777966973826896317772755545193673472238652137646797393491817979475345215881468139877491866155373897353982836328673515323779881149852368474933674914512747665935479639683446665137394855662779878323783645151234628181233687252787345461715786888438781568463126756381674195646292239439389412124448426375657372924919778785876297917249221468289548558584754873889867949963893385642966739546168844265745558511652625965533646868243796258215857223429942691159683185458441176844727879835359396535617557282476379529377963586821257233834372299834963423995248132244852729597362846969226916331553254631457661337535245351926754655365857423794775327567277767491597368853254793442228156879421759467251958355966112395591629475653374984286628765662411349978253858595941135696559189859956281831362643342724796965793351524347226122457988513598688469864114981264961882287856926267831457344399798285876677242214493317873154513398685549839674181722496423726915173999639235787256339535347234176232932726196637215961828699715634372696263335359513578669973746671864556759476125559354686221552277381918324246128245999448914298745173373293271597327275399155647824612541638288845333737459486929179242442767967947413429663352335183943337525424642456167822554287955731256846795557375899879395213634633478481877313355229544991427949198574589274735237738682994525824192932947737356879486988577191477672363546197623448148477768595522383783689449971173817219579311579341929529867541868217114618294835846412585765498293546458965862557286528559869397982763368745556714373332297984519619878437658697551675883634154337839199734998839489686197727538758378851776718651267967547775871264338134921597761384562843777188337637789512452835952182372436425385892433946173217483851553993379862184245344981678456796786886839947167687445123191314994736116632182981672967481987414519637494631323684931771887324914771437463763316746795875936575797122973183893668621799277822828226968384488881876991836863613292167515654749328473362949122995166523799771427538365955152644881781349277275663391395636823445652644573187912161684867989864134296558694867424258952437946946346379125591947764716984267358127499491481225658645782452462454417874364863286557512976475246853671735548419159188178785627648363881518679247171732293852967746191654662547574386623395294496259435982748481185968631886268967152547558358571521889853492971925322775257635867181761616413617396611157248192896374777138364179417737827843849141421264961844928254739891917387354896331926967786976987141256511769477359734859635454142342231995265578855822457578482232489673766843446682548259186236879939588467115647494678216614623299537144229119947579564782818674735449292995991918511442897997118133468398368715793226447283239889861218252487285988333522731511719358839498374286638829134891771716544911655671957263953815383381114714145915574978363378741138825323455467294157228724587437389168419582629123986744454879589879727585174219682269854243458855994362764451573397641644312133799223774767298368526192826538782936993765364146194511823335691638725396212532762139898578225842837555522576361285946215495238928113854937526288192812881985758115779672423339771369569594821637339545698511142624941115853738485997755353789849774147426328699367512563392395396459828671448239389836431967831882944274358922569381148173663821877359753686248893299214886262574493938749488722768545836314361129397957957455115367748221226617815516249471971783343886936662666976942371464394823555792388375446524887369398897922491798564362978924232859674958697489915179288522749973183269154931586123985255988978628397256173451934579793491683124753576964733573878666859286834157495126988678272181519239216558185955559445913448255627826582694235525882458929833477997363524889282646479863595928494211123871956673383171149881221622899929676842937765368279296255575728284147139565244446196186888237962285743812595635489459547156541372359816157874397776818828831687197895426857679375834866247597914125735389477269469237554639168768427522545154273938377875932773648149868393273449318286871317789738572969717786386947683492376792386856749338359588348687186794953546937399893915666857188467963516868758955284673661172637215496745686559163989892226638682437678747561721991241984225422763372762882237637657676933825816337336848196818291122629318483651665417583594831757428852259823519743859938891569916449963779688994994721489572639332763577693546758864395463787745585928785612959327346495434871449248295171587444645358758587797846258994553532972757842248876974852722193574698416461635977736289471556595185614574196976941488936386944381182837556125873541369235683155185664728375644451643122857576419815626389555338258166799462952782192391293334425555686123579113262853696689376821545571916224624972156416863581934863553858981983323976979469935989189771586699689175421495353254819192947948221442443782683534899587916249167411493132483156894321361576388284343878894674484611513946172256268448486466163349851855488526151463511865447849971794669776663698249925766411484951435948661728141353978975325561698559327979289472858749787527686676977555842629694574184623249699469257415333644544692337359666752442845636369173329961578382555898545669728715633298658312675373388423343796358856954281865267352612386773994145118499498466924168533796493684689634799674643434559869623845494574435434432157697121651872276878931689752392859932888379689272399373827556261146356437518967893555172771543538682918858322911589726841823741975983795114323686325119561544924235258971639539896622563643329592897241143974356446162461278689777936467424155769414575313661293283553299951842345489943185824219396276831431862992293612543963935827451384761681258475231244841339619699987258565972426778769962319945895198595192926355741416874426388196828747961987738962322996886868254738846168657248976634723812895399114571365566693754537465718595119966648871698622776845435382537342669957587587644742965147892732465449536692473549436889459684214794476777975668529989677943291637224661128357554581929699565864887559322936769369915377453669269638652843936452254884429896859544323531996877654688823825155145492246296788639358741523131422922743236944668381279643732887694637988949822981957427841443126172612847695281838312671938556536438316764975634437977872567978725799652966351914257355961793433751862254224643541831796935533817971924474993137781424477172962558483737769135459517818885294883675697236768387278572787687152786515596121117649471927869178954167776936429346794291319747394285288142279937337544638336289965266177741639872898446867243343754613462973317572185955368733933558288523524572711514195861211432549795746168471254977279347168642762679724789679842292892211621234971535535262555424375175495213556489622359327636664869332739139483458437888886878344329812348186662277495498463664288944529723495414859143298151863791998116489682792967953174313315981841674292999814188485628777664374694791685797597172422371861564966519111685393267169118452142412292956624657244466443246697534495882844145775386943716793515248423494225392467981794724264445756671436857358857356641998668517354566694956934939418871966719933399914561441514953871824937826165193974965448436149698293386248975838551573595418738427446714959199999611355416173272269643425337681694288854172685953748632467479531166926684282586992375253864833861691934926254151661551499724645142648145686837623396437991367798426869363814238837828963468796596479859848888159468187173128741966464691585962247851833258778754175885626454433272791294666417223265343863185371331926145173952369648858689852196859116966557378713323965415559662677372249194783974915597771643982482241578153498922271314338995484254367552267162754923189691267549797275576887215796167984972882946658537465217183322945269797265965841413917936434593569579684632866136628421251834321426233351153376952198363552142688153492217384171662125613472634347526659197731147343412856261295257133449632229898421954628648955724718563743655625737361927447341611655889456382969765535635183392981165346549962447778299575919795898381336134752141647652761417627931469624351622355584952469994414843479871866636638127261488454418746766575458653196965531819652939419625499689767593579662684433435364392687326288326185423288114455254678844693646291533751697672289391843969857984336714815598927879787391899717675416773291516821725246113938832972447399478861936254488383899715674827618371417888465872288887266358461315131792237352238555787184129174617468682792379569832881758118911248786374498547342688337575888789121168285494577732554844787574542384226977478213999616954639826431659855564419695292177756368939996367959563546525191778531761654537716348915729799359457586969438513982174643926669157639614233773255395146925127944747567587867957631572817888779876384798215312134568423552698561668854983277837394897893472851455641595418516485889852623338522144612678424932228371556413388325462765168879772376741579246655395873176792689543381688868868696879369398534245763667966479655143446259966966571475555468943518229212773434786394665377985148174441585657498664371713498892184195656262313346573931368883574272263961756655172915837488911276224999989318413953397888985317514236161223118223299895436567242164856475691791226829899818753928484215937451454323528117739481928552927981119655242917771918749965632264571532659782892252724231127244676837494896929977616266575937742786663146858943266527732328915159298539834456631951987212574589815812997181981674295833971244188253556881668939796317861147445221734954137978841468796457796156354382486356335948761972837221958732593644974857866726931927153596443366725378674978786487439626249731417217789999575485638298714798368146635839189841214396263581847954277415161329738942862828452263719945939532996156916858533467444378686872928156585641336494117296171561529876463849517712952859138439151144116926786986384638631112758771258761985871776147415957263775381657935767579721372466158658755813362584389748489261617994764679271647582647793619579239265452968368768291558557232162922911935278493456322546183158243824812555829142513871716718565736481449354545558784556467983563717987678594371481413136274764887886228458334685187564145156323215499163946477338298264362522125747494365785747653725199586246361512422255127247798382113575964145335756514913598652372299845723838465166758568919489556697447862963865375848448241223843418465179824922619342791788286386994171333279252681749569537713849573688769238385519978619772578788974367196666945641293247951838962773665498747368959191567529935498576173155916833351679629385853846652795956611584694435583737857192289723135972663858764879993933584823817746489755165577419665477888643574124363627633566346531166366486147812976882778635378387132444791562898539385149691542541991612942485775564558151424528775672466131476525443721917621219567859754416822723465352656155331845291616619223799258768889833374689222311282312982139275212892649478881717827848975516769695162514267278846611699211738494766748869323581826233977879568185864641392524992945348263591959144555694433998178586672963666288662239298247728414643331329294149519126296228762424773199865468936558743579934693395325937829986387377252277686392282118339669754349394875828237479985277155867983351462988817743287969641127816878931535336693357632238279175457328557569938298196831277549631396854996441523927376992831256773119882882433596877462858386325256217819931783733953666693668462224325651319217314967892783575844871811659718755865992716515598982396764741487716716573663346373495337366944666126679596897462813281113994978881289829769313862271162359217636568481344816869416567965788765186913814864916683855252228456958835534552198578496116962759327362913981868598516491475175787989965736123391687436338587924932686781941974631327676316718994158449525161119357539382276313749737372624443837981639713717186941812372185664585327177652247879924126774837848171786963223379496668728138556527115119411861594588824272634532338428534935385455371524268993396784396197534233745297429819158296655476216478356179497611789663198126887639716352536235397832826964485312882462197793287678216981317567992472694246781897324837977488171659969154428994127854893526731429364927847269779282514919893456282557428999781469945773299525924119135211181912246259345776143884533441826448932247863948966873753562427883918594572768331222857177272581715539889963584315622681335997125278185682155133592199464246475526665333566574887252496875961654324657195848284343254614364937115919725368261135573354621962746976134951821948776153776955761885659397453342229124695333454391912796641526522259522963336277289368636767877578392594346255895163686969891891426798248689785169144962992652953915749744152297999654647145765977195573175547316526333681976488815462578582972223873326657778687679744268318683379826857419292673522656977348383272417179713269522692373592587285168742587581663326531197779297259398238223979616999296245668718867638265534148631234715883399279463681246794177228695979587143933265891229668639632624695735243484395156324998422514379215364486996383587457937846257667379792913858618397551651279349671889596426993141262835137611912198567254387653699775766926975611241393846538416919493126246944534567961216787767446367588141415352345846146498753582169499221413547812971965676774341813643924493683514552346818263559765582429937971712831132667145514588716749921827493199776359968123636559491478874354689499329415353319716984651886365815858518944451118842729241585298879811336731153224757551141124299379989237733575152165173236768539397235911987337879883363858527567261542232251829696894725256116232186153929665612775984919354827566754412437951921692749973982947967948778893719258695657516599226386973119651162212974323228579155352966182167144736454916214668347618628575981961523978256785891365136573242729353522196719461114629687891773663368134658894321974319917758884812848573668867249927466463551337458937814955639188736279673288728723757796294842438448827813971358476569439793276558826918579665783935975721497547763655917294599365678865537776697293888366185797523393624288271698914651834161817732578482867539232821271282269956832966155143938349288144588699898758966417221856443899987149142611968184732654723366566197935855555356744346672692934612721279195646785783872972298458386823713516157125426257882686571272184293719196724866564959937794675551357514995812242394356627612463878598978993649851557491653448683631378828941242639894329231884577765574812942791578332751775817444999982492797924728356917842429591887791868429734868715887485784885515714451262754468693333649664562745712211794189263292486685322496751162977482194412497997666246644537529331933194954154918468343887437543467845755711359567467755376888521158339375469586159699259425796231893299288197672212615787727148364556695179571135578865844943862867556377691872979982496556335564411639219598638846186367726235788389587371343241971124398965114555359312456836824461565679896939562828317468668473543388225745646671545192112737829977928971455367779155681385799478383868526198797339916543772133926717162492681349222545276491425594125652349169148972463332493562333248676162663981711511252757371166175472816784549173419854419823615493452396976914589561699417421842971611351617995456186848218844512253398648651639917662594612266486854163931245883928145788649449174889978671685146111814827493472999787778346914784764658645856335543161968549323221932483981548211573674797599729415666647755766856737927698667847292736393514548118628918588177552931849222257517296264734626869674314635312932946545128765388265421222395477935673821264119318463237935884643933134671863474923451652631399697981128941717181973627118716284971376429159354579969333675329433791149485184626529424329391767275828787111438199685283514756117876511925792142197838169125193636171325382911538156576547411413381187719612794731485863912779945184866652692975592986879851328527999845864322642295377815955793132677225886341232321376975369282179423853447136234425496937581125733497429874482256782726287941495362759287837974179328733824471712971448242335158319385629398765839288365823443226755753676547221759889133659937334812326435549254525669971535559493916759527989629516985459858996122654653455578327637497373825557359861894663368234633643774715835885493949426884622659637728537889676971494829411386755356191937945557147984721564322493538495989476495596823256771463546287841217925568257221878137671755227669239452964269875172732189198414598268779748424741992924556911816335816673994945625176955542129785985955766669274143657555639955931345612313498379833949425878345755264912513317532513343884667959326955456468459932899365944711364126438749251892165447859737694824721151365841196194875382875918782189838553651621365782129235244497496337473718825935993321999468461255749693163322412583356571845217828747483659577856399732231216533743654951684445486693727398272157599845673321741155518388384699375797758497188662767312897394946829812643798518972613173979496559141298432795693237573659446163479874884775962474839565874363278622681123478551987187582261273861137172778717156514367826172495856786825622577345665232717251487368463659145262694935312399819934175452298463743949986467257674715293987742726927666247416695824749173537795975514638268793691769547259412523668649731526744616869855985538816957551656432579311918419197943265496959146433894942437393685256354544715847823352227963459892158196471891159689441879679996412792385941133376778627992227869845891331786964114248888253416276993479795575697969485497653354355875891882571987273248569786965556331375633429133114775248743559811379948857299939473464629196755737625555723689776742889348443473114841812431978143272466526932171358658868241134554363489188275652869325367286892748971155528298568721919955995275163233937788275781328384352837944641741192844667294161555538929592139263683785651765413422444982846299614847598732169645383646598863178564197248919174298797816867545942783111177391554664695147124748971692845384493333726874484691148327299673539389315498548515985852545984845881651896944832848285256589384876679758654373678149872933526369733468937679599755171713371574628463959552379897298542299572898349356773868291386872893515662682589182987619758576123841632678414893596378752969124637139654246665748739753342499143779469584817399475464337498938939192998344676146917791979178143783981142798373657884912127413697286671634868748751996691823349762719811759867883236216165644389831692856153649984453145858743824437418659593654384535163214252392795754911482897833824159959769312532229424393569981388665756734145728179484481269664182844888138959118468821876318793527525592759247637417438476573832738865943176942291117374697167671223897686136574743611567684571761839911433577337686263347716192771859591829277985481363397857283412783861234127227125445374398913374342882578569777235531366694474953356645526128811881997619423939171488541411956881619125222565455418269186287284872584128486865558311688746341152923511553667161465792725547871364857587863779464215947929297782452352245463435635445523811317418242624991997817824932445771473964585734779623326761723172155742254545411986264354952755735535864687795935619682546787992263427733376367966567329743292818938463958379927487789981869281571717847789429798696654988453788911433717184385154786261751366328983959442975872635386152468931826914366212147818287899466734428715675939586186695353149583946175182345964479675357751513698927767787617469363568535644284455337231783618649159789368526887691524829454326656617228223534764944877428244925582486949474194289152399344861462826347343586293178991246923174564476978794162198689835227795682363855311482462566864928277246932644833321378699895193376161948279419339247864117477638648644793486423641776956921846675646453612539188969665153997612958897498123175869823747328631848669935463576896511271843836437268893418692452624737585655978384447352798635935426564832548378667954691482968844657621247197677649958538145867447115974485973358456575955389164225754552553739245921895325138981993993579838966591178116244342369338445214915874943296881191753699927191873546877366723362872425225388564326695837364252922391772929561448952245556653589659687639187651715851465552781457577332721827962936588227711838828118952643592336434968872822577678456364469563375837457553747345669947657818351196858754173722924884943863572378153759362589122129553197165359284823465654784974596935633228147962737315226454969956583798755884536878794741123675398379418919989666976974278622259169654658343645318368878764191259929994691242179691727336612922235127294273782565291394374499514458588182345942984389965325562682185469285496615999585496934533925145319459266429737929793496123338273844582643181963181538719595636774117155464629119955599694736526673748239889573695488469854291938859369475967335321493937568973619581957189784441434635799638598568847297285339989146655881147819686764334514382945861696921877371813496561276577677212733913775327451237492142377623393842846578967268661594551913811432156655446348952275394856167673649191354616488395518631549862745198133398433885528434891775834741183632584554661992765559946291149528243198231785345669995738891166288321768641364113848151566319478887425185815376169152573613221366992135659587896274459238836317413163877723683675663749562579221654748935663145212868495975737953738841859598938999839482558733791344677975266237916371743999664996849134816857698588166629566824317928759759794988859815254555986731797873194381435376435725572857737741271745121826693872247674872278127684167771664281577981458658161731459538213257937365725539875273962741471765861851613628698652275414631888354459557776886358697555118168775978896897991485944138859498677364373982483791277666847515689733845213533826557916643291749397959698232358878196796812736373469452125954917188867194156639289982487494988218325948881514313548399345854276765736868622821353737281663189851728641121784241857372711375455923875621695867689814875212668126295856312459117832454512978653391643595538497923867947748842883644274539845369417799221332812982162347547432295576917685525888778667443793964695833541458248942693843767917785959326146246676893267848947329185386187977497738143567743696531127953783347438692645599924662159517768624475887923547958834979995535229973983688145698856732992624458592939892553551723726752853765461131513465227184373821864772915997958878875134962262791932584456651592131829479836498231974113832225752224587447425154669553253718669927749717692797719397938135642662735829883823921773191182576197341956919294243562572387721794653547443163194928434813761651995421721973882693737613435954498375357937792922219669285244934384485437992371593258259527642634858774222445953844941429875465427591677253866414569561662267953963944912466474917813139146532812933747219351553953247135564589257733928551614218384146256721519285748122989435664778546688318311765284876368412851247776621699464831176151786911546812887857968632852335278965359597832255847778355426436184689372372337779335713527767515317797958554592294755746211366241743127523196824162417158858717715963891582424855669988958699339167949664453266263147338162174956349316193715945178417666271687624418461796566335322274154838222738452964198991589916867389385585441267854429131243817512582827368211854387681512948384851648398276225114991268857522383216538788372828484756786138634227924691742419988545327264512765989323717116246848353658623349686736891519776619781219434388699696331111569197266995215952686652281799835813668335423887724968578159153388583846856867351565295936813256126896869372211737411963488895435773645392963954656242132177664152487679747544461338542783874558245472225383826384638659822277592257939811164522493618629167857758775128192547475713772884378596629454378638578947615388127695121558838966458986859957584577596177759773472398746674348293665987855994237117654855631869281687667523553197561793371912934997958115964741872737817841794885634234889648158495296272938936763592245276887383241842565717592837687139898181391258138894795835594393159282845964464691553884137493281857158888999169387527382935283317448384499697386545864895677465347149199599771429129255188178668912523318444116132275131962546442954736995932914758733817653898671747133577243845854896531294973146668634969771928271889349117661657532981911845522489677439489383168878112563772996972274779693345683955817941636553498539468637156453351691642383527499681826731948179944581958395359199843965937984977298913218962577897968543273464868178331594747979649814566396646268677422175242478676768568146755118547385325643212955959959838888715636118235169192367781714897843546847511371253998931932891443395613625193387914342216713571632327988911798736761755974971817627874496596735518941244143674313915866796773896468474122659986734289678772753268562391126376229839424969835151337715386493616942555646631127925184648837622639943535724415262387723333939546168812181953976667259844895184973559878454721113855114458678379368182648884868586775689427173775336746735667922758576814964652624278957882655171816664882295177539123492642171788652955524821219514757694171597188454237694779656313553161368752686827198344184299318726133199346795594251475855442273392916425819131972134977635632748337579943842332975222565298261534383443559379382772364693249727444788365411155624397719182945372873262614511724724516913163757636296925747531439276854699941167299354859426321643376679879253879359495979437357374598831728599499628787856769217834818764933944862414285236956771654935185325247238119138496486743465755791339666977683273997245985984883753356661195215565322218165867756453716664968751779424257537488967982371141529693362683728267752426647168975429157799885552715286856692333289814999875127238393564865544144237353347895472682699877391129632928956418878449283842789494815956123188499581229846992273619144496191919268265181898154753183892796778699966932392622469657167417242213335811392132511569848336982216988356459933336466328368459527473138467696144681153849943192219291645649957328476656633637585685442739851516438429849786976988482998224715555826193619696817538239794731792567338458219612366877456493387213184496692429662722952159487522465697435121393957725488578689844895413754383524419473518629272761242718643712376284698429934827499613264366686891752777399664237989527477378149455118453767339288673779455357481486422373185356764637164234374852138821414983869346596941771393336493715421295274236996278164563665269959511292243247388878833898173465738175759257681739916891614575962963975642643734726572252997817415247991887865897261219141965145391944822124172198973711222295625153374356115393192848498888987214332332149155284978951598647319992188575342552138844784375289434994685959325549121688116844669818346719947586594684191155489971541787727865781937437466664385747385482588578944315859936695841979912253291739647933675918878163451156254654221697631573211632667955899149387779713411721471415496296165924193326849871373178458792551891944745737232156656675372881866728764996797372258155372896543246676316889444343447475837749965551688496755946417547863258678713537812929674346858416358163587594729787784643591979577587987986223496515288785459485254846714367728532759431587437648136682788554347517493778222231952241661521867195962421616771879269698116466563694847594447734156168251869318611451629363671882373919655473499737556485573936665542647187898284736211919267256463755158888957296981148275714896233576975466525288873218263892847615787371618163624259875585234857616869785856483923899186173786334593759845915285236919226199778196944331847865919181973736251938413967927239641156876619454675828731457476478835766912264919495729991487456986849563795253645557517759966323167839194372537874986392971697874782981796198677313757361878234245178758891823977698753518611731228769116477658311527811716918188461369662475736562198215773428813589212363593764358292141763815654462938966395552832445136945877547866686874233851946666132963914181622695764949712485616894799559994788393343536364459724624245529739981635296446227675976913665312761813957561188541947398873276958116195234436867431679889467313253717243292856693373883634824574468995727688249367438544896266329416935735178215886918947779247591666442772861419474831432732474298857832586288823746287446628923771426726594968118697444887472352688818661513993782476519311334733979333438919267581237827873487175439793286435784887555953489515972325595392587945426974744548915236827965542423929362871336863758376266176417558437642372785768491767938362579392727357589939291895799614884156881469369844587222531435356986248325223965481195958136745587224368214423312999172597922188872155797646933895388715479788995125974356497932573876587353138433557628713877817967715813615674845548872264929343586568284119552799925737854661594623758742179387472771676919539492454426725898386517939428688894925237468633352483198614655895784474985826676942468479874542613459134648369749996847483724633844288574278843795946896985875525861847973346753643894987328123682176279454753289813423933236825138279482982626736424774858877714117248875675849542488758286172447545646314444856458115393773266721622338849722381451842296978187924396362931149777478577427432746825651517513972571913936919394935366383935196377546968498617924837842496825277395694669386552845651273427559528928654712376392789627522429411654718428499462128619997524688885176154789918493885396951693889628434581941292767243489367458922564817114229636367734794865639492578795932648624634464125659422572515291841957718314261687379449449388765688276553125587778378837684854669185839377131857579438338675985451681242336653947276378344269161572444483653566983514855379224716781522757689827236583812842454677912217987732828277275628568498536815392199497294519538699658534895113222521998195157642454165657818963246376227456814585636336712889415191386712998386877741331132221231414923219196733514884326556735596182822662185644751459979796552189398989239183256656244228655993586276458817679449985838689799986467874933199695529213197587561254532788218147992461341135589945844358371859451183786467699539142577659337762874463855175429627333855848298362264122379639456782825637943484847239427798512734137531121963788892453144518449695888476165824326315479869612158469869474118754168246631846926749936947896848422847131335577397457168998962642313457194179116197485677639941513577816916976397522236156176364768675147535373465842612335632481763543861989559256579761122489982262993767363632325439162575146594246648384622678184724915953343519315654156742571326161129655365323232135949898231531978141146728631212788485195777819431688458315243932696573443936826633553558539638825855519468382617649891743887595567119854275822877114931146326612924195596358866736452135298637859847179747354924948329831372593175532212188156277978114381859981276164179416235934135951865355798877518677581827842994386212353691556693689564636889764748426996389324566952747311314617793624768578592588689833495875636854769314475318142848714914387291896623377126521986225478733247217512446275475895824776957916724743588853244826994935499797633798711343918757796835962221761114455912474554788451984378626932587853137766288397318981754497812198269913682186661198197451536137469454752722958398972685458687112894894996886286188816611156945976265864277867493564139574839499977439899566458358634271616479699946162569186165147761553382838871673686997812333363653483613659923822695669244795247973259529597356814969698462838747773856879433773872669547466556778565437445346358352291273663869594242935756118616491763417679824819438623433451467549833989841476232296161529381818995436356883286814526588869528761516311959944656697412572445176822465535677746329549584974844617817639264624646115714756534226917964828946567658539549387231852814135395773891167925197762918744426947121891869941997728715962715483883593638685847486936835142148859518859592374333962695884839922123932387622313277818318388558948759812941576725273994133721993373655492445635389974183945256429579718588813359599498755881988482846435563536148929893192279586122693621255791378822683959169541922859498918818921483251871451288217721794318658443484516273546885427266656979465987482996322779691752723784579318217575147639435875381627441226753592396483961255129468512897792317643943689149687723169213579169153343217136557226294967461346568978975487251916845685798967467339568393523715429275554393777799157465681661817956979578621789357552546554312399931568924276668862886721246728681611464593821233241352889569493399424596285694138814643532556822175529148486854118398395258327821324589575785665747979569167482928493729325155455765527518435669494237445945697762988378422624715462399716544693448324181965786366562361566548822776447489851986338824287521723498913232421862858437711995374819589257973615281324879819342499567666326958447428222968766318775396691661236877899739878278562186835154359845879947883344954913994944375958578169899385993565632429891637297733217298265881441719868276949322398438127225949667449392749667476561181145735524641143649466119991175836392132683729874472896958888895866236244233845288113458152945938747775893545443899492715833432541355184425849965193539614384421666976274747622347369481316931431141216963858419149998622698355214936574298654825693358965438244949792645426899587694896835629858725198485135728336576488184858993786375825849657186887792688752666899845399932936811797157695669391876845818676116525348867537332346188476777338716781965949247941176242984256372513115534114672849876449339678982452255687345138166866977924716826372214877523164928985729745861492839444532331274293793681792973618259733289467298597282159984355198875783154985145395147749665185423684513761186881948839896481881543681766363573737889298718358748879479312639641455631835148792395967295223518896551574277788938562831537362712153638652737463618627558538616759511955943446989494492579715747296437613491795564843892626668521857953779531914834826953791851764948524261574196968632194562671551292625211743868214729254276535185631565337148618864449633314659339634758224113185944225475756776386972895368865535677488565131128318446214213921862917718958111248851965493155643724797388667978957987421993619915397892142953661232726367547257353333763867467395637819945544174494261695749426748455229968233442756768957854671557817626129941941162651729116124246478295616745167433795524859253387518848857445345673845624683514943789317117223995729137551789233147666884458767667371759948577873964934196587916941339618737148725776578674656741716769533688166179654316258171848879397879424351536686837857666356574582579159416299364722377291733764564958543937993177936638725594998331766278725913697361456453772643169196289146993495144969442268949666745768528255498497421767381173137555898599772444986698363929279197479148891114489754855582936854674973518345514814384682316638784861883649545855422918736352171813333553377648285247268432695318139182262145271856649885157772991649649638457185798323365699199671681752717654544196572894683799948964511751652713889697452797933252827694865752385887179887313989619762589742792227672453661879889574931337994772561536235171517656399529892896888542347964772342598692865635141753855661361781679854656697725589319628864266145178395958176172988633953282836373754666165325778227192813743574316786972913994775168726389797979867835726544215899898744136971954894879186498861887799817323811713878959735364151714886913115175562946293349462968859895873959496444976869878554919198929835364861229363684435256247685121718335715141558431625879287614561795825173553894466133838127296746831684937689669457749853651163599584927416748921894974823688751968948881323847942216797222641661249221668435522998655984899382571342882833156687586115465465359841665899682157235219182621275491728495935623124467157665689332686174756629133558828686652377945898291571549673754989363572346144847187759866889356194551555596378553635166512896549443787951786637385532494516447114953615998559871922314241755896763969527766764879357348248693845914666121116445351934143779869528184437795728355768288487225127813275753183115542678589863648491987773775712348797849867778694494851595245687912942814188199172218285815686937832895847137979887966581249644841919841422647597698415445255879373869816168562623159386987299679994983169343349611169443336127826983367828661476652198274372966465395896177922244387445341143579334339754267993218592729558393482584528884284663865591562441372731856178543114986455156617269726327893874246457911883541243171277692996981256374183484673972155364794567885584959383435467811443863518234485583347615594638132867347195138418265626684935677498864469172455278543961249469955721416878985385144587523661698615888846544678464198687618469453428123539891968477954339882936327548897855324431174581139791382962664782337931999777635854955576723694561878954657541181163991427187536787484158445242318433981925677263873622528322569449827368916553411859824443596757438522672659889768719319265793599188541983342463469329448456429194799766144581928154779486336924955582297163137822295594266753442547149878156675112893929956256657375759534362854272358628438787965354855438723526978382326592145666696923223128933334739124541328127227751928926158149347864171626874323392646155911745853597853969615355168188911817685895463758115665624782545572746216473125242153156871196931344996784458634263349876944886673276947716865863118748752437584496934391378771835959424946916152249643739454715325931598679433348825225466894294916649991164151952979168284973462923994767446628547121913534884818137984554953339869299914579587537264178393265764581745431911515292928113189369391559492685965812453584112637621241583982635572654442312997672899926288361547966512687613986251964255189243756523745755929924693173373876914831577991978655138125664748136592823547883617761738879862243331995826467619847938349198593118147968699188851581994149314977679183185347331852769836275173165214231899769539672593272516859631927329568349512994939548895123533728125164495882125963734836435671377596397499813788188838461537165683128987869959124638699798234112869575322269647679574622924649248967742986768315628758242147517812433247614724938633454626122559825143995256111271648596994667852568146984364836573677524844173416129861154472168876612955692179899236446868948749932547192293781659875233645213998159879345357692379486855964283382639446563442227875772546967415147342191281627978376749876255748699844358833336593882815965257215995932992984299546826616154436333255429434123672489564826682287394216125326661324372955764318573773859198937877616191494566781858557857647319545824624769939578497435764867623678849427343754959726338152971968887343497627713254879634556172675979966788551397787168528588933811975591994929229823633168649424811348934548974268348385916958672598829461534986837594626724988474575424262179399912652724745522861776286254593776636861628799386763938568195975787954215266927277642347172697667918824479778212839347551889215485573462467814291147744726594791777996755998647586172594547681866168646161757413233836961872126849697261837771648139948161481467359375495862817785437396788238231724295391311964692996923863673442329289936483556692913868464747918566616352345698935487477466722639276471642265499181181724974471593587673996199757534361892726812158276678357738622997593395694187224432462756579694598177156166479734382278695773885519671528474932938823915978248271667689533338372249572468742415583979179242628249483394653942726436676114872355132157573173473453468175742375991963635892962625976554816588718315919667677156925859676873986955722474959644823416899542426641787582538559916191659898666838387233833564155437161788726448748649443359199418517983617664631859756371441521761679843757737622129789317974565647189317552828471233868652345673135318219364854997322826866734649193415724925635579129977667891844968953847662659357913254686744328485119272765858254428995955937379416392633121641864836429457775519623858352915172461457325485318244137219728592685268953253768246993758218979856173492422461163535236884396587624972662678929584944848871312275418992214262988922236911728142972283237294859754943817857268272111658879156929889545442588783467418589279176969955112855523982282771884311761152471216312953484518951585661263155959975667293258869393665824631295141942291263838276419864128877379322345888545175473221489583139724815331378794512943282157121491665427799163482242456514638733991287393648133935675129719899218846527158337653269267793444919856477279934637336257737599351642472845916367841996378137468426226864959835284622189633644461563224378789446564542868939549844486543315763171427329616873446259896393524383188587386564923145552425532194152922691315352446557782624313457891346334495925579346998615772796579392484734626687764845158131967994722864969295516157378767876764846695373798842613574862379457685487557564357639891487659922684791723965868127724872853498689884651912229163225691196739278789581751998194396788214614865243753571373651756454217427889228736879518878429778898391537724683776245474799311852791352136198353325533482498425298114161591536685496137275728788777398466183455622995636724199119733653233724519182648838796965886322681952169191398796967559697563742191538299568969745298655969748278457693199534857986841747389739898588769881764298551558679495474179537995233342433294663563825681144182167265641547645727873364437467674346978596722499788921754447668475983432472939627635556916934246562773475889414847641486774483786981311355759695794752813317927912377746186361429584893285568548124585885456914411771345212489742531538597991681241641233798317767797544278126567326734277459672661289158247758439895972396268995979467558794764185876564422836822884564421152556639391941921736826243853988498577924692545178737996258579395815944382653972729797745832426772815587927251687749163492756993323579995976825636929792828144572967758814142953128414894993199669582298723773748534278182194597255513225883829529783182834842849321714242256836222273611753283115922532938526857143484892285545847949947168269367855785194655371287836196458376712586418253863379345668849369968711921927936623691291694256491671153543613913124512399732345833143895875544892843182848336619147671955927387828727311198275391359819729916531789566529259924839291439731927629148975743147263193442565631697676435785173454784244646785691178479394731154327959831462897115888997463771934866475862585317561843435195487299676654464452462617547866191318835737172844545858285258953624671365918735272815923218555992111622445792911265147939398831694832142377698725432385916423272644914517557645159638643489478984978737621156459323187966595298841339298295145688852844663764754963925466737194628622378526899242987541957213226837563522824553788114168185469488486847835747647841218896399338752218278479966337998329572783951217792933232866763237965124836236884295255629243455883186734325139231125382313233523578432674129434175155438266762389979389967214482782455698625498215496573544919783242927855466248588188559625678938232981971248392828713933631238432164729934753878654438864716331654938619626166456933914623279336861121447678138682132149464275876554112766823482623139191561183691312568574486771485886725878224877685575631219493996723676627868135138986475319572166293953858788929851772945237556885794463681547466175214165188368982775321955947963952791558336968231337581643899598946226258279987524218128382468666763786645342224225832727945431691279956419511429571346845293384525484571575653387994799224514896543369425482712388567476623894492758737945263342695267464447646789936827695931836813852591763669599555315892752686788936159582884276137287542189778635959889974635981173274784872137492782876128828313245828213854679933888435437837975457827275399344124186776518153188655396145388922725593877534382148533769832855413216565395584126235354875992467835566943657775574436453235387117478517282199254692354124686582142929555357646982511691664165396335742592832248436542242881718497179781321399682911573871172788956272938112228827767762995614291478753977622697876438492849791992194943157187368756625713575566381681435594162759132341449999975875637969841143778392482262681755585222448875681759158324168936197676796685727718372811758431757953562869348173748688858537151629356684761475273657871749883521873345567368589884411677993237112356247384676435723676975331591559454526125764484572925852431826911988946573199839545564451532797913791468453356697686387161676414385499432442634572128763579565979763436118224354858167337838659497972535859851822379188465155324829227984784867668915359554976616547148145857314887587312351524444116196175869859592516659789274239332763535534893313872983639728897988329758131237766664287762585681577874851319184376577227993794795711294545275488487533484631914359296617694491928929999649733392835994567747193934229856784554627696154999218478611695883559125687938233987786263758348142753747298773417233484671829789454534494136199439626626228985581627496396576782374899821829922643521687164323546227617942392986517879414463725962479573434221487676955883657151263267969163295598276655593287226794232188338171235674331894443195374838525415431481652934255543968789716132659748295955715927992592966899291228687993197563768855912914537351998296293643752119386294787468312569543841287627793386443815377839142288259465753873716879955464121213771854642899484593433154197698697197197445789229496946733381956661862392272277319997739272223235818929114798472222266717968269865363795268195573454816756947817367717864479874823145964977347347211685898234648678181132369226458613876219841382982785889447459187412156538754774666253589393914317273975476794773945854691478881872962981992565936626917394565738428884999577782253664714618238356485192377996392952572252491543964775687651639315121319833732944475884597711838377926853136974945196868919485133572736547791425581859295393946515715992855124476782639288348228769442648498199677219764383114533586737268538187488351318256845954219782586496582469619399396352117257996488846578658815246552923684638276438811627897262396168739923124544896939199849398964724923559289981656835914772152194364886319795225422284477547357715827364357795784334316483793866155886695929339466743713842455533247277597339327497564223762423551752879735539297847919894554914978937126581439177867717917514197894574983829841927393425276233831539471439743855489316675983598257868773996774531162517217327382885637697879593474558987698633111267411442328848967996367551162812958944787543898255961783943875595447381755381979498318623969376121443878512789182964425496375968762175485977159519271148538238419134648845194236985785281874969572446958828494474554495348255659676286241326989755852129731873597968852385135719718293669397393122393544514375851364785373714715177198458962498931338495782315278158525853256457699971243517338346442338317566596638758136712363869598692871939772756258596314148837438919486154893867758825744644472543859963377184752574547912213785216764354222826676342745276644186686222429693428187558824953787824648515187297816989783255968549493577731886925252483182256413542736366486177778338326398292242448496711922393754625627976697712995474374635227422884243368957949458257559889897983229422746696136857389188316372785528392248347321472735168312892578987414148829573614947112348823963871698465868472196497789961758365455376322365127297497267655563192911613953817641476192741888915995227588165954588797329919725825699357799173719467793375273698999665358411432295618591146994453193359364934898544527784893666734928197386491229158814281852792211673372639632971374671545466994525715686288997737534823618358431521471111286364335496153788627945762793312762647878616267849584877472599645418963147697138464843255964722718238599517137651811692313824969393541241537226526414879223341212356156538473512296835197797897358417161292938114947591759569554962742747483443347443557661859589171181284922281357667928526757937624438757274541968383651886259617859677422977921758273565612264599546981976943986838577647327822226487561561769555134295214884351755791521438227781631787229837355367687761489598846858776817363777592156374945357692187111548421924783615744474737667516572334448428857643496347242737594476225918813216377983983968363495493184176553471346733491181454464249769687249963146975251396239892279935179721193624538837495948743412256511818761876686938864627173214683891627345789147443916966145964249713986237266124492582996876744584886565289822816645484555373225541785846876941613795779178554775666816166978276978426366433184397887474926981833789558991679159353442173113617978174451527244879525663282512245365947465321421348822262599966168913184372321477836369461799358546445616495294398194446876643578971535774249952977486895251897396972524294142854832677458865773292672256298252587996581111965835577164495914783364999389991264593395158784158386285479743815717513978387232191899281744432761861629117435266654536723721259348227584165232582899164924947177262494625497355719295779864835884931351181686457841967446472748994938892456753863973578558932984262158744868167218211846149547547431538162927428848942247477819714839114749254978334594377731583388683354768117244176465136159249131135125479164144511655899265178381671693454928647724637511967441639593467366688995744198631553668476677177437684296432467114146243964679211145428727996762253765324171297667351762872714476723787962851428655898684625566716999913377771369471342849272151596811472894725565643866542784654333737116879478873974119629888742745751498678843656598692945223929993854548621826425442714138594882483635983655397225982524598881771336768976811494497769752233479971297592993462742724817247195785259615786881619757179654175848128284756737445292226875994522658461885863863629852249732675361486471183737897253386889168324823376222621997556375948968338776315689988447116921546762839682595939971771634241523334344632157887997495956251838669971616717987442689275789686919177759554874838356469123397942318369366754361585725242878787581945423235148186492794697466167987793424664743963815586922296872847513111547314398796824259667882291456289379386475499357114851962962235987779464241844536417895246634661358288623854429176776688289595268351543533627969185236535523816611995424525961737611418468924247261237998991459817191185549337122836226555382557374525478468997854777719694373175595735252387543731438941222675754861895574676455156227938719717487324566961652899147518845785634491366232499164266144518816781656854487548992645648154959674593657859655474257288237772577294448364872596948566211996782375258214937952978314592895913119335949266989131292963297447491644445853466357574793368676886945995485731685843397727251966163187714885888589918681942728363246181856873181162758988448893939884284383313847929898273985953965315515577173594699138757168772778833499967174786214676972822993651746319642977297965831656797749788332616371334425319631734797373752677853782199532916314869768982843452919197658427294135189631995992516997192985574943933742991958331136728434989354378828249935165368834834562389884246458959633579645785666646853192366151853453392962214785956248248225981466179396361934812496659491956412537218395781449193398197793833994486182224677539418946196963923427681665145755539547315431933977235187277238964335948744943812786644934572495439942862346772885476692489959329246717629399498718432353657999618338569385446372839442611927391597415265598262274362629926783815832365818297733698427845919121127213736937951367417734529466381772331458347618293511119371457236262928275769639639457617371977389528518958853322434159844369768661476964863915945614418177737661851262726767521918979984587694428997717352953422385496475623494888112919879485432418552185437686159685674777122382829579948833128611192418547712775674174979866438913249894947391211263962971536678884237948982389976768441463591489937238128183717719495918457419824425248947371272631278731323491979642572658483558431546383967221839239369916599998184784888289417169654856848422145267679527253385315836858746474275889724753386351436247221155633337385259183894442479674194315968777375833116834657518612363911565556576792675261475327581274328713435344528133936675372842124688577158413242444493291369919349551439582933187586641544181716541546723372841556833157474923454352835139982257986259168747168925579249926357444858287969483762587432244335289857743379398163635378457373498511276916723459218616938283743451826346924955934726244849124167898254869168365781732268156986625492774669886975939982877965329961254163947431375259472173559383727323786686576191259832196369462177725942846997112942161338312798269421396256227639628497946753897658198566781337242359999941436414199629757391859377863544616956929968533552613588444951378354584995691315698743951395237743154829595446593471757669725315347624942787379676996369537129228263755277952984167179962422228457438267177837282514156744322299377628728543827816894174259381988889811692343528743689575949798996571982143959827658687177776975578798278772955553144654139859623859825671246238178821251747758793737236435488599994989389867993142898882828567435835193295852679259865464137186557641973614594143579586747973345983178297816966372161377587617131976136362167517199925959355965228362771723548218755982261354462368392312516615269781538881599541111254712586755647253882631714399797472347753538769487422636214639282638244647726963232211458972954883852626395265657732216875466218484329231991555317742789328465924359181367282897763677576884618236364811474898996465727696195842133143968186155344936427122558743478594854933352498639595482372991622938372252536785639967246857481314919763664967112271332123512853498593792132852782874257969374296618439186713312169399848386977892214299819257345198667255595497685945432282578135955186465755434517292112687294259268282333979852511698889964474545699481295616198725312158219164385499548897927987742173133484173369124447746917698551698665724556912678174947765994667579535131666583351498596814368832217836355977267338256214677483276111967126328274132985673756129456558349244449419813665778854451199127225378283343833581277685745712765676571513885866572915439151697345124219631695911675979783651524214642793788215865328685748355648936923663666314963923587896456238431729688841567759681341647916463629798327898914393925679675928943399593211425281267912546123268844222753889576164488186913877799986612497277747676484933662676896565731183347644191542515836234644482843442586727359797858736278589834439291646691469399567973763451736835295463347128188986523165165629667856524598473756995441975391291775792839529994986237665593865121286198831318778545169524925769113196832584788944427942777236526287546163473759289585229934149886574777898118474694335456399384554958373741363681767944851552539914851831461373377311194339386697746352399461428736684824783369458746142751634653315645186381713772119254682126355451817439531942465455816179738146893593739722671229767226826731732771348899648334915794544123784135797357665289532939677214599565246645926754216212467213829256857859191286558666476671226828422847369372936196639346725734776979264548669294713753699828126861382661392134765978999961735418742632676458694827744735582361128976745541171819763867271336738777374521794575146153536121187758686813191921596528314942126535874898826485788427862149338811893898589917487588357569781837161237343666964628196991627413529615715677444599673264831632684668459927675617943876641896692179333293194358961848367898361752961634816757192579673577636139974482642564698113823652569694655775376833917531854782298741393155455537867116293731833779638811311396793543624355198849442731774617772974531352263749541197622883722287766556538195285593539149738757749622113239797937144339748771413657623417443477875186615475999821963194845323572598687814878354363184548457449827539468228548391965182534834466615715634753225794998854535922136913669653266458297822328539441825822912166268616413484813244555949578288277469271764785565988326594837729721221632291989131649669924747522724711683544527531223981136878771865548493966182738589557549645316256627939599591395445423344628951544734938978837646112676128942518481643116335434776926177547925622861996641583784924673698468992342842579779565711829651583855134438386199579411446833225466715782493713781144559787772728694692341931941825348388892837584628934886484281244531836637554326472956689978359646757877755228783946583769399796188497666295967717749786473294786384234378227765832738165434882272827325382965551317943349623571393693161983427877942462968977867515633128773611676342113447524752948629295986159632698719899583386941463269822971315219777676633229969726694361475452784235267647932827448885149361168259982998858859151644393768123989595533298797446484841857372326597417396145987754228667918794184834853538365925822362866774422886145632997611917479668612468754493468998598295455364457546282187936829135558944983667919158129395685963828419626551619738458888322121555988476471876172152376877486911163169928474887746571747993569776343597732878769714613434233493929839829117131553247241966311494318754763253945321739347898146489581221318494682899787939585532638852283283223411917955742373674316283364141828768536467884367738163939624955448879713532483666328594755337849119949839152936254763148876931735395168688179517217345191748191583279764474664726263638818267299761698168438848653672228687464162683322739694876159728889513383735427873683386187498755246457864913965462797319292116355123642429392171189148724824194445728971915824835492744688178173744364298147336868826542326959287692886991471859969653378934474871924398237779551916125143487561281715244462937887793227353532264797711254687145959637713655729288735197237593818385779648634323376727343266354546267493253731213765857453657161147936439782581874234297163358865392475989743513428824584673367154235539567255693963127559259718796812622786347313295872984532465577244994515436283947266987552148717297781976755942312563126949685494696724382492739442887356289266528312334936251547182656973329241238572451788726845597184435964869949957442196613679815643183828777434976574879329838178684462941362839925751741375422981456797674469928477719487725481592519492342229571485247328397186834574676231932355963619159571581291329316477762191828358598113932119599363862745832937212343334748778277848861465649798443959964778217122438552323818485258647765647785814583296484993521292712843875448714764346779388589842299963449239818998897181451368712459451715921823446886223512665148359712214835993434286896735626234765471893459254649768699799654268715635716588585532799336158148633186895534942741797757375888716171812726782935775686788769793144749247315398167866776327184791336321761612725824163532988275641673569494129231555442469787791326852119761578948547355612862486872882317854163342432673325191492454644269432742127785976534495572174667149697464878773197751171771454949546739259916469389178565684785458535385222875857112257834885141143586992292454433367173336879489587768465281373467274352867469779754664686444613766234531199729528569738973329312195853938539513647932828586545644419721766384338687464315538965546336269947827985379321488327989637783567167182236441962263153462432345559615913648328423876339928359833759354627798931595587952813959754986235696959356746572242771542691845948627199387232257232286895514265724565857926112613497229117836178782375837514183237764693781758451352685544527362657344793438818479962969495679151738142998881751689865366684562592326451883251367551758226743477597784144672681171738197686679958699952661213944469474233897888454376162451637261119384243331328774472697833424632857356892649913644826514958333328616677939459529843428899675516673525559671224857297341459349374938928246425483296412573293489538245692235474931733473151735272653154387395421894945824298294997194994886638591488119439237325152118815744913912695962198742798768148686589894645517641656627825933622327782222892285559529289927993181824743274896139638642523242498435794476897596576763246769488543823853882686665765736627916998357971355949697731225873337935662413864929295359625613697832457236252918688461194337122246389192826783827562772247438798728681829765428719215637473398581215536254983637996395715259879629168342376355985839153663696974199561111746874989389498954922694332127792744282579684164792984144527116977527977656971335248729466464596948896751647247945283845315783337877972497235387422585292214763555999888291351262589345168224919746438843973447976833415915575216489969271571225962328372934713834979468495823845993584267456865396716956773259747512164893927736991978949797729967361892459249956499791327695713844124874631684596383137367997578618699268885783655797611367365341299882682937725742793336759475936635296885296832968318349722915415889629413838387866758552758858388348685349965443695698272996716717913266115314981686338679473172447561955618382398971414494493868545388747671921232917118741927812859264466128912577292912772755493645765385357986448718811485471261721774156968549114741365998753335681189859819238482621174199834817135181158715561535929424835116374474699114558363915962777799694167861218244836515298685326442967215269772938922596261246548559193882341232526935213857964528582346162895826995595288976172118464136893976957799581774456638828119782283839271887627319775254987999493666594259698564584971537187569299526275194782957671961833523573585851371468769797781676657683762587664294976837218472876591961195161281254658215849155642755326368193386946798927899849526115339448939776967151739656658672744634394283228547671228792549594661234263795532211395357996342299173789344985758783384727898785698645662768444114228414949951566984632451697758919744677853536734943199652856799898418564297933876878379597753148668393336311566437653154779565128938566929913771171889841471358428733548512772155748847181713769669667434759463234235993381687669532732879577784839916461127725675899785843678815856588565522157261161364454756821899318819689212446223247354782425353679752933691638591999679148454976367767329446495292683864888115666254775491238336574361975866974936846843723792632997997837519376368347394741477288482396785166957275624946915759411857661441898231714681933936874139213195964948243671386764587374452181538899745185939663799812288197887544717939772835961895727999967153579875696169547945466659823426395162924752376664483623263679291616447864653456628987842758868898392535583912753319883692597743929136976422564859267869133683653554254325816775948691821694674171196942781157696632743657152593132563299253539324348486294792943864188348783893692122881323131164476631585659191969733735752986657581179325424268772948479799842613865839886794495468732837911126836786433362858324547729117535619489536723477627329971653663391281733957525938813188391424368264928395135666547938492352953552672448229667937491176644188299949563726754758427465675323764775415141871479928458597883224198975759318838194359839961232553866138714791364459458822398432768889636754887823962264565223945919893361357861974659868698572518386896475273976383262871525489196613673228424838586165119526649314499414324863635384532414718539896981387994249685411375642758951632298393847994973334668535882584374144131856814715334542488689922169813345654147695645117741948773383957195421593312418588446798379731532831362998573659544624886569897118731218889448646995634968891424224968168349258232919492417894652169798184384146187452699894795332252299874965841683753461442593117727736484355582772815157552593298348785615181394142615195497258695286827238597271799253632612113617829199322371552965432482691742168223756545342892882629376232125778225554867959361749332494566568843455369897998781436789356234678656428184964683835513196919999131927231681998775488953648156274799562424957359929852137264274572914952491756685715688216215124139235235442758261225443292722451918469974483719368577855276946496487887257817911959594227545918426678546645493915969321344394942986472996153443716869847914878865133896698276379861739888263126898428365915234246727427769514696229949587665729669329929836138793714388351234132757872167353237385272261692365517588518312676144284789258949434721689817676981856349324976371931126994973122948979777741542135868871726928982268943361899617857817769616316586672189167745241635829682182518229587398311886228884979239343761251841822186637473183817191964487945829682136574736723913395777816649778882869579986787924932931213738787263177925755273966996788723277788912369572786717424162472735641463187449215268338161859682872572919492686278788584298969832559272217546924441373894865396275588994782243276346517455293366685137753695545252169161529152911238992667589589945735115334362731493596495987482578268546366764179912268776683836639988884259391288156893749585453368386196689513856811554199237134837449513687648639873184188834344247138779689924665976193845778864324751687288414848593434615673883778536676718942115669447553786289647942629284518937699264343155636767487698861931441739782449253343527764617884585954835648495653799437338885353552934643928585567934322183783238661745173493937175459577795489212737868142757614397388748599156481794622847555855571389637127879847491728235661377637679752436466963447233392987259851296378663364251499694127818445788794873913798466218597287378498662761527711595477566444785414928437324864277185536292446549812223247463451271724493797758469618872752972541239519883533699181152134979779227796898567764446156184512562866625958855239886874698529324346756141532227392171718976433516448892887668242194676989156244572162927279889514173325312777697164652468447238698891378364642146668992992723194791529577756864617355797927715479867522777154263726584236255949871399373854246772459364263317633679643846248547787993116797418533699447814422135124242896677288395476848489358541714486378429147521117456945316869323684194159576833875783931373169333237749225316116227565834537279847889968695529296374374496852964926185583969853879545983937123144669395567385161377792255263974349929722233132483255264942762745933159197741553919348474946319672157759561824451644826443574762517368539256645586386347978941489825787359238118681262581687218315793462987692436884656164574818178313627619135837865562633454662631336421915368265179996988171144676776248769837795431772562594362883541392477575263423197693843971399458441697313618356497363458113914745778446934197611858587976594143828348468562445529966633197374285423691133429851128436412814888853516722529782224177158974462395898771532858777286251294679733467958915373252712841737597563786481124235317366692383583967925667887994724222668929321886477448861442812897522237836841171916923838919646585562939681636512966811561254767822911147251639489447584398697623735159839474576847718673417793617973382767648998842869739841859567752481323315987198545913137158799568696299157959989283333467391658799829357429875964478145823857243155741298964479921686875616495662964732741335446899135281766782545575684856294757981829625535256164699441385917198262267531576455281858131669577955377145522874644775674894569362385816952174186365662519868753769531757279147154966296423414191252832286961265756196981648246348295565539177847265967655327564788283448322965867124654147262356625973687314787315481898728988246137564167895831236184745678873529527314756527985746282234599894157325772287449553134699467943997312446782435879363565274994187977253981376222838591253529646218929469245623472324896395656988479257788135953598197549717467262715973952726517192365897817641421956963546157611962398786187219418557969237452838737217864928669946799979762188338874875848677198554699716167352252977436215986564616986412412958925572938919763378879138794416893634754141861954829235237311614839793862166318985217174826992965984153762897471794517773683413915147282721584714199975326339346493235757277891449624859341191815491291425747763746629544913281684188474674816422398929939955924996394937238747223151614172797481783274468114639212284421188462867526424876829623469226572745494877783134237248584528862732183912457945788476716171648622967336871762661764131828332318567134368279773557585168569972833654752198954355993218656229529285855498196496939877833155866837465852848737786958193861633447262996921825341589154239191633743785176287382932436956193947642965789181931426641734276669291489145244834246127478416114729276886345352162117792233694955831482752223948345757611718614688131472367358118136237355332414494343746589115382276435951891749531218593926986832711839335952853258443576477122952892892623341661135631799211887917672969313776681589957143459376833972397635855152963695666154668193915652157959354929123433278752716399864185773623953192657779569581753345876583798579255587571839982834972248258257883812237462832162531259821151577583139965498547551267617923849188693652545941195647147863343797295525754442246459211855382666999638748378547768752756947873342938477197276531647585635535256432434684761927666426298876945944755347374575358751187457683776542419913674727518291242115621785557232234557854854816399152499442864424571586124984596724256289642972987739337817616256228449321864473599237838514358779789386323615367588917391945159892669169142697654957927668943225522669772123295483567879417238331394648955783129181935571694773991998217827254726296212571727261999551471787242575622386599392142144614374236579353175422717745931678983249752473552795827378278637931982633292689876246556389712361151864996127469866297444992754774463673279342679454779754456214746471939631456757327594861278412561179773366571222847962188786377535951348133328693548553756466732665197913487561378483937311528477594167264919785116396654474229398415553943351112722128876619318155767376269725197212945419261917977699246854939319134857316384665761156773242618772926619657639265583722866123133729772585749545697127679165781899622119341466211954899612958472967371879896365256458798689512771724827412694417448865186438885917888628366838754449239856743586122714977443242678584777741197557822698774289148867875744236788786941185984674223199951457399648177375359323976846832328719896547349266243199537168759585884167946687545898873999283968254939768155399331992544779445464349825938787299928975969177226478363388393783445878342977533546734732629344286853423635544495985632569297835222484914317983817326584228433615871414188892465436433569644256964628395967582444269253192631416536296291735951876514472916644229389393847616986774957462226881819114392874254498371824759588734945655225696574941964971769529476654283873356896456228577713914838992585668232599469175777844836747448677494914176661721588277194827166761388439729436922331144493394853573776426466354777575774473281862417789549981136758696538345962591269461883462539388559963871651753363277638745772218737761127997986681539527371773568954923883167649344757946618255867946828334639821453517425459532711585719235844389891565225822942721748574781118518763728263252329745883526431146175762537986241749782841166765266483845281613969974144785458953726888118628398899433529843828366328958993159612399273514264658476941265345574584736598539528761775494885695748841767695869474755961578153358665521917337556993612162992631173321184418633588544973612564672689425489961239579378469896551492799691363378499897476655189949447239121524833683731623758773119871938334455883187792183351684135892151643589881191333987999828553797736946319764714212551714243632489778119487533146794661251237644325469664644693964869989487889945125695944258946695969662983261854258818146247778668555579168541435718135556181116674648643632659232132596112657495575512965173588883429637367193363668259875394189491269745415882138187791193592439569942142865877972741534676769236195794977415792912795647896982661467753388216447569227419782956145658995171426272922588542482815312656232445988275415347814748293231882592891197811287252435637893793792143727798927757421572518137251187271867843874377528632536942188718779378466965563687679761325122678758344934438352456683321166572267899551319944496131557558242859846261262767875649314932424676981538313166338699556938491989941399345854872689959423353828784988699588239935364217499354735784979492336211943276752726925715489696872273238739258735754426223514172669827591343388647473379355617573365561664591365435194735935361669325513896563457181558869812868254213584796525819839749198945377118767898686355457159771621244246839347283769186852988239154779111934185772599293954464657231238795369934482514657134526498936646477893369986834726453784769961912292694699318217459696636964993228852929838488214446924211754539762728846333538934436596187443334963416453793697713479424578792579965919546781951749913556759397645794764318246654182449495945898929915238397786538754849323986157387437579423662559439553391581924437467914874527538826998368295856744887366386372889985444518847865273924154928674764482913898812421685954396547349418781269394874913341614168815798889311161519642855148767636386579986539943886922684654177931771789228683128217524166324832871921856952141169787354795881756824884833964236112241311114783268996196314633535299499273953769845465951294893951754264797466298751193165471352521531659167457745121471946455985328891996929662698657747714253126559516642955677464325439818888182897992964179387927681267617844142217793562767863399331793264933589798466441891186914637143312784938673533718711562596779688665612895186384335814836745153541827952558345625722852486788129896979312992351861212821196459546469629891742474173268543266519535755432763692359693923679472636631261997214465548681214468276743295354183834928918949524233133942296167324469354228726679977475551222195169825626857158972843188527883465555411823746885469888591618511856719897851914897394277259336599923849736594678638138156146592767654946119969744969488156721945936359435823154621386324839578352667963115473227524317883797628135184971455927648946257463726427986732648934899328484359661383426756133814155436477987486571731793965326237677593269466993118589457334559944967996896869832227211635974236325585265158659481288959279736862559558548962499355495825988967823882487427192554869595294359796114758719832885683879329861599216592799757867227329619882264167763992364687497512596999798418669796776559359284454875134261521353957726478685453389517735596334144842925747761185894597597455487236459478242191577867398791178625139974726268541343224863887962265941356977864613393611978589367193368717871244635176692965379654278733712759481148973675524756488224313786473491225528547192391436597574291921759535718956856591626819533934498763927392884848959379285648637692545477488885389254285519968543766997371884363519723948826468877484393319529525277572719558818396729897851424449352453963519675178592528216667222791357175217771795377248389577949465879328573636381813262729846823188763885546474582178726386157844948736692292651168223764276413417678894867484594626658789223953994974486882291343851176881963137448362447716513668365495655377737191777478438257654173795131586152441129587945787527893982125627192651297924294518939864929389625315988485144177293552483872198283582832984873555685821652435568334692878399857542953832974672581281681263593182563825883985635578343876433388791827772389386364941753862868954932446643877328329613516174617325319883188125862446969962839776824363728468991532673148711995789925578171334611571864589251354395317275239957353917977526562854337757748549884744876868248455328245866557673369495554974962797433855237237636828226853665257874451767933169517179539322222387986811474497524885833364234196792718889535738862766889384937497319318763267824888929472399184442738712937239628368852898987635276499587638559767919892891313578137111953479747659176765743498615991116973788963789839363892952948597296753973742238328864885665778982112974569242517158527574872967228895533239493534341634913551555188211245893768944399395782691186272652657843527169794427225417384434473952177598644824313811911426746575671493949985529454296386856252927954763279876634635884375168941817498477559943421612136531989553699353194893788375227568747155861267544919679526394738196833343348784895981263521674845895633687153851658218426198566952931597743924326386343338656181211756421317699478431523639475279253146944958974966336984838377894378721965786879947582694583273536248958596874511236425237913999246456743979158467196183776936142517419519395499267578551136486392886374998968554274198425182484385728974882945446612661976395815719895418192165796893358459697612265463937711996811916743476378623153997436631667315936662858895415653622256983321864455572893414469912436667816357353246188986853313266343538637444438465452746389886854237312216418978782643147691932858392931737759328969796811856962383333727151751942736449723927439594927795113446475687138726449755129125965132435388359596971497451462648488491757475426634697558892626729265426364987929268739132483194154232212538396927945166919872493679391849756964935129477183633848699251442412749131663689814556851978738987749625469525412683868749728999423918445985252886321361818131143319168372551558465979448736165843687655968411969151586154988627838918461632662785989982747552426116644386387896879153689681882969195287154624839253777156269829483992662725255563938222727842815364168516889351961937134495254848877718753327893132677883375432237566757261422717893789738479667228174537872346321839926819599875324581442671988572427344787795289416655338784268284615729771467135499525286635912859911556543634318696892297142958382354616884189412265172476343735735393757986345941316956331498361886959476599215938843986513311338619587236653149789147792125947799554455854312768528322881118566957144155526782539669774817898463691528316525923195151936885976114882168729864376966689913421565763684294291645965556942622198856764878664331876177986842223566874921123528469865159699521382973967827428519894664264953828334417925326478894464812644437594424632271221843575535168375669835945137598418346787423842236144326486415166548168954793727553265252194116167964922876688847339777759462143629983915289563626637192399782127597696165888868677376625347526538988835768112277929819363897634799664393863658881635784116689267165272954658426977989636732197899792987688519464342838239784977669789317846816273295697132685351353984597556461532335769424775472584865339284113871944672287468832995862182632475577986958432667858324116572874386434722965399425638599575139813831627344152721863762499776269664993716115318949252185644362899459818933451494746256334886986838133387875762489979281511478528695567985817814994295227586981263716393761342668832849431679259611149163432965836459724786253961753593599326164296714494794845522449646559629298983883933743925151763371955974376364559392261235795373325291733151634121962789235962596548835491311559796565579854484459536299629872854248562159512983878231397681282942732294641998327775829817689729819876653515194829422512664287452984398496136244817438127216749783127344893595434743918334541134544471392177782143529432656712495289814213519819989314566646128477989696158774954619178943164124713562753546833425778781543998919335339389272678797651799456436454169356479469376448971516661535839354437838489427956795258475925263432814993576844238173837275247318466965789482291966979943144278915325871224699176113461883564598818298143784956637138385425967687737277694534279828417281594617952673753247187472911525173277112397398318979138941424346452747756264578176517126223669547243814558266628182762929318465331381341587555661674729741644387657691988146135326925259954557372593554753297463992511427959382821414886379755539721155986485688723447827898988722378352692341393568997627292152995933384922289972839444323978438284443899869236136873187966697995418762848668961463445999717768892197625435518939823932262341294464689369419557865595675375142879835931295287597496799995965775141915862325856249718432866228621599833918838955692295643997759457123577645489849863912273828186772333998511657436852346683612437676843489456896885947696975922297657795863269132864121756415138813467616871312538971598317756738222753359756696527686649169759666683168467131481575759656795227231289689757477989748685395849199221829511398491527147275789459749927926425881364516697847467853531727241165469451858517696259687844733955847438371337621812298476894618959987864436343543146849611638273336675841837264595762676192847367295776624499273734676845823473352372586228914942651283632878426855932481943157331311199776243471414786171296715783142135174572563255593986641485227292741919497866926957564595576561113467488194211486239294253826175265413817738662612298382431831823833693351337851129533685925398762313332261555388132674839344475679322734617455261944146771491959997988498481116535838519845779487173499862854771385161459651368484976899759445247764875998217962913278997534246479827886188353382556413946555939416295264681626269714727181375279553298237119957538555137368334996179527324662618923875997382949979622227739872211996138955878273165446439619257159926719156548527752644754122633933536352891591917194548774917497337567566775422821858863683384455432371197499417727677373593645933876687764474282859863964274442166651558981865576196316287982285199542249489621689679954892782297989976569514373738897749315423536776931984432579874539698995645923798732275198799255557926183458391728717716742973723995356959898924397774941175161926375321627165934235779785154592664394913369428343355515635454396358581916459227893948311992848552733237749342661347677142394357875291168828844132288679637338163795899815751432726214974537841281878334772451939349559431666293565385174196566687924891921253865212576129942329133518154988729751197282989215398243522827378588589342536174725676364763412496626858472788686477412182125897319271252224769557876728451462828268973757854915928378139697875181131832193379688165167259411545363324921162981494624325182873653938487534213186642481373739565982894561581185797227521662856973149874799821826221969659651875593972975561791948875718393748557313322722172366164973967761526318743821848978776877552281178876363577299549531344481722888939493727872165567553759849171312429799365645469816977793772149918221792853431283789745334583163333552128211636947761858892814225163138419115394586791286227683379395899386431442911743746411374922259431788388419578488889349279327574748589192696196183882634643149867618619322742165936147367159414757534935187332895667722771115657455985662355651654986488193824366836396639346272577623544795526311397127827518314146718952441451497499857365162363123188454663358644844386454857497659629761771795124955299683448849269589538859937521947938798563965658112615963858548477354387438347993425284155977544683862778952989885428731443836432897193484352732518586761889797188737637495718564537313199788813755639455399999224997129482571986631566499774936248325571247896659736923681395593584344665858961938255155747356983868791723384215772435649823126931564917123734612414769994233267443824471372776442712327741625938383338439479229127173741433463148545241632657377192155184597345928738576485168451396878692934124392332171444721938492823969313176991891216983663839154644943435622596143372939131264314576665791299166828638718836396916721541669162599783734723658249961474735161437615491397964464447358199331232115765519815735841997587882968957161647183929516742549393657471137249873879823553852676751819558786799145678315751591315989762934327546257468965364447775982212953261944383127979877444723586314437134997789525365369444835724186455145418486236917425387859757935851668418851927919373475817913945672581255593755711737381618227262861928339715527625155279865363634245799867859786633441757261386367595671616469137659465347981933851853876957771658899448824464998811436586725278622243635355372973552369382587966829349797163546693913291714548891585471978426427114132764942815771558971558648627873838487352999817654435214538148489931451862518793821978882768427215621666247784886952778526246599737351428433364948831476961364612678279694133795912457259471886263757881535717711925785329478176676967272153595786849892512353977912573451969668683954124877324859375184567461862717759154153279443791374314766236645514338865153368161289418695451897272781264949886545593718156819365561598491852283684277682526946586998159133573979898613289867321737936399971864197395347392752131146977839184731495866256722973161743884728594375992271616574778599129991311196696165759836279231566992611753661634878741634725939917832477875699937593869943294645148682972114869699394496825113222728572319154983629399579644842334669458218771184695821616723226568285564175287951168926514738821865578737218113737672314814999476455179694541615394714474721999796581423237464953643614229231651195194818582867825788188993661394178621869564548882824678158235424991673656631288755217458528488231887191992568995795675542751589259831823349453473959142138366679832282557981248795188311743628867446746628251859345988652795727675595741316173685619723829975946245844342761522189666499429421777451342395183247419542218846267387522934131722113465553711674979984132699911543497412597625168558939437244544859333664376972928514218778248161577557822191986976898885252955635987446548571223923897945985214326186957492378831523795275984465771369777582472765937218689851231958562198672449544574335637592851433918828737748117851875435613441734951516541298285583346174158195237562636529358316286188584755684734458118589839448914135634449942457699475246591328131714438522159119378637211529647619855155158186117681799851722447946953661778181978252354668697821188192181167438157766297327142338293935889283742677716692545551653578343418854496944459219594222771238481757764667715618124814113599682799886486683757258252231994371585633959422166275786467245493341911719526937958582353139722315953942423919653752195127485513391398723931188494298994365758727661835998988924924376692572244356685392821387268195777666666413293381146864989285297787294546611983599895467612847771418856118331794241429968411632762897444675322439827759157566929547825598712775644269947738776973827381332842895161966618931634692525881496178317917226729336232462741669833897794224289491985296184472387749817546812198441261719854126677549214697161752967795193113433774387198183768718553188399623397183614798289748536369774486857887468768376519693981886915716523198265981461992988785143393197835588727778671275953316135628113915752854669718523469397171993986868997246563632958997298578311873912559986794191141635485944466758469467666717723999541781451458137758767824627142657714186274611419956233711937536115374755819125274238583619788851799679669829758648331422688784831818994359761523194822978557757256951267558546767345951888553491758167148696642194774613846928578548176813839635984186785235288767285223532676823731981183582716323754258894135244429559453354846215222793381697918831557123759934668683793692272473734787383685555954276635542955123564384981615992921356824557599347729691264666531291832688977252169657527135661699836211986975665161755712525592843227998981873798739721739126942153269552293657594157129369196665237749257562321586844342918751471641991177743459529479941898881342217444245781772346643492151897332882169317358492729415264518152412196954794281161625979236722938614663694881336495787878259781584148487676566994436919525821211796379974791156969246597237385656523563378718311623629378657944492562732527677795389367668459787432692587968937362865646649625422458662477515185547967957674995279924784882422872463126366385323819729831859425683821765539426865864265691888366989916435624448775481223938527635574969388549316247178679768556866523379775558735677687143692636415478416615544351415184822923476885192326661983749638653295473384386528265613779194452343846113884585219325282915473696285914898517849661623822239433996276894481932753425654198967517561829594299534584629524525639184586147352581893729785116249986763417825357836996454799372952654496617398242412154659996196383126435825336233566718224555187626445858965134846742571863764545156462986344166664313783915772998321283376382896917334364386228513367659522378484324957649966816719588425665678122349639587519896295739278941116314426881731667918159133531352349465678772896494775423237962377886381959614542664538734983263711171237718649678291944536263649969135694956439463446649113399527629315564217978618575328733637784574649557529377141973784477759432592858938566419865765872252656975177189756321277294342958947782521655718861813882962344791485356347224526681423118327584219246516552652262882195536181789393776823785767221273756475763498187744738632619377699626395816746542917844242428499282957165635888184879521586437697384178241989883483551496442543371453129592833145235889968989382442513171787651512173639373833468412631896532753795816857633723742171664254883642924796192234613523864682686387491247823634224823332514578668435482825652612653726898312952624411578731232915758452222411179969399149977971544594384239784615394224542268397465247996412426954246189144699969328659823751574458437241369412148536944313725671268473896496227862829425179513466378285657421962495122318736269362759345867129395749396358748912833282868749143525454799561868726573871635646743793849525997627926835626318294163614932281567137627226656273988472867849447474155194287635589979979147248238748268396463473577151882988294788682922696393225485163832651366164735883488399447355649465736112836568946226831487232317689416495871629874616119371913772535858689313288271784285669611534397967197933585418747164351345531398713382179883647711838542814731699179297341451542885777411489283325795653746755393275358196523455659498938718628487948566844364143418717621422767283467133874777524966816112876163783838936229554276718671187616983571439526315893934359393677828561817317189969412146996987867753373316621144943383769494273417476922684271495758198699787523381965388917582788997139998317139167398288993658173895256599342953382885184456336767556133537116189924911747277193144396831414514788589288532753832341418956573817799421553247956958941612694686212822941517379556251586361857438667615125784172772712476793629454663955345915786483395582274634513323827473814844672933733159531821849646127186164127473875516978699395823983389947568486348753825132468241698181827913167319961274494181477897861296452633134916514684586321179825769585748975629637742928821196268398697759564186787832882117397452431688886839565971359538367949249578128943548847396458716475883336377815722271593543384785319661848487919948678819185396399453381792897892917426154836834343136831668665395649431158993695939946889676441725314645882926898253859359813974534488823612879457623648753715419947946878876425719322712145431861732984679119315645646897639491187481448513674598963828116736756299591988814786544218625374118899183159354128849482143648844336727143967969133684253497367867999343323913478382583524746731782824944776324349655549673862353137387797718999472716558865556169491939595997425612557199957449515856214916761194283841931854882415566954779932821918354761984377399258389764399757563421557144423535451622214964384647664198762349979686399932984356638796823658561914293983489972155119567219286142238481891216697673915214934789373632462262772357127228246611431876136839922172858552387712845611243277298679916726168195967829289149574518975866285285985814955977136369239942433467344599186561316186811356472633961125617227555521911761869355225619833771471592222358322358592871847693956383934658335442443257624335539419381772128364139516166824177793235612875682657346957234353464996883192466783837624285977887842811729972917467283431441564199163792191785367234354732915537394653923746486921123565751867847462311587825493623159882834924186569568477593636123313652451439582259462725587234166393722241999146621655264482859888859388442585674777377566598193649148236331316512727648875282666155386422422393451757871522316798833252378736697993691488926482278277813574952966893633924868699641829784424461784374164435758584363552877587648128333586627257641972526335829378211923663498911616453641958991753555433796971158114483121949485931756239341691691441724412147595337993887431776869469464536855535282157453366154946145289232467141455972465541499868972685547755585735884438575945674284925394572941917171675246174627245895127467724674542827899767154987633492599296237863496843181613569895849175772939546556911185421319429159785225293953343335485185761474372331952596374172813466772711387275919835881884986544696641127712525674843111468172599115674941883893296669528567595599388767785917427392324965782974222795279939678964983688761871938341836773818845112989734713742888141688872548577558814242799986474732655848165115218258582436367487625335151774299617789781818571899585779839944689696876626866973327885929439647274429961254713859295427858872783746732239289895759946776311183751925484966949966455654636656459192991485734325532597179328685558317745789265639768426525124193643979771643425852974732383687966998858849497258651811675528411625274263444773512365785445268138843179953566978328376387422329666956729282968915322314138189884594645853658944517269957871222424859889729625222755397471217552654276984285243666433915334458474872993179975998129766884477946445764761818675969956823372349286632754645991465116731588815341941824586429189411277286373654888796441868516975218169944786398966114413137519847287572324333513456285665672963422727593628125182523648182737711979912374286194173143345989519896624746487388415932235388743311262414991322848586393434845177216177117881544425494269996563172176453827134895278585764122462877425921253856739774965854729466985924443236568782797795397898733888671699178533363615626221976542526878861924446641139619623932653238838687474456251396261559331369784798971196611655879877221918426467587247667566147913912379324912267791566677413673579428636465698744585967521581997455759863669292381316723899878266819296361485483995126437684783218375975499336124885617619583235754493677731779225537827616632129847571991614933333364335477492994588946274672481518676671932171673497495695281282848985173584136977617472175925335975394753898992598311983359915579897647287696144441262989928274199184638343152592459923344515861424771174547774738114125269829295882828613699792876665261691425832331871881975558627496781468685623751817282334679976578325745129811998662496395829951994288629227128226641144381886135548581317383746944442726577477577882448832836268748836439374599329281332491767534549329989665512435634768879476969564947645687588687917437271763138158135296167786965559922776674483786868599164215651977755583278495552876366511149791912329567557367559632554894313676665953288532949286638324217839391239135816268334329546119987724354955857588196616472834775122433178751589721946348368959244914781978549923753423974839949878439952182219481273726972395738843775533419374796698165771843122293682748612947315876162244336682253854468629541324919676619657464955125665721348636355297568867221218357479367738727793635736263421542279584816572361435527318415464975834929263122517455782536884492522555479737144683679974186621394297911973719179678181462536235562864579292811445267738924762532899827564687421149369139616687772612768331649247489476155141494656135238934968586328718545175233374738749152866617931936983385921933623957574888383632577715634244291491242873947581463524916987897819799672299894198862426662417121316694688378994945576952798199311847913237675367876539684948486281144752678294357677382217465679675666944685295487369599656881566881627957419711264896649532429474318718972645892369713375689727632917241859227553968872662217568914591886745535622291112264652448384745423614869328874215686655868369335912447614781987977359998165734687671823661196864597785169968622269692545659378289894458566349258652469494359829777399216253242374561893699697589434768968531395569179553951828271182792626895851946617561312465928719222528462894261864599423294493737344564735824885566844695265791755987327679657346784772853261988572413877864192925468159622568232778157168528659716875436196988357973543756983955212547635418849768758786914483685561529327189353476569118971539454492336482989249892492787822218836277348258838854461269783886393979941457566696541987383994331518111144765865841587433642477197216357526827162358898715473357733556921985327959657559264266695473991466319761294588552113764714584578832774424371948145357139934948268849451862998864112756297932773768212135232273247863996842862646231715619813868982991943388367128721596875681155919773497448472761891845814315381245775139497495892464753599281546723485348134143164375945679696245955996277227657192659583521991272677688248497213951774344633368799643238944253328985244922569797485592866596838841579254791189669938641951753564196294445243487456153758656293193217731581979485727661953111583235164958775591822155251549158288931859749935578119255655551644253468719571225678264448737583592359898469123372776292255813656178375182876187624815163189194535314352635285117555981523268273659937959951217149833299289392848796663489998469278554877737969368237587671933155191821862894699588682255268683759757257295837512538866292416338736629815841634265245794348488124641959243631586625422981637369898522493793822888916593449465856779886462735848998724396395965526968988619135999466345956292612682485715541585757861854868578941394567626682249296747375969348485315155517898248532934778526196698936837225618644137837113445511825669687768784575486717549417741718129267275914471742961112222851371992147823518989799248348593118573785869719121844245916739766195598888571738835974433917394291751926931489812351859174468881478973651216183434638356657643436977519898253742484824337844276284373411193884349276328862697757688275414471819785372124972994842528579859414461632424976545936262714417488482987342924838414272156713856355281169238562273142732827834143382956793486244754515974746653436697849518629372355759942568937165496126375949688398871513839598617972815888968112379337748427272471286633435979752886539539367671112498629988472385976988844218767738862899389956635235725785341462332662178377955429394173443339638465418747652991413735348846919137214671753563947621977277257979745833938631779248769379926627472126229531697484821618352493851862315249889541962822623685176832692742397882973462431158571891721643653933161629129971797483758893759592952947598221469325262542342594224629438991158367727669742471481683439398573927829567592348182757395293192641734975774666649943968832995833385267338391767834182446492122567669979666864339724824954495164187571436779654612481446566937336996132497711396219368594396762279786884596343979337588888576868693885378712597149551267658762376768873123762821736831626412733733777333273119871396869428539748532564872575198655652759459873583366474843255666158614973368288999735779936453578518244164491793692956693315341275796572694451474947472915823141513556166598345313856217792355739189411814771653658786988145192657177715449422536345758599432176252888822969259553876622648964969541496289898544935988681293849235888915954444585815959284124132246499185175548617666319878811626765186314929475471863328226684656336526913328669796997412785479311674433722545632243973536334513257299271295874913218333849396355565971776625117684959627199519472527944389774656846336292252874836435384683659755892393294531269744133793611969724699429842689527932587452196262445187212751673484997387669144571748234146486375982866547958972544218244756636219857255249476534343258388298534439647861113398519335426585671389215214965129225172348323717927184237595889756633479227259396155735539385572732983629894376832663236888264446412775561296728797755472289854412831448574923139934322721638811269822569124849798594544577545818466923287486216363218112831339448385976881481482669288292131398832972832976183993396719883746728128665873982727651178436611477757298149297283916741943837362575692211228567298554275495729617759599945998876439341673135471564353346698457948356939858232916488444895154569492114988624565464267416791137419958649931363486886638628693947368334816638212597856875629838271499199894568865196324928143799817373694266865327851665264782966157559863254619983296292746235251421533464984783878279859244277971163455532695941976487251676356986665194448779962696755956341477447459274561872295169244748585745977588756551533615271436123159255545498539952964325231576662199143255218362688645111791264689687555729766381957317786627867372449356478624491854853247142688343831414993864488161367872425568316286848145857276958119523899469613157692654227296859633133969677975653317298977667357689682196885437422797147918955544186333965585674447233668683615828212217679593881448571986939264582692793888147153488179199277593176128148927217458147693379469653389742519847433923554454654659644676957844446114285731118411958555676279492887176495514762777498426751879694798562167542466922822684496677944455186613423225361239938623255537688232793492925586348554124965761596641342528776484296614595663963618353779495486378352127358141644846592276149933174885879891396192649134882128951947698251636158599615673354695669282685867726781288715246454645199462862248187246457151633947663328667849713613829736992329546576749754531896842519367326837466838851244667591381232416795589239792387662647494236283864394982396946663312563915258676995496687884734843498869176563667211789493582814634264639914431928697514736268183961754894434161527415488412673468883277379945248595865849156785695282459633319733857431682187391384974282558642474316719593229823273852399375756324931211989879199844529987386355989684637589531936727885775619746845911478989999469766243324176697129363314218771443995616579798875225485319979996724919642739375558426294938472197158367249968867322714697988173517118165258353366792774383699731839573312285568126489657413978727553643788176687331751749895566882626181212349898883942173854986541629861729868623892529277186298378717137179937561182687418211393729677133917537154978897857413512193283818655241577416157769312832786583498889326945919388482588167583657797869928639189462937959491843261316194585321957159298356868969626456724314189254835318574478415987498134542683874943176585796965842193394327335792556532268779591574457127929817239857337732257969662564613519987744489875478458719876982344953781464923778359627513548581195328196759763453384234583977967355135442699762451754776292249686155971679878317689985789933374291163488678848449877986499414154376934211786779994373988638182375641986767717542155314861798222459937158413917696871491585636813814176378157941525583382194729551787566921891525865622585644424162877577294262199295522461139871319868997185911675951511655342255626214415684549822425447846968656686166265461946462724419629895349256613747358251555748396391829994176986394119566419136266218983274487779631158544576449616199276391246939692846633362581169857559927826133366945372273985966138525166264576536285252179293536792943634766286311533764113316793212593985582838674357913645699322427566684195989452716961564289962661882296258927588474957894332596927336583867493211628997276298913812857894337557822141675261561843642323387369638962956749599973672165758189876684598292714693337699487569612962195921262163641451969439664656254579978732394699284199327117561554263875398373265513999132779494959674932369588859773695778142738235284699548946245641677386561979978745927378344582494629119825555492735338794398513896886767186816595562964135398523896167619237223935592177875952125915646487834939454637536574199258128697968949981352393325438417512587919754724965128421391522795296522689748895536758791188674829349878733716376637644773732725398282564338734762342382643865888878545238398935842863196197578333719168213347758388181682496476349978163737344452811615668845932372494294275934274837754619592495937424198738141678484274547563297723431771378465795656763277579127991756879321695265364685935661721452621743874495963935863959551168738578158115289797746858721883796191399185699741498667586219291744824537994233167438388319741995717351751487149589953426351936355962161413449463953966196524889786854911464586436317446735955229742186621183993661851244512976675687517555532814381949183943368837238994631376726825243574836271323828678471689389359788711522526685445669846765864399196936593219965431642914433423861864759286964539571694948383558896645488918698749979988863796567973969661534427364747153755297794962328736552315789957115452299226455256358957753243835416317865313248475611319695861736159921863417199323352697246438235117914556544281945822851816772591877919996198416376517236582164263231528769181997148628321929761746511255355184532998577296237618791649466267189815265179634458869473748947168235347894941328899676493691945159562215295644795393378472797944856268359883515367189496774996732354436762638683966593571829866753643378914145493998876124273825146612255988739813237248684629795558172469588437323986972812733436425559819371127399561775628154358414473497158592277875232598736831745349648828685486852992836561423865964766328643736924773921561783116115837286398797221647848473991491787857192728595484983277121451673773752615483229537785513885214728228553232873828279554571816432592839864188187926844221946795983126467782741366136863952159393386968415933184369458579144579529126834143741539114384391122937965583859334999646418654877677889283297419391495936492513946741839721197392248193364434721486138152257919768941265981532776189829163459135658692595466116264488557426681863819922311481289993924518825816583458819697367834533749439426837476121648718924833439579329914558219196386143469325232634853762232196933933455895286597578769345412742571477976172336156325745375959796829698476687937861778933721479815217332649745161451757837569198339141664364237497694958262263633223651665162321679193877783364953722161151877696116568497593657876541421247384541273464326624712929424652896153949464899269156639183434269743888493661794889764643626335635523614956418311286672276352418417285462356896717531491643764421429839794685374529744471995199726156996786962238599911337699421116462588366498757211926951675634348326153231895949495934736442854659182465669371855936738497344333121889768568935185727676531372652424616115371939254991733164674196398678993638912324344889144673954833756486892845334373744644498739127589854284621929893255337625854528443318388678924177418869658473723831511893349117646541876999783752385164845885915669769634349775486746632125952469164694765299935762977844352339261811157642342996338987848899788864643225929259257672459441415649948548693162489863137895953978764991233885936464977245694184144152279195598655653622362167359826139581829263859937651662144685827499328659987886989441666868559997243155518775631127873979767151985135488142917753824136116498338864479776232193792374578547846784638898367759795395687524555438884781438295719796856887273216849635631579638977123916799268555115999249822652157479657275987475655498289825597493537936695718353814142998543682549331191762263258258916448368735616664478128643784757717664917436596439958962997973134582114432884198636765715761798256342179851128657947493864848149965989429512145963637221543598854677572588442389424815739981553426947157148562263555716935962128514677628192745799372782123828991511714873955456794952227392661295843542711464378217974528196913996276749792714896365846869787711616858833926962431565281962486368839438887647486644164734889262837938115565654822717419595695566924843771589594358923178672145428631447497624844116822667935129469186336814969712618635678537552589617358769297825854997178664158358145866977131957969365648949951532924688651473898565641214443816811898521827168711756656551319273298496971344647958489899289129391866585165142694759751858658641718468485268758551853946245444913454993274339934586668142636556958924727739149526348476615618779629154737894377246686867616963282671497539441175416989899395953171974385929924478694195328895122193346728329559123594665333374498781766628591975134479238674246923122794176566517766855675244121544919288356184936687221442155535534148716662286388756797799748316958353539796528128895527491699998316939571859941298142888886246231687841314682368464591474268879354494288474152375762297981269714618797839649641589983342471152934126532471716348984427661747833246794377474397791562992841631924799357283512849582717429261185752736462157435153736293664624715219632872291468363652293185365685469416572154623624236298493391631471617148955692895412651251854881482877879881192183375551618166881555476622128942673689814714392651534498535479751319699936131515754198153989126688873818864593696838414636129747646549869725469247522974514969433733932845766753452356317275399472744154236128354975169262952254535863147437763837287779786145577759999375269591289878287134633185366539787699644164897966949315995675229531923291838798228687566758816533643735948388285956851853988776937946818457698397199142411642728745398963892125122171458742776437234782893286981152311699433586597769713916949274478632223598428524967778172494867567568938859632526244966996614739542489389413634771656286361845512124879843623577329928135647459862786476923477826883537338664266836467498839923893922153475621112811626589769739515795135174172863457521447859636485866737714812339675624566436523634738561885956221325784885299399954717339163813648858354466598167819859768717413325795675585655126979531138936148846861489156925945736242794772533893812369567242755294219355781292546295386398725969726246899148945249454631993238989274328837985675942788232298495897748544513937879954177493636571273882513736279779989913894196616437457394252799467443962769222467656935676464237634659748637265588749624945919844455327345398561273836954835342912254329189558533178884381284139477441943763668286726383587868338888247532889115898248964137316188612624745725293744671656551375595599774822699612869455358593663955719791518347692726194623395587816412948924142154652279357934429113192989981414767514247677248397856559425193483412831496735659873416627544369727367157882789288975489275723555736844828134818126658883795899261927364533956918643476331689629255943541311238782887149161653288795986239191615643451412923684459396691916926862495878135295818736171412672334799956399213327955386759858882667394618166848499658773888379279641834464457569121431595334384746723174148389723447533477178313722669431835619383355332191295578777968648732961951548118677148396556678778645432912874415582792881392958554172982896815388398536775498727551937397533397412595891388126555444676995768389329492982858761184468935833945774929469163484625436937611962319128364972276643737797697853739617835611597332796484979254598299559858824277899568773876583294894399762523545723768568419543347977567136598279586768247328112164676774794234227539154278211745983413917897545556422833686183948697898248144444425954259771887294984982195179436593369253998212178983569332979418539297596276985785121945812133378841865946772219186247452674952478834771839217165696971439362774342766469183498644262161462639656935418187293193963553339543813781846864159578815914945963999626282762358713415835498879616452459289849193298167543941833646619678647991487726358782588541248567589514388677241977799321228937396458119692375946966998776227139799295661529536298687145516239348994212186656268249331729271625355226316776552932246156545483499198965645665962745693133739726217966138897578583833376594662669393622621866938268979158162452273613193122731372739973348637453493429628423286597492644942932769127777946616398575869687991713836625351227935762329546581335527921963374964124536159259288587666774719564578996693713336994425447328137149583327356571571283751427261526178144325434586641228815477574498685784138592246724782733293977843572351269735738284459935588872239715367263993726743319384483774758667573974787928848846819374457749679751455463481191815578466388415987964528167195619199883863734888448145183884881645129891642292769888683641817619575445759645869596669255665489929877548363641935285386547745928724864922837987892512515891317956388193887544286325655637897594999322131275293756795839773944511152739423662698954871136279868538392118986878148266634861637418126113883536445594312688393325437377349276332219767471884827971912854427454472816829466352557316461822848366256368899937559123233249576767237981768664485642357174291493831638587855625837469432478741216192467668764617985154495285561568663172866674418688887797872634261979186142896847297786531788843543647613235885135849988139786227194965336287383745896968144633877642987612325474757983214675313754659279937569211826471415356642937711595172714345131617662227122156568181798266527913418265653856658414334382879253668112498113994877677635689439796456422164297226952334259245265632593291596645695764521734967155139692593891269489592894471995949189518538551644998349347738817833471691693327568998631547279699346261322536217711944156573342712712961295672721748535237925663123833565351963759825467478159519244348652116365791917836171784691869846167951161847459442397119895575864757232639356324849213857553759628454574459363711463797276217836755567938255327188756821519571386399873747678929722551286142792536961184413381862966943426835941922841693995116399956551368713564899433797952715262568857457949164499496539319836386345882366434387322218459788637739683955753698611141368787715629815518781866877146669977681984163488247792942741723656232341674592443866598835243167353793938834817678949988788766535726582996814546466138176299239642623686486577418781648897756481616128967648743398858194358259553458735229811149395737922699254454664149378711937378813284953574441247842181293836352217181133142749862492647829166759683844556514421887954559855477731683627674952784926649954812437718287899534788437351742449336336384451185613268686855934823851184212536429474169717875974267111463594885786921626226973486151886681789349696346522485423377958647676944618591961344839137878798599851784188921484823284375874227484863846693873998134396857894721322647948743548735427487512853659199288922485932442917674485599658475592882521672217993976749719673336215313593655828215767166626651859239817385775983312339461939517433158398581488837515323544345494887689266651145985273531966714895721438868198566587652496551555668878833893145944137855976631514453866744616792439669724741687372334164799144899215652927983371546554511274211273376239836919725433741649873335695876862557738211835998939547148949342341187334538159191969748937636993979495457895758871837757287895666342127974949994696887485684428464917658477242657178544296859454949891696239816629688418682862557665428476162547197687251844827624134753985487663849835861971668438549789951867863599972455826588813267649612821532329116767775874564471279253941574477144472378257577798982466987156678864642822671588669985136824598816687138471532428647693116561896197864958133982944247147667221845453511894174852423519233477446564785382762432776324259498147478291611284669117272944528298257968263867685811461593748315781559822253473185388956838742339812786578994492541299722214397838364727774632732841231339732231752596225979557856993635858348399527285636775964178823867584466721552499717486961253278776698624268667993786823667161934794832377755445731268543152425366943389415512881519313936531838473231997737978366986826736492723282386911894755499793266633788834594453341176897333521995913826377633366917428843978899783861418526123779963164372162298853247851266673529626174919417499542684621783768733326752667549684764748297916582354537864954837366334665598519836633799858561948126949623679664292331499274275915954226364758517459349674599897198575355438657683534943185462612658657143848296212227789137629379493516577687173638962735816727155869382527349994332565183686318311432482539525169446699871779433519964245179155839721516373128757137541985988243335529465292325884249563838672582869165839411491573726885149327938388297637584867361737978955975136568139532846736628689842523781542812817669488271624816758291695486576826381621852498531157874723814731699761835916991128463572689754835178828193111665265177751629569838699375922892215152774135499946473873551659112127673278271256688739827753113555389679841892769358375794465258953119725516986519623715882884966363821856864965358492498573522132584932474364736885653943278934486117366522319486457275694421334158415536637735667887294345353784637456618618247168767178836162776311474165711797495344481542465743287726971583169922771487583693551625985825536894695335641616441917891122649886178169584161134898633549294849977596252881617513439571778582241811995117828349228169263174966984214943549884793712492536778327737634733432952253449165981757533838721168567469144521225892668512251469173746239588349986417858417832955814178512126549514421974147751442827523336581716181667141252775377492283957419916615532435641495869526937458582368498565717718429343622959275776332381956364487296947878494549549666442362712318196897413285178598146961341291293794993859471261989665418943484224269997885699614911353584968382783767751643147833119281793218324939354174137848487279658414329871438353391928214189449427319738379668931664781152679391576842562218345666571937581276151993137838926178925859787648666928743521911219711477917712253594477131698182328492128987858546776773511365826451215815427329861337542265529799917118946513764556362611659567519825175734145926252589683655661856928366848373946538818322654975194759774874416671599473964888295472589277687923193669183374138232245911449466783616936666377461133379651515387388654649927639139711454949467929181892425374184888868923298568927561599364689951599735639398842789917467351342821237997698697412845164277435699447227924377542637537174389798584428364793755464516535115939779531122516889896247897648865267822435972972955983263994282317726214629465742622842749281641146416929346461285526555693578227661841137825795193715431513117588898313776352732829697545595541823774869573964574861597829691423468478439657795739619394148648849616486411718433748744697856971896548296779478394622976396634472219993624642381273767266838982159425218566651215565844496511953581626238841675229712568643553729693252227922853769897481588155749323444712589413418191522832774581242536619181816474672787746777559977736173476786474993218381269472319646563884293646451199755335547976532293495668716249544618423393388163776285717882798235589577714914192415923453599326692857314488746916282372385615561191834456821351634898591523396959417239876251538883686889898334679564838945291557588667199768233554885911239277394333854559485869577443558715572164185782756417276419921234832234474773998635575781125326486749993352656977334543113456253832262725387787488883873733827541661678743247599518934422995965482327314277543491945348615936388827655316772881481746366682975469918357169596581761968878188829863899167583795681147318539128688347154738864988253959384548857672977449867575362821513221689955392293648214227376166658945532825611485488236859919489146821478463291988695973387874749313198783952343223969213525366857221689125557967792187575729764367471961593285521772565337939752683662523196693577596974264493623318118754739384975367298966482798891998158196967445759386496658844173865344823182577598878291778355625698269616475699127628374137554451718786283677915798241975525623429628688181593815544384135669849931941428772174731939689124616145656138163437615744217869586736614654383626559429866973974748632282449697558957744698625989839222779529978268215147972232935964336836249713334163884862487778878776161286894765873823345559165119499447143484123412114999749911879216176521789779659461698182718242215936747865583555668878127616857235274633981171113423288852685416961661691488525564273644232433637594335431519973658126163592981828721244284631753442561415547474894914821266227135826571197686769339869768273342956527439991836824258251695792724272913594624912768249865657799697218152481254486922631723698723596729837411565766692338983724957892261924935259346598517679683993676247796447598881428674214479649485752645788331263649833449985811346839134411491435842468867428458894678795481526981625391279548566738867669458971564594399393415427165285836583973258668946142856558278122661994892352337256981473358539158212591792145277676393184573148658135857854692445825123919997677667295983472342751553969847781577834576175
